PluginProbe
Welcart e-Commerce / 1.4.12
Welcart e-Commerce v1.4.12
2.12.4 2.12.3 2.11.35 2.12.2 2.12.1 2.11.34 2.11.33 2.11.32 2.11.31 2.11.30 1.3.16 1.3.17 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.10 1.4.11 1.4.12 All 292 releases
usc-e-shop / settlement / epsilon_sample_ja.php

epsilon_sample_ja.php in Welcart e-Commerce 1.4.12, at settlement/epsilon_sample_ja.php

146 lines 5.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 イプシロン決済モジュール(クレジットカードのみ)
4
5 【手順1】イプシロン・システム�
6 報登録(テスト環境)
7 ・オーダー�
8 報発信�
9 �ホスト�
10 報:ショップのドメイン若しくはIPアドレス
11 ・決済完了後のリダイレクト�
12 �:ショップトップページのURL
13 ・[戻る]ボタンの戻り�
14 �URL:ショップトップページのURL/index.php?page_id=カートページのID&confirm=0
15  SSLを利用している場合はhttp//をhttps://にする。また�
16 �用SSLの場合はそのURLを指定。
17 ・エラー発生時の戻り�
18 �URL:ショップトップページのURL/index.php?page_id=カートページのID&acting=epsilon&acting_return=0
19  SSLを利用している場合はhttp//をhttps://にする。また�
20 �用SSLの場合はそのURLを指定。
21 ・タイムアウト�
22 報送信�
23 �URL:ショップトップページのURL/index.php?page_id=カートページのID&acting=epsilon&acting_return=0
24  SSLを利用している場合はhttp//をhttps://にする。また�
25 �用SSLの場合はそのURLを指定。
26
27 ※本番環境ではテスト環境と同じものを設定します。
28
29
30 【手順2】このファイルを編集
31 ・$contract_code :契約番号を�
32 �力
33 ・$interface_url :本稼動の場合は本番環境用URLに変更
34 ・編集後はepsilon.php のファイル名で任意の場所(※)に保存
35
36 ※テストの時はepsilon_sample.php が有った場所に保存して構いません。そのまま使用できます。
37  しかし、この場所はプラグインのアップグレードの際に削除されてしまいます。
38  実際の設置場所はplugins フォルダの外にすることをお勧めします。
39  また、その際はWelcart管理画面・システム設定ページにてモジュールの設置場所を指定してください。
40
41  尚、新たに作成したフォルダが、第三�
42 が閲覧できる場所にある場合、以下の�
43 容のhtaccessを設置して
44  アクセスを制限してください。
45 【.htaccess】
46 Order deny,allow
47 Deny from all
48
49
50
51 【手順3】Welcart 管理画面の基本設定ページにて新しい支払方法を追加
52 ・支払方法名:ショップに表示される支払方法名(�
53 須)
54 ・説明:ショップに表示される支払方法の説明
55 ・決済種別:「代行業�
56 決済」を選択
57 ・決済モジュール:「epsilon.php」と記�
58
59 ・「新しい支払方法を追加」ボタンを押して追加を確定
60
61 */
62 /*****************************************************************************************************/
63 // 契約番号(8桁) オンライン登録時に発行された契約番号を�
64 �力してください。
65 $contract_code = "00000000";
66
67 // 決済区分 (現在クレジットカード決済のみの対応となっています。それ以外の決済区分は選択できません。)
68 $st_code = '10000-0000-00000'; // 指定方法はCGI設定マニュアルの「決済区分について」を参�
69 �してください。
70
71 // 課金区分 (現在一回払いのみの対応となっています。それ以外の課金区分は選択できません。)
72 $mission_code = 1;
73
74 // 処理区分 (現在初回課金のみの対応となっています。それ以外の処理区分は選択できません。)
75 $process_code = 1;
76
77 // インターフェイスURL(初期値はテスト環境用URL。本稼動の際は本番環境用URLに変更が�
78 要。)
79 $interface_url = 'https://beta.epsilon.jp/cgi-bin/order/receive_order3.cgi';
80 /*******************************************************************************************************/
81
82 $order_number = rand(0,9999999999);
83 $memo1 = "";
84 $memo2 = "";
85 $redirect = urldecode($_GET['redirect_url']);
86 $url = parse_url($redirect);
87 $item_code = $_GET['item_code'];
88 $item_name = mb_convert_encoding(urldecode($_GET['item_name']), 'EUC-JP', 'UTF-8');
89 $item_price = $_GET['item_price'];
90 $user_id = $_GET['user_id'];
91 $user_name = mb_convert_encoding(urldecode($_GET['user_name']), 'EUC-JP', 'UTF-8');
92 $user_mail_add = urldecode($_GET['user_mail_add']);
93 $changeflag = 0;
94 $interface = parse_url($interface_url);
95
96 $vars ="contract_code=$contract_code&user_id=$user_id&user_name=$user_name&user_mail_add=$user_mail_add&item_code=$item_code&item_name=$item_name&order_number=$order_number&st_code=$st_code&mission_code=$mission_code&item_price=$item_price&process_code=$process_code&xml=1";
97 $header = "POST " . $interface_url . " HTTP/1.1\r\n";
98 $header .= "Host: " . $url['host'] . "\r\n";
99 $header .= "User-Agent: PHP Script\r\n";
100 $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
101 $header .= "Content-Length: " . strlen($vars) . "\r\n";
102 $header .= "Connection: close\r\n\r\n";
103 $header .= $vars;
104 $fp = fsockopen($interface['host'],80,$errno,$errstr,30);
105
106 if ($fp){
107 fwrite($fp, $header);
108 while ( !feof($fp) ) {
109 $scr = fgets($fp, 1024);
110 preg_match_all("/<result\s(.*)\s\/>/", $scr, $match, PREG_SET_ORDER);
111
112 if(!empty($match[0][1])){
113 list($key, $value) = explode('=', $match[0][1]);
114 $datas[$key] = mb_convert_encoding(urldecode(trim($value, '"')), "UTF-8", "SJIS");
115 }
116 }
117 fclose($fp);
118
119 if((int)$datas['result'] === 1){
120 $entry = $this->cart->get_entry();
121 settlement_log('epsilon module : ' . print_r($entry, true));
122 header("Location: " . $datas['redirect']);
123 exit;
124 }else{
125 $error = $datas['err_code'] . "'" . $datas['err_detail'] . "'";
126 header("Location: " . $redirect . "&acting=epsilon&acting_return=" . urlencode($error));
127 exit;
128 }
129 }else{
130 header("Location: " . $redirect . "&acting=epsilon&acting_return=0");
131 exit;
132 }
133
134 function settlement_log($log){
135 global $usces;
136 //if(!$usces->log_flg) return;
137
138 $log = date('[Y-m-d H:i:s]', current_time('timestamp')) . "\t" . $log . "\n";
139 $file = $usces->options['settlement_path'].'/epsilon.log';
140 $fp = fopen($file, 'a');
141 fwrite($fp, $log);
142 fclose($fp);
143 }
144
145 ?>
146