ホームページ  >  記事  >  バックエンド開発  >  Zencart は、注文価格を変更できる Taobao バックエンドと同様に、注文後に支払いを行います。

Zencart は、注文価格を変更できる Taobao バックエンドと同様に、注文後に支払いを行います。

WBOY
WBOYオリジナル
2016-06-13 12:22:481530ブラウズ

Zencart は注文後に支払います。これは、淘宝網のバックエンドで注文価格を変更するのと似ています。

Zencart が支払いに Paypal を使用すると、注文漏れが発生します。つまり、Paypal は顧客の支払いを受け取りましたが、 Web サイトのバックエンドにおける顧客からの注文ではありません。 Paypal で注文が届かない主な理由は、顧客が Paypal の Web サイトにジャンプして支払いを完了したときに、ウィンドウを直接閉じたり、ネットワークが不安定で Web サイトに正常にジャンプしないことです。

Paypal での注文漏れの問題にはいくつかの解決策があります:

1. カートの詳細項目オプションをオンにします。

原則: zencart バックエンド モジュール --> PayPal Website Payments Standard - IPN の [カート内の詳細項目] オプションをオンにします。このオプションでは、すべての注文商品情報が PayPal に転送され、顧客が正常に支払ったものの、バックエンドが注文を正常に生成できなかった場合、PayPal アカウントの取引情報を通じて顧客がどの商品を購入したかを確認することもできます。

2. Paypal セッション ビューアー プラグインを使用して、Paypal が見逃した注文を取得します。

原則: zencart ショッピング カート内の商品が Paypal を通じて支払われた場合、支払いのすべての記録は paypal_session テーブルに保存され、支払いが成功すると、Paypal Web サイトがショッピング Web サイトにジャンプします。注文が生成されると、zencart システムはこの paypal_session レコードを自動的に削除します。ショッピング Web サイトに正常にジャンプせず、注文が正常に生成されなかった場合、この支払い記録データは Paypal を使用するときに常にデータベースに保存されます。 Session Viewer プラグインを使用すると、顧客情報、買い物時間、製品情報を含むすべての記録データを表示できます。支払いが確実に受領された場合は、この paypal_session 情報を注文に転送して注文を生成できます。

プラグインのダウンロード アドレス: http://www.zen-cart.cn/english-version-modules/admin-tools/paypal-sessions-viewer

3. 支払いプロセスを変更し、最初に注文を作成してから支払います。

原則: zen-cart を使用したことがある人なら誰でも、zen-cart での注文手順が次のとおりであることを知っています ([] 内の表現は必要ありません):

1. ショッピング ショッピング カート

2.【配送方法】

3. 注文確認(確認)

5. 🎜>

6. 注文処理 (チェックアウトプロセス) - ショッピングカート内の情報がここで注文に書き込まれるため、このステップはより重要です

7. 注文が完了しました (チェックアウト成功)

通常の状況では、このプロセスに問題はありません。ただし、ステップ 5 からステップ 6 までのプロセスでは、ユーザーが支払いが成功したと考えて Web ページを直接閉じたり、ネットワーク上の理由によりユーザーが正常に checkout_process ページにジャンプできない可能性があります。注文を正常に作成できないため、これは非常に深刻です。上記の分析に基づいて、私たちはプロセスを少し変更することを望んでいます。つまり、支払いの前に注文が作成されるようにして、支払いがサードパーティの支払い Web サイトからジャンプバックできない場合でも、ユーザーに支払いを行わせないようにしたいと考えています。正常に完了しましたが、バックグラウンドでの注文ステータスにエラーは発生しません。

注文漏れを防ぐために Zen-cart の注文と支払いプロセスを変更するという Dongguo 氏のチュートリアルに従いました。このチュートリアルは比較的古く、あまり包括的ではないため、実際のニーズに応じて独自のチュートリアルに基づいています。より完璧で詳細なものにする必要があります。

変更されたブループリントは基本的に次のとおりです。

1. checkour_confirmation ページで注文を確認した後、直接処理して account_history_info ページに入り、そこで支払いページに入ることができます。以下の図に示すように:

2. 顧客がその時点で支払いを怠った場合は、独自のバックエンドにアクセスして過去の注文の支払いを行うこともできます。下の図に示すように:

3. 未払いの注文の場合は、淘宝網の店主のように、バックグラウンドで価格を変更できます。支払う前に価格を変更します。以下の図に示すように:

まず、変更するすべてのファイルをリストします。

1. /payment .php

2. include/modules/payment/paypal.php

3. include/classes/order.php

4. checkout_process/ header_php.php

5. include/modules/pages/account_history_info/header_php.php

6. include/templates/テンプレート ディレクトリ/templates/tpl_account_history_info_default.php

7. include/templates/テンプレート ディレクトリ/templates/tpl_account_history_default.php

8. ipn_main_handler.php

9. admin (バックエンド ディレクトリ)/orders.php

最初に注文を作成してから支払いを行うため、支払いプロセスを簡素化するために、以前よりも Fast And Easy Checkout For Zencart (高速支払い) プラグインをインストールしました。このプラグインをインストールすると、高速支払いプラグインの依存プラグインである Plug-in Css Js Loader For Zencart をインストールする必要があります。クイック決済と注文後の支払いには因果関係がありませんので、インストールしたくない場合は無視して大丈夫です。

上記のファイルを変更するには、次の手順を実行します。

1. まず、既存の支払いモジュールを変換する必要があります。支払い用のページ URL を表すフィールド paynow_action_url を支払いメソッド クラスに追加する必要があります。さらに、支払いフォームのパラメータ隠しフィールド コードを取得する関数 paynow_button($order_id) を追加する必要があります。

paynow_action_url 変数を追加するには、クラス支払いのコンストラクターの最後に次のコードを追加してください:

<span style="color: #0000ff;">if</span> ( (zen_not_null(<span style="color: #800080;">$module</span>)) && (<span style="color: #008080;">in_array</span>(<span style="color: #800080;">$module</span>.'.php', <span style="color: #800080;">$this</span>->modules)) && (<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$GLOBALS</span>[<span style="color: #800080;">$module</span>]-><span style="color: #000000;">paynow_action_url)) ) {        </span><span style="color: #800080;">$this</span>->paynow_action_url = <span style="color: #800080;">$GLOBALS</span>[<span style="color: #800080;">$module</span>]-><span style="color: #000000;">paynow_action_url;        }</span>

追加するにはpaynow_button ($order_id) 関数では、支払いクラスの最後の関数の後に次のコードを追加してください:

<span style="color: #0000ff;">function</span> paynow_button(<span style="color: #800080;">$order_id</span><span style="color: #000000;">){    </span><span style="color: #0000ff;">if</span> (<span style="color: #008080;">is_array</span>(<span style="color: #800080;">$this</span>-><span style="color: #000000;">modules)) {      </span><span style="color: #0000ff;">if</span> (<span style="color: #008080;">is_object</span>(<span style="color: #800080;">$GLOBALS</span>[<span style="color: #800080;">$this</span>-><span style="color: #000000;">selected_module])) {        </span><span style="color: #0000ff;">return</span> <span style="color: #800080;">$GLOBALS</span>[<span style="color: #800080;">$this</span>->selected_module]->paynow_button(<span style="color: #800080;">$order_id</span><span style="color: #000000;">);      }    }}</span>

2. PayPal 支払い方法を次のように指定します。具体的な実装方法を例に挙げて説明します。ここで paypal.php ファイルを直接変更します。必ずこのファイルをバックアップしてください。コードは以下のとおりです。ここでは、form_action_url の指定が削除され、paynow_action_url が指定されていることがわかります。これは、ユーザーが「注文の確認」をクリックした後に直接 checkout_process に入ってほしいためです。そのため、form_action_url が指定されていない場合は、注文を確認するためのフォームは checkout_process ページに直接送信され、paynow_action_url は前の form_action_url の値です。 paynow_button 関数の実装も非常に簡単です。ここでは、元の process_button() 関数の内容を切り取っているだけですが、グローバル $order 変数を使用する代わりに、$order = new order($order_id) を使用して再作成します。過去の注文で今すぐ支払うボタンを表示する準備として構築されたオブジェクト。 paypal.phpの修正ファイルは以下の通りです:

<span style="color: #008080;"> 1</span> <?<span style="color: #000000;">php</span><span style="color: #008080;"> 2</span> <span style="color: #008000;">/*</span><span style="color: #008000;"> *</span><span style="color: #008080;"> 3</span> <span style="color: #008000;"> * PayPal ウェブサイト決済標準 (IPN) メソッドの paypal.php 支払いモジュール クラス</span><span style="color: #008080;"> 4</span> <span style="color: #008000;"> *</span><span style="color: #008080;"> 5</span> <span style="color: #008000;"> * @packagepaymentMethod</span><span style="color: #008080;"> 6</span> <span style="color: #008000;"> * @copyright Copyright 2003-2010 Zen Cart Development Team</span><span style="color: #008080;"> 7</span> <span style="color: #008000;"> * @ copyright Portions Copyright 2003 osCommerce</span><span style="color: #008080;"> 8</span> <span style="color: #008000;"> * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0</span><span style="color: #008080;"> 9</span> <span style="color: #008000;"> * @version $Id: paypal.php 15735 2010-03-29 07:13:53Z drbyte $</span><span style="color: #008080;"> 10</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 11</span> <span style="color: #008080;"> 12</span> <span style="color: #008080;">define</span>('MODULE_PAYMENT_PAYPAL_TAX_OVERRIDE', 'true'<span style="color: #000000;">);</span><span style="color: #008080;"> 13</span> <span style="color: #008080;"> 14</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 15</span> <span style="color: #008000;"> * 依存関係がロードされていることを確認します</span><span style="color: #008080;"> 16</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 17 </span> <span style="color: #0000ff;">include_once</span>((IS_ADMIN_FLAG === <span style="color: #0000ff;">true</span> ? DIR_FS_CATALOG_MODULES : DIR_WS_MODULES) . 'payment/paypal/paypal_functions.php'<span style="color: #000000;">);</span><span style="color: #008080;"> 18 </span> <span style="color: #008080;"> 19</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 20</span> <span style="color: #008000;"> * PayPal Web ペイメント スタンダード (IPN) の paypal.php 支払いモジュール クラスメソッド</span><span style="color: #008080;"> 21</span> <span style="color: #008000;"> *</span><span style="color: #008080;"> 22</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 23</span> <span style="color: #0000ff;">クラス</span> ペイパル <span style="color: #0000ff;">extends</span><span style="color: #000000;"> ベース {</span><span style="color: #008080;"> 24</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 25</span> <span style="color: #008000;"> * 支払いを表す文字列メソッド</span><span style="color: #008080;"> 26</span> <span style="color: #008000;"> *</span><span style="color: #008080;"> 27</span> <span style="color: #008000;"> * @var string</span><span style="color: #008080;"> 28</span> <span style="color: #008000;">*/</span> <span style="color: #008080;"> 29</span> <span style="color: #0000ff;">var</span> <span style="color: #800080;">$code</span><span style="color: #000000;">;</span><span style="color: #008080;"> 30</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 31</span> <span style="color: #008000;"> * $title はこの支払い方法の表示名です</span><span style="color: #008080;"> 32</span> <span style="color: #008000;"> *</span><span style="color: #008080;"> 33</span> <span style="color: #008000;"> * @var string</span><span style="color: #008080;"> 34</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 35</span> <span style="color: #0000ff;">var</span> <span style="color: #800080;">$title</span><span style="color: #000000;">;</span> <span style="color: #008080;"> 36</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 37</span> <span style="color: #008000;"> * $description はこの支払い方法のソフト名です</span><span style="color: #008080;"> 38 </span> <span style="color: #008000;"> *</span><span style="color: #008080;"> 39</span><span style="color: #008000;"> * @var string</span><span style="color: #008080;"> 40</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 41</span> <span style="color: #0000ff;">var</span> <span style="color: #800080;">$description</span><span style="color: #000000;"> ;</span><span style="color: #008080;"> 42</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 43</span> <span style="color: #008000;"> * $enabled は、このモジュールが表示されるかどうかを決定します...カタログ。</span><span style="color: #008080;"> 44</span> <span style="color: #008000;"> *</span><span style="color: #008080;"> 45</span> <span style="color: #008000;"> * @var boolean</span><span style="color: #008080;"> 46</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 47</span> <span style="color: #0000ff;">var</span> <span style="color: #800080;">$enabled</span><span style="color: #000000;">;</span><span style="color: #008080;"> 48</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 49</span> <span style="color: #008000;"> * コンストラクター</span><span style="color: #008080;"> 50</span> <span style="color: #008000;"> *</span><span style="color: #008080;"> 51</span> <span style="color: #008000;"> * @param int $paypal_ipn_id</span> <span style="color: #008080;"> 52</span> <span style="color: #008000;"> * @return paypal</span><span style="color: #008080;"> 53</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 54</span> <span style="color: #0000ff;">function</span> paypal(<span style="color: #800080;">$paypal_ipn_id</span> = ''<span style="color: #000000;">) {</span><span style="color: #008080;"> 55</span> <span style="color: #0000ff;">グローバル</span> <span style="color: #800080;">$order</span>, <span style="color: #800080;">$messageStack</span><span style="color: #000000;">;</span><span style="color: #008080;"> 56</span> <span style="color: #800080;">$this</span>->code = 'paypal'<span style="color: #000000;">;</span><span style="color: #008080;"> 57</span> <span style="color: #800080;">$this</span> ->codeVersion = '1.3.9'<span style="color: #000000;">;</span><span style="color: #008080;"> 58</span> <span style="color: #0000ff;">if</span> (IS_ADMIN_FLAG === <span style="color: #0000ff;">true</span><span style="color: #000000;">) {</span><span style="color: #008080;"> 59</span> <span style="color: #800080;">$this</span>->title = MODULE_PAYMENT_PAYPAL_TEXT_ADMIN_TITLE; <span style="color: #008000;">//</span><span style="color: #008000;"> 管理者の支払いモジュールのタイトル</span><span style="color: #008080;"> 60</span> <span style="color: #0000ff;">if</span> (IS_ADMIN_FLAG === <span style="color: #0000ff;">true</span> && <span style="color: #008080;">定義</span>('MODULE_PAYMENT_PAYPAL_IPN_DEBUG') && MODULE_PAYMENT_PAYPAL_IPN_DEBUG != 'オフ') <span style="color: #800080;">$this</span>->title .= '<span class="alert"> (デバッグ モードがアクティブ)</span>'<span style="color: #000000;">;</span><span style="color: #008080;"> 61</span> <span style="color: #0000ff;">if</span> (IS_ADMIN_FLAG === <span style="color: #0000ff;">true</span> && MODULE_PAYMENT_PAYPAL_TESTING == 'テスト') <span style="color: #800080;">$this</span>->title .= '<span class="alert"> (開発/テスト モードがアクティブ)</span>'<span style="color: #000000;">;</span><span style="color: #008080;"> 62</span> } <span style="color: #0000ff;">else</span><span style="color: #000000;"> {</span><span style="color: #008080;"> 63</span> <span style="color: #800080;">$this</span>->title = MODULE_PAYMENT_PAYPAL_TEXT_CATALOG_TITLE; <span style="color: #008000;">//</span><span style="color: #008000;"> カタログ内の支払いモジュールのタイトル</span><span style="color: #008080;"> 64</span> <span style="color: #000000;"> }</span><span style="color: #008080;"> 65</span> <span style="color: #800080;">$this</span>->description =<span style="color: #000000;"> MODULE_PAYMENT_PAYPAL_TEXT_DESCRIPTION;</span><span style="color: #008080;"> 66</span> <span style="color: #800080;">$this</span>->sort_order =<span style="color: #000000;"> MODULE_PAYMENT_PAYPAL_SORT_ORDER;</span><span style="color: #008080;"> 67</span> <span style="color: #800080;">$this</span>->有効 = ((MODULE_PAYMENT_PAYPAL_STATUS == 'True') ? <span style="color: #0000ff;">true</span> : <span style="color: #0000ff;"> false</span><span style="color: #000000;">);</span><span style="color: #008080;"> 68</span> <span style="color: #0000ff;">if</span> ((int)MODULE_PAYMENT_PAYPAL_ORDER_STATUS_ID > 0<span style="color: #000000;">) {</span><span style="color: #008080;"> 69</span> <span style="color: #800080;">$this</span>->order_status =<span style="color: #000000;"> MODULE_PAYMENT_PAYPAL_ORDER_STATUS_ID;</span><span style="color: #008080;"> 70</span> <span style="color: #000000;"> }</span><span style="color: #008080;"> 71</span> <span style="color: #0000ff;">if</span> (<span style="color: #008080;">is_object</span>(<span style="color: #800080;">$order</span>)) <span style="color: #800080;">$this</span>-><span style="color: #000000;">update_status();</span><span style="color: #008080;"> 72</span> <span style="color: #800080;">$this </span>->paynow_action_url = 'https://' .<span style="color: #000000;"> MODULE_PAYMENT_PAYPAL_HANDLER;</span><span style="color: #008080;"> 73</span> <span style="color: #008080;"> 74</span> <span style="color: #0000ff;">if</span> (PROJECT_VERSION_MAJOR != '1 ' && <span style="color: #008080;">substr</span>(PROJECT_VERSION_MINOR, 0, 3) != '3.9') <span style="color: #800080;">$this</span>->enabled = <span style="color: #0000ff;">false</span><span style="color: #000000;">;</span><span style="color: #008080;"> 75</span> <span style="color: #008080;"> 76</span> <span style="color: #008000;">//</span><span style="color: #008000;"> テーブル構造を検証</span><span style="color: #008080;"> 77</span> <span style="color: #0000ff;">if</span> (IS_ADMIN_FLAG === <span style="color: #0000ff;">true</span>) <span style="color: #800080;">$this</span>-><span style="color: #000000;">tableCheckup();</span><span style="color: #008080;"> 78</span> <span style="color: #000000;"> }</span><span style="color: #008080;"> 79</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;"> 80</span> <span style="color: #008000;"> * ゾーンの一致とフラグ設定を計算して、このモジュールを表示するかどうかを決定します顧客か否か</span><span style="color: #008080;"> 81</span> <span style="color: #008000;"> *</span><span style="color: #008080;"> 82</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 83</span> <span style="color: #0000ff;">機能</span><span style="color: #000000;"> update_status() {</span><span style="color: #008080;"> 84</span> <span style="color: #0000ff;">グローバル</span> <span style="color: #800080;">$order</span>, <span style="color: #800080;">$db</span><span style="color: #000000;">;</span><span style="color: #008080;"> 85</span> <span style="color: #008080;"> 86</span> <span style="color: #0000ff;">if</span> ( (<span style="color: #800080;">$this</span>->enabled == <span style="color: #0000ff;">true</span>) && ((int)MODULE_PAYMENT_PAYPAL_ZONE > 0<span style="color: #000000;">) ) {</span><span style="color: #008080;"> 87</span> <span style="color: #800080;">$check_flag</span> = <span style="color: #0000ff;">false</span><span style="color: #000000;">;</span><span style="color: #008080;"> 88</span> <span style="color: #800080;"> $check_query</span> = <span style="color: #800080;">$db</span>->Execute("selectzone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_PAYPAL_ZONE . "' およびzone_country_id = '" . <span style="color: #800080;">$order</span>->billing['country']['id'] . "' order byzone_id"<span style="color: #000000;">);</span><span style="color: #008080;"> 89</span> <span style="color: #0000ff;">while</span> (!<span style="color: #800080;"> $check_query</span>-><span style="color: #000000;">EOF) {</span><span style="color: #008080;"> 90</span> <span style="color: #0000ff;">if</span> (<span style="color: #800080;">$check_query</span>->フィールド['zone_id'] &lt ; 1<span style="color: #000000;">) {</span><span style="color: #008080;"> 91</span> <span style="color: #800080;">$check_flag</span> = <span style="color: #0000ff;">true</span><span style="color: #000000;">;</span><span style="color: #008080;"> 92</span> <span style="color: #0000ff;"> Break</span><span style="color: #000000;">;</span><span style="color: #008080;"> 93</span> } <span style="color: #0000ff;">elseif</span> (<span style="color: #800080;">$check_query</span>->fields['zone_id'] == <span style="color: #800080;">$ order</span>->billing['zone_id'<span style="color: #000000;">]) {</span><span style="color: #008080;"> 94</span> <span style="color: #800080;">$check_flag</span> = <span style="color: #0000ff;">true</span><span style="color: #000000;">;</span><span style="color: #008080;"> 95</span> <span style="color: #0000ff;">ブレーク</span><span style="color: #000000;">;</span><span style="color: #008080;"> 96</span> <span style="color: #000000;"> }</span><span style="color: #008080;"> 97</span> <span style="color: #800080;">$check_query</span>-><span style="color: #000000;">MoveNext();</span><span style="color: #008080;"> 98</span> <span style="color: #000000;"> }</span><span style="color: #008080;"> 99</span> <span style="color: #008080;">100</span> <span style="color: #0000ff;">if</span> ( <span style="color: #800080;">$check_flag</span> == <span style="color: #0000ff;">false</span><span style="color: #000000;">) {</span><span style="color: #008080;">101</span> <span style="color: #800080;">$this</span>->有効 = <span style="color: #0000ff;">false</span><span style="color: #000000;">;</span><span style="color: #008080;">102</span> <span style="color: #000000;"> }</span><span style="color: #008080;">103</span> <span style="color: #000000;"> }</span><span style="color: #008080;">104</span> <span style="color: #000000;"> }</span><span style="color: #008080;">105</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">106</span> <span style="color: #008000;"> * このモジュールの場合、データ入力のエラーチェックを行う JS 検証使用するために選択されています</span><span style="color: #008080;">107</span> <span style="color: #008000;"> * (番号、所有者、CVV の長さ)</span><span style="color: #008080;">108</span> <span style="color: #008000;"> *</span><span style="color: #008080;">109</span> <span style="color: #008000;"> * @return string</span><span style="color: #008080;">110</span> <span style="color: #008000;">*/</span><span style="color: #008080;">111</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> javascript_validation() {</span> <span style="color: #008080;">112</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;</span><span style="color: #008080;">113</span> <span style="color: #000000;"> }</span><span style="color: #008080;">114</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">115</span> <span style="color: #008000;"> * チェックアウト支払いページにクレジット カード情報送信フィールド (存在する場合) とともに支払い方法名が表示されます</span><span style="color: #008080;">116</span> <span style="color: #008000;"> *</span><span style="color: #008080;">117</span> <span style="color: #008000;"> * @return array</span><span style="color: #008080;">118</span> <span style="color: #008000;">*/</span><span style="color: #008080;">119</span> <span style="color: #0000ff;">関数</span><span style="color: #000000;">selection() {</span><span style="color: #008080;">120</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">array</span>('id' => <span style="color: #800080;">$この</span>->コード、<span style="color: #008080;">121</span> 'モジュール' => MODULE_PAYMENT_PAYPAL_TEXT_CATALOG_LOGO、<span style="color: #008080;">122</span> 'アイコン' =><span style="color: #000000;"> MODULE_PAYMENT_PAYPAL_TEXT_CATALOG_LOGO</span><span style="color: #008080;">123</span> <span style="color: #000000;"> );</span><span style="color: #008080;">124</span> <span style="color: #000000;"> }</span><span style="color: #008080;">125</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">126</span> <span style="color: #008000;"> * 通常は、クレジット カードの種類が受け入れられるかどうか、およびクレジット カード番号と有効期限が有効であるかを評価します</span><span style="color: #008080;">127</span> <span style="color: #008000;"> * PayPal モジュールは情報を収集していないため、単純にスキップしますこのステップ。</span><span style="color: #008080;">128</span> <span style="color: #008000;"> *</span><span style="color: #008080;">129</span> <span style="color: #008000;"> * @return boolean</span><span style="color: #008080;">130</span> <span style="color: #008000;">*/</span><span style="color: #008080;">131</span> <span style="color: #0000ff;">関数</span><span style="color: #000000;"> pre_confirmation_check() {</span><span style="color: #008080;">132</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;"> ;</span><span style="color: #008080;">133</span> <span style="color: #000000;"> }</span><span style="color: #008080;">134</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">135</span> <span style="color: #008000;"> * チェックアウト確認ページにクレジット カード情報を表示します</span><span style="color: #008080;">136</span> <span style="color: #008000;"> * PayPal サイトに転送する前に PayPal に対して何も収集されないため、これはスキップされます</span><span style="color: #008080;">137</span> <span style="color: #008000;"> *</span><span style="color: #008080;">138</span> <span style="color: #008000;"> * @return boolean</span><span style="color: #008080;">139</span> <span style="color: #008000;">*/</span><span style="color: #008080;">140</span> <span style="color: #0000ff;">関数</span><span style="color: #000000;">confirmation() {</span><span style="color: #008080;">141</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;</span><span style="color: #008080;">142</span> <span style="color: #000000;"> }</span><span style="color: #008080;">143</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">144</span> <span style="color: #008000;"> * [送信] ボタンが押されたときに処理するデータとアクションを構築します。注文確認画面で押下されます。</span><span style="color: #008080;">145</span> <span style="color: #008000;"> * これにより、処理のためにデータが支払いゲートウェイに送信されます。</span><span style="color: #008080;">146</span> <span style="color: #008000;"> * (これらはチェックアウト確認ページの非表示フィールド)</span><span style="color: #008080;">147</span> <span style="color: #008000;"> *</span><span style="color: #008080;">148</span> <span style="color: #008000;"> * @return string</span><span style="color: #008080;">149</span> <span style="color: #008000;">*/</span><span style="color: #008080;">150</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> process_button() {</span><span style="color: #008080;">151</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;</span><span style="color: #008080;">152</span> <span style="color: #000000;"> }</span><span style="color: #008080;">153</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">154</span> <span style="color: #008000;"> * PayPal サイトにアクセスするときに使用する言語を決定します</span><span style="color: #008080;">155</span> <span style="color: #008000;">*/</span><span style="color: #008080;">156</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> getLanguageCode() {</span><span style="color: #008080;">157</span> <span style="color: #0000ff;">グローバル</span> <span style="color: #800080;">$order</span><span style="color: #000000;">;</span><span style="color: #008080;">158</span> <span style="color: #800080;">$lang_code</span> = ''<span style="color: #000000;">;</span><span style="color: #008080;">159</span> <span style="color: #800080;">$orderISO</span> = zen_get_countries(<span style="color: #800080;">$order</span>->customer['country']['id '], <span style="color: #0000ff;">true</span><span style="color: #000000;">);</span><span style="color: #008080;">160</span> <span style="color: #800080;">$storeISO</span> = zen_get_countries(STORE_COUNTRY, <span style="color: #0000ff;">true</span><span style="color: #000000;">); </span><span style="color: #008080;">161</span> <span style="color: #0000ff;">if</span> (<span style="color: #008080;">in_array</span>(<span style="color: #008080;">strtoupper</span>(<span style="color: #800080;">$orderISO</span>['countries_iso_code_2']), <span style="color: #0000ff;">array</span>('US', 'AU', 'DE', 'FR', 'IT', 'GB', 'ES', 'AT', 'BE', 'CA', 'CH' 、'CN'、'NL'、'PL'<span style="color: #000000;">))) {</span><span style="color: #008080;">162</span> <span style="color: #800080;">$lang_code</span> = <span style="color: #008080;">strtoupper</span>(<span style="color: #800080;">$ orderISO</span>['countries_iso_code_2'<span style="color: #000000;">]);</span><span style="color: #008080;">163</span> } <span style="color: #0000ff;">elseif</span> (<span style="color: #008080;">in_array</span>(<span style="color: #008080;">strtoupper</span>(<span style="color: #800080;">$storeISO</span>['countries_iso_code_2'])、<span style="color: #0000ff;">array</span>('US'、'AU'、'DE'、'FR'、'IT'、'GB'、'ES'、 'AT'、'BE'、'CA'、'CH'、'CN'、'NL'、'PL'<span style="color: #000000;">))) {</span><span style="color: #008080;">164</span> <span style="color: #800080;">$lang_code</span> = <span style="color: #008080;">strtoupper</span>(<span style="color: #800080;">$storeISO</span>['countries_iso_code_2'<span style="color: #000000;">]);</span><span style="color: #008080;">165</span> } <span style="color: #0000ff;">elseif</span> (<span style="color: #008080;">in_array</span>(<span style="color: #008080;">strtoupper</span>(<span style="color: #800080;">$_SESSION</span>['言語コード']), <span style="color: #0000ff;">array</span>('EN', 'US', 'AU', ' DE'、'FR'、'IT'、'GB'、'ES'、'AT'、'BE'、'CA'、'CH'、'CN'、'NL'、'PL'<span style="color: #000000;">) )) {</span><span style="color: #008080;">166</span> <span style="color: #800080;">$lang_code</span> = <span style="color: #800080;">$_SESSION</span>['言語コード'<span style="color: #000000;">];</span><span style="color: #008080;">167</span> <span style="color: #0000ff;">if</span> (<span style="color: #008080;">strtoupper</span>(<span style="color: #800080;">$lang_code</span>) == 'EN') <span style="color: #800080;">$lang_code</span> = 'US'<span style="color: #000000;">;</span><span style="color: #008080;">168</span> <span style="color: #000000;"> }</span><span style="color: #008080;">169</span> <span style="color: #008000;">//</span><span style="color: #008000;">return $orderISO['countries_iso_code_2'];</span><span style="color: #008080;">170</span> <span style="color: #0000ff;">return</span> <span style="color: #008080;"> strtoupper</span>(<span style="color: #800080;">$lang_code</span><span style="color: #000000;">);</span><span style="color: #008080;">171</span> <span style="color: #000000;"> }</span><span style="color: #008080;">172</span> <span style="color: #008000;">/*</span> <span style="color: #008000;">*</span><span style="color: #008080;">173</span> <span style="color: #008000;"> * トランザクション情報を注文に保存し、支払いゲートウェイから返された結果を処理します</span><span style="color: #008080;">174</span> <span style="color: #008000;">*/ </span><span style="color: #008080;">175</span> <span style="color: #0000ff;">関数</span><span style="color: #000000;"> before_process() {</span><span style="color: #008080;">176</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;</span><span style="color: #008080;">177</span> <span style="color: #000000;"> }</span><span style="color: #008080;">178</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">179</span> <span style="color: #008000;"> * リファラーをチェック</span><span style="color: #008080;">180</span> <span style="color: #008000;"> *</span><span style="color: #008080;">181</span> <span style="color: #008000;"> * @param string $zf_domain</span><span style="color: #008080;">182</span> <span style="color: #008000;"> * @return boolean</span><span style="color: #008080;">183</span> <span style="color: #008000;">*/</span><span style="color: #008080;">184</span> <span style="color: #0000ff;">function</span> check_referrer(<span style="color: #800080;">$zf_domain</span><span style="color: #000000;">) {</span><span style="color: #008080;">185</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #000000;">;</span><span style="color: #008080;">186</span> <span style="color: #000000;"> }</span><span style="color: #008080;">187 </span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">188</span> <span style="color: #008000;"> * 管理ページコンポーネントを構築</span><span style="color: #008080;">189</span> <span style="color: #008000;"> *</span><span style="color: #008080;">190</span> <span style="color: #008000;"> * @param int $zf_order_id</span><span style="color: #008080;">191</span> <span style="color: #008000;"> * @return string</span><span style="color: #008080;">192</span> <span style="color: #008000;">*/</span><span style="color: #008080;">193</span> <span style="color: #0000ff;">function</span> admin_notification(<span style="color: #800080;">$zf_order_id</span><span style="color: #000000;">) {</span><span style="color: #008080;">194</span> <span style="color: #0000ff;">グローバル</span> <span style="color: #800080;">$db</span><span style="color: #000000;">;</span><span style="color: #008080;">195</span> <span style="color: #800080;">$output</span> = ''<span style="color: #000000;">;</span><span style="color: #008080;">196</span> <span style="color: #800080;">$sql </span> = "* から選択" . TABLE_PAYPAL 。 " ここで order_id = '" 。 (int)<span style="color: #800080;">$zf_order_id</span> 。 "' paypal_ipn_id による注文 DESC LIMIT 1"<span style="color: #000000;">;</span><span style="color: #008080;">197</span> <span style="color: #800080;">$ipn</span> = <span style="color: #800080;">$db</span>->Execute(<span style="color: #800080;">$sql) </span><span style="color: #000000;">);</span><span style="color: #008080;">198</span> <span style="color: #0000ff;">if</span> (<span style="color: #800080;">$ipn</span>->RecordCount() > 0 && <span style="color: #008080;">file_exists</span>(DIR_FS_CATALOG . DIR_WS_MODULES . 'payment/paypal/paypal_admin_notification.php')) <span style="color: #0000ff;">require</span>(DIR_FS_CATALOG . DIR_WS_MODULES . 'payment/paypal/paypal_admin_notification.php'<span style="color: #000000;">);</span><span style="color: #008080;">199 </span> <span style="color: #0000ff;">return</span> <span style="color: #800080;">$output</span><span style="color: #000000;">;</span><span style="color: #008080;">200</span> <span style="color: #000000;"> }</span><span style="color: #008080;">201</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">202</span> <span style="color: #008000;"> * 後処理アクティビティ</span><span style="color: #008080;">203</span> <span style="color: #008000;"> * 注文がプロセッサーから返されるとき、PDT が成功した場合、結果が order-status-history に保存され、その後の参照のためにデータが記録されます</span><span style="color: #008080;">204</span> <span style="color: #008000;"> *</span> <span style="color: #008080;">205</span> <span style="color: #008000;"> * @return boolean</span><span style="color: #008080;">206</span> <span style="color: #008000;">*/</span><span style="color: #008080;">207</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> after_process () {</span><span style="color: #008080;">208</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;</span><span style="color: #008080;">209</span> <span style="color: #000000;"> }</span><span style="color: #008080;">210</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">211</span> <span style="color: #008000;"> * エラーメッセージの詳細を表示するために使用されます</span><span style="color: #008080;">212</span> <span style="color: #008000;"> *</span><span style="color: #008080;">213</span> <span style="color: #008000;"> * @return boolean</span><span style="color: #008080;">214</span> <span style="color: #008000;">*/</span><span style="color: #008080;">215</span> <span style="color: #0000ff;">関数</span> <span style="color: #000000;"> Output_error() {</span><span style="color: #008080;">216</span> <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #000000;">;</span><span style="color: #008080;">217</span> <span style="color: #000000;"> }</span><span style="color: #008080;">218</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">219</span> <span style="color: #008000;"> * モジュールがインストールされているかどうかを確認します</span><span style="color: #008080;">220</span> <span style="color: #008000;"> *</span><span style="color: #008080;">221</span> <span style="color: #008000;"> * @return boolean</span><span style="color: #008080;">222</span> <span style="color: #008000;">*/</span><span style="color: #008080;">223</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> check() {</span><span style="color: #008080;">224</span> <span style="color: #0000ff;">グローバル</span> <span style="color: #800080;">$db</span><span style="color: #000000;">;</span><span style="color: #008080;">225</span> <span style="color: #0000ff;">if</span> (IS_ADMIN_FLAG === <span style="color: #0000ff;">true</span><span style="color: #000000;">) {</span><span style="color: #008080;">226</span> <span style="color: #0000ff;">グローバル</span> <span style="color: #800080;">$sniffer</span> <span style="color: #000000;">;</span><span style="color: #008080;">227</span> <span style="color: #0000ff;">if</span> (<span style="color: #800080;">$sniffer</span>->field_exists(TABLE_PAYPAL, 'zen_order_id')) <span style="color: #800080;">$db</span> ->Execute("ALTER TABLE " . TABLE_PAYPAL 。 " CHANGE COLUMN zen_order_id order_id int(11) NOT NULL デフォルト '0'"<span style="color: #000000;">);</span><span style="color: #008080;">228</span> <span style="color: #000000;"> }</span><span style="color: #008080;">229</span> <span style="color: #0000ff;">if</span> (!<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$this</span>-><span style="color: #000000;">_check)) {</span><span style="color: #008080;">230</span> <span style="color: #800080;">$check_query</span> = <span style="color: #800080;">$db</span>->Execute("selectconfiguration_value from " . TABLE_CONFIGURATION . " whereconfiguration_key = 'MODULE_PAYMENT_PAYPAL_STATUS'"<span style="color: #000000;">);</span><span style="color: #008080;">231</span> <span style="color: #800080;">$this</span>->_check = <span style="color: #800080;">$check_query</span>-><span style="color: #000000;">RecordCount();</span><span style="color: #008080;">232</span> <span style="color: #000000;"> }</span><span style="color: #008080;">233</span> <span style="color: #0000ff;">return</span> <span style="color: #800080;">$this</span>-><span style="color: #000000;">_check;</span><span style="color: #008080;">234</span> <span style="color: #000000;"> }</span><span style="color: #008080;">235</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">236</span> <span style="color: #008000;"> * 支払いモジュールとその構成設定をインストールします</span><span style="color: #008080;"> 237</span> <span style="color: #008000;"> *</span><span style="color: #008080;">238</span> <span style="color: #008000;">*/</span><span style="color: #008080;">239</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> install() {</span> <span style="color: #008080;">240</span> <span style="color: #0000ff;">グローバル</span> <span style="color: #800080;">$db</span>, <span style="color: #800080;">$messageStack</span><span style="color: #000000;">;</span><span style="color: #008080;">241</span> <span style="color: #0000ff;">if</span> (<span style="color: #008080;">定義済み</span>('MODULE_PAYMENT_PAYPAL_STATUS'<span style="color: #000000;">)) {</span><span style="color: #008080;">242</span> <span style="color: #800080;">$messageStack</span>->add_session('PayPal ウェブサイト決済標準モジュールは既に存在しますインストールされました。', 'エラー'<span style="color: #000000;">);</span><span style="color: #008080;">243</span> zen_redirect(zen_href_link(FILENAME_MODULES, 'set=payment&module=paypal', 'NONSSL'<span style="color: #000000;">));</span><span style="color: #008080;">244</span> <span style="color: #0000ff;">return</span> '失敗'<span style="color: #000000;">;</span><span style="color: #008080;">245</span> <span style="color: #000000;"> }</span><span style="color: #008080;">246</span> <span style="color: #0000ff;">if</span> (<span style="color: #008080;">定義済み</span>('MODULE_PAYMENT_PAYPALWPP_STATUS'<span style="color: #000000;">)) {</span><span style="color: #008080;">247</span> <span style="color: #800080;">$messageStack</span>->add_session('注: PayPal エクスプレス チェックアウト モジュールはすでにインストールされていますExpress がインストールされている場合は、Standard は必要ありません。', 'error'<span style="color: #000000;">);</span><span style="color: #008080;">248</span> zen_redirect(zen_href_MODULES, 'set=payment&module=paypalwpp', 'NONSSL' <span style="color: #000000;">));</span><span style="color: #008080;">249</span> <span style="color: #0000ff;">return</span> '失敗'<span style="color: #000000;">;</span><span style="color: #008080;">250</span> <span style="color: #000000;"> }</span><span style="color: #008080;">251</span> <span style="color: #800080;">$db</span>->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title,configuration_key,configuration_value,configuration_description,configuration_group_id,sort_order,set_function,date_added)values ( 'PayPal モジュールを有効にする', 'MODULE_PAYMENT_PAYPAL_STATUS', 'True', 'PayPal 支払いを受け入れますか?', '6', '0', 'zen_cfg_select_option(array('True', 'False'), ', now ())"<span style="color: #000000;">);</span><span style="color: #008080;">252</span> <span style="color: #800080;">$db</span>->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title、configuration_key、c​​onfiguration_value、configuration_description、configuration_group_id) 、sort_order、date_added) 値 ('ビジネス ID'、'MODULE_PAYMENT_PAYPAL_BUSINESS_ID'、'".STORE_OWNER_EMAIL_ADDRESS."'、'PayPal アカウントのプライマリ メール アドレス。<br />注: これは <strong>正確に < ;/strong>PayPal アカウント設定のプライマリ メール アドレスは <strong>大文字と小文字が区別されます</strong>ので、paypal.com で PayPal プロファイルの設定を確認し、正確に同じプライマリ メール アドレスを入力してください。ここ。', '6', '2', now())"<span style="color: #000000;">);</span><span style="color: #008080;">253</span> <span style="color: #800080;">$db</span>->Execute("insert into " . TABLE_CONFIGURATION 。 " (configuration_title,configuration_key,configuration_value,configuration_description,configuration_group_id,sort_order,set_function,date_added)values('Transaction Currency', 'MODULE_PAYMENT_PAYPAL_CURRENCY', 'Selected Currency', '注文を PayPal に送信する通貨はどれですか? <br / >注: サポートされていない通貨が PayPal に送信された場合、USD に自動変換されます。', '6', '3', 'zen_cfg_select_option(array('選択された通貨', 'USD のみ', 'AUD のみ) '、'CAD のみ'、'EUR のみ'、'GBP のみ'、'CHF のみ'、'CZK のみ'、'DKK のみ'、'HKD のみ'、'HUF のみ'、'JPY のみ'、'NOK のみ'、'NZD のみ'、'PLN のみ'、'SEK のみ'、'SGD のみ'、'THB のみ'、'MXN のみ'、'ILS のみ'、'PHP のみ'、'TWD のみ'、'BRL のみ', 'MYR のみ'), ', now())"<span style="color: #000000;">);</span><span style="color: #008080;">254</span> <span style="color: #800080;">$db</span>->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title,configuration_key,configuration_value,configuration_description,configuration_group_id,sort_order,use_function,set_function,date_added)values('Payment Zone', 'MODULE_PAYMENT_PAYPAL_ZONE', '0', 'ゾーンが選択されている場合は、そのゾーンに対してのみこの支払い方法を有効にします.', '6', '4', 'zen_get_zone_class_title', 'zen_cfg_pull_down_zone_classes(', now())"<span style="color: #000000;">);</span><span style="color: #008080;">255</span> <span style="color: #800080;">$db</span>-&gt ;Execute(" に挿入します。 TABLE_CONFIGURATION 。 " (configuration_title,configuration_key,configuration_value,configuration_description,configuration_group_id,sort_order,set_function,use_function,date_added)values('保留中の通知ステータスの設定', 'MODULE_PAYMENT_PAYPAL_PROCESSING_STATUS_ID', '" . DEFAULT_ORDERS_STATUS_ID . "', 'これで行われた注文のステータスを設定しますこの値までまだ完了していない支払いモジュール<br />('保留' 推奨)', '6', '5', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())"<span style="color: #000000;">); </span><span style="color: #008080;">256</span> <span style="color: #800080;">$db</span>->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title、configuration_key、c​​onfiguration_value、configuration_description、configuration_group_id、sort_order、set_function、use_function、date_added)値 ('注文ステータスを設定', 'MODULE_PAYMENT_PAYPAL_ORDER_STATUS_ID', '2', 'この支払いモジュールで行われ、支払いが完了した注文のステータスをこの値に設定します<br />('処理中' を推奨)', '6' , '6', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())"<span style="color: #000000;">);</span><span style="color: #008080;">257</span> <span style="color: #800080;">$db</span>->Execute("に挿入「。」 TABLE_CONFIGURATION 。 " (configuration_title,configuration_key,configuration_value,configuration_description,configuration_group_id,sort_order,set_function,use_function,date_added)values ('返金注文ステータスの設定', 'MODULE_PAYMENT_PAYPAL_REFUND_ORDER_STATUS_ID', '1', 'これで返金された注文のステータスを設定します支払いモジュールをこの値に設定します<br />('保留' 推奨)', '6', '7', 'zen_cfg_pull_down_order_statuses(', 'zen_get_order_status_name', now())"<span style="color: #000000;">);</span><span style="color: #008080;">258</span> <span style="color: #800080;">$db</span>->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title,configuration_key,configuration_value,configuration_description,configuration_group_id,sort_order,date_added)values('表示のソート順。', 'MODULE_PAYMENT_PAYPAL_SORT_ORDER', '0', 'ソート順', '6', '8', now())"<span style="color: #000000;">);</span><span style="color: #008080;">259</span> <span style="color: #800080;">$db</span>->Execute( " に挿入します。 TABLE_CONFIGURATION . " (configuration_title、configuration_key、c​​onfiguration_value、configuration_group_id、sort_order、set_function、date_added) 値 ('Address Override'、'MODULE_PAYMENT_PAYPAL_ADDRESS_OVERRIDE'、'1'、'1 に設定した場合、顧客の配送先住所) Zen Cart で選択されたアドレスは、顧客の PayPal に保存されているアドレス帳を上書きします。顧客は Zen Cart から自分のアドレスを確認できますが、PayPal で編集することはできません。(無効なアドレスは PayPal によって処理されます)。提供されていないものとして、または override=0)<br />0=上書きなし<br />1=ZC アドレスは PayPal アドレスの選択を上書きします', '6', '18', 'zen_cfg_select_option(array('0 ','1'), ', now())"<span style="color: #000000;">);</span><span style="color: #008080;">260</span> <span style="color: #800080;">$db</span>->Execute("insert into " . TABLE_CONFIGURATION 。 " (configuration_title、configuration_key、c​​onfiguration_value、configuration_description、configuration_group_id、sort_order、set_function、date_added) 値 ('配送先住所要件?'、'MODULE_PAYMENT_PAYPAL_ADDRESS_REQUIRED'、'2'、'購入者の配送先住所。0 に設定すると、顧客にプロンプ​​トが表示されます1 に設定すると、顧客は配送先住所を入力する必要がなくなります。<br />0=Prompt<br /> 1=質問されません<br />2=必須<br /><br /><strong>注: 顧客が独自の配送先住所を入力できるようにする場合は、PayPal の住所を個人的に手動で確認してください。ウェブ ペイメント スタンダード (IPN) を使用する場合、Zen Cart は注文時に入力された住所ではなく、PayPal で別の配送先住所を選択するかどうかを認識しません。</strong>', '6', '20', 'zen_cfg_select_option(array('0','1','2'), ', now())"<span style="color: #000000;">);</span><span style="color: #008080;">261</span> <span style="color: #800080;">$db</span>->Execute(" に挿入します。 TABLE_CONFIGURATION 。 " (configuration_title、configuration_key、c​​onfiguration_value、configuration_description、configuration_group_id、sort_order、set_function、date_added) 値 ('カート内の詳細な品目'、'MODULE_PAYMENT_PAYPAL_DETAILED_CART'、'いいえ'、'PayPal に品目の詳細を提供しますか? True に設定すると、割引が適用されず、税金と送料が単純な場合、項目の詳細が PayPal と共有されます。それ以外の場合は、カートの集計概要が送信されます。', '6', '22', 'zen_cfg_select_option('いいえ','はい'), ', now())"<span style="color: #000000;">);</span><span style="color: #008080;">262</span> <span style="color: #800080;">$db</span>->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title,configuration_key,configuration_value,configuration_description,configuration_group_id,sort_order,date_added)values('Page Style', 'MODULE_PAYMENT_PAYPAL_PAGE_STYLE', 'Primary', '支払いページのカスタム支払いページ スタイルを設定します。page_style の値は、ページ スタイルを追加または編集するときに選択したページ スタイル名 PayPal サイトの [マイ アカウント] タブの [プロファイル] サブタブからカスタム支払いページ スタイルを追加および編集できます。常にプライマリ スタイルを参照したい場合は、これを「プライマリ」に設定します。デフォルトの PayPal ページ スタイルを参照したい場合は、これを「paypal」に設定します。', '6', '25', now())"<span style="color: #000000;">);</span><span style="color: #008080;">263</span> <span style="color: #800080;">$db</span>->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title,configuration_key,configuration_value,configuration_description,configuration_group_id,sort_order,set_function,date_added)values('PayPal Web サービスのモード<br /> <br />デフォルト:<br /><code>www.paypal.com/cgi-bin/webscr</code><br />または<br /><code>www .paypal.com/us/cgi-bin/webscr</code><br />または英国の場合、<br /><code>www.paypal.com/uk/cgi-bin/webscr< ;/code>', 'MODULE_PAYMENT_PAYPAL_HANDLER', 'www.paypal.com/cgi-bin/webscr', 'PayPal ライブ処理の URL を選択してください', '6', '73', '', now())" <span style="color: #000000;">);</span><span style="color: #008080;">264</span> <span style="color: #008000;">//</span><span style="color: #008000;"> サンドボックス: www.sandbox.paypal.com/cgi-bin/webscr</span><span style="color: #008080;">265</span> <span style="color: #800080;">$db</span>->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title,configuration_key,configuration_value,configuration_description,configuration_group_id,sort_order,date_added,use_function)values('PDT トークン (支払いデータ転送)', 'MODULE_PAYMENT_PAYPAL_PDTTOKEN', '', '処理後すぐにトランザクションをアクティブ化するには (検証に合格した場合)、PDT トークンの値をここに入力してください。', '6', '25', now(), 'zen_cfg_password_display')"<span style="color: #000000;">);</span><span style="color: #008080;">266</span> <span style="color: #008000;">//</span><span style="color: #008000;"> Paypal テスト オプションはこちら</span><span style="color: #008080;">267</span> <span style="color: #800080;">$db</span>->Execute("insert into " . TABLE_CONFIGURATION . " (configuration_title、configuration_key、c​​onfiguration_value、configuration_description、configuration_group_id、sort_order、set_function、date_added) 値 ('デバッグ モード'、'MODULE_PAYMENT_PAYPAL_IPN_DEBUG'、'オフ'、'デバッグ ログを有効にしますか? <br />注: これは本当に可能です。メールの受信箱が乱雑になります!<br />ログは /includes/modules/payment/paypal/logs フォルダに保存されます<br />メールはストア所有者のアドレスに送信されます。<br />メール オプションは推奨されません.<br /><strong>通常の操作では OFF のままにしておきます。</strong>', '6', '71', 'zen_cfg_select_option(array('Off','Log File','Log and Email) '), ', now())"<span style="color: #000000;">);</span><span style="color: #008080;">268</span> <span style="color: #800080;">$db</span>->Execute("insert into " . TABLE_CONFIGURATION 。 " (configuration_title,configuration_key,configuration_value,configuration_description,configuration_group_id,sort_order,date_added)values ('デバッグ電子メール アドレス', 'MODULE_PAYMENT_PAYPAL_DEBUG_EMAIL_ADDRESS','".STORE_OWNER_EMAIL_ADDRESS."', 'PayPal のデバッグに使用する電子メール アドレス', '6' 、'72'、now())"<span style="color: #000000;">);</span><span style="color: #008080;">269</span> <span style="color: #008080;">270</span> <span style="color: #800080;">$this</span>->notify('NOTIFY_PAYMENT_PAYPAL_INSTALLED');<span style="color: #000000;"></span>271<span style="color: #008080;"> </span> }<span style="color: #000000;"></span>272<span style="color: #008080;"> </span>/*<span style="color: #008000;"></span>*<span style="color: #008000;"></span>273<span style="color: #008080;"> </span> * モジュールとそのすべての設定を削除します<span style="color: #008000;"></span>274<span style="color: #008080;"> </span> *<span style="color: #008000;"></span>275<span style="color: #008080;"> </span>*/<span style="color: #008000;"></span>276<span style="color: #008080;"> </span>関数<span style="color: #0000ff;"></span>remove() {<span style="color: #000000;"></span>277<span style="color: #008080;"> </span>グローバル<span style="color: #0000ff;"> </span>$db<span style="color: #800080;"></span>;<span style="color: #000000;"></span>278<span style="color: #008080;"> </span>$db<span style="color: #800080;">->Execute("delete from " . TABLE_CONFIGURATION . " whereconfiguration_key LIKE 'MODULE_PAYMENT_PAYPAL_%'"</span>);<span style="color: #000000;"></span>279<span style="color: #008080;"> </span>$ this<span style="color: #800080;">->notify('NOTIFY_PAYMENT_PAYPAL_UNINSTALLED'</span>);<span style="color: #000000;"></span>280<span style="color: #008080;"> </span> }<span style="color: #008080;">281</span> <span style="color: #008000;">/*</span><span style="color: #008000;">*</span><span style="color: #008080;">282</span> <span style="color: #008000;"> * モジュールの構成に使用される構成キーの内部リスト</span> <span style="color: #008080;">283</span> <span style="color: #008000;"> *</span><span style="color: #008080;">284</span> <span style="color: #008000;"> * @return array</span><span style="color: #008080;">285</span> <span style="color: #008000;">*/</span><span style="color: #008080;">286 </span> <span style="color: #0000ff;">関数</span><span style="color: #000000;"> key() {</span><span style="color: #008080;">287</span> <span style="color: #800080;">$keys_list</span> = <span style="color: #0000ff;">配列</span><span style="color: #000000;">(</span> <span style="color: #008080;">288</span> 'MODULE_PAYMENT_PAYPAL_STATUS'、<span style="color: #008080;">289</span> 'MODULE_PAYMENT_PAYPAL_BUSINESS_ID'、<span style="color: #008080;">290</span> 'MODULE_PAYMENT_PAYPAL_PDTTOKEN'、<span style="color: #008080;">291</span> 'MODULE_PAYMENT_PAYPAL_CURRENCY'、<span style="color: #008080;">292</span> 'MODULE_PAYMENT_PAYPAL_ZONE'、<span style="color: #008080;">293</span> 'MODULE_PAYMENT_PAYPAL_PROCESSING_STATUS_ID'、<span style="color: #008080;">294</span> 'MODULE_PAYMENT_PAYPAL_ORDER_STATUS_ID'、<span style="color: #008080;">295</span> 'MODULE_ PAYMENT_PAYPAL_REFUND_ORDER_STATUS_ID',<span style="color: #008080;">296</span> 'MODULE_PAYMENT_PAYPAL_SORT_ORDER',<span style="color: #008080;">297</span> 'MODULE_PAYMENT_PAYPAL_DETAILED_CART',<span style="color: #008080;">298</span> 'MODULE_PAYMENT_PAYPAL_ADDRESS_OVERRIDE' ,<span style="color: #008080;">299</span> 'MODULE_PAYMENT_PAYPAL_ADDRESS_REQUIRED' ,<span style="color: #008080;">300</span> 'MODULE_PAYMENT_PAYPAL_PAGE_STYLE' 、<span style="color: #008080;">301</span> 'MODULE_PAYMENT_PAYPAL_HANDLER',<span style="color: #008080;">302</span> 'MODULE_PAYMENT_PAYPAL_IPN_DEBUG',<span style="color: #008080;">303</span> <span style="color: #000000;"> );</span><span style="color: #008080;">304</span> <span style="color: #008080;">305</span> <span style="color: #008000;">//</span><span style="color: #008000;"> Paypal のテスト/デバッグ オプションはここにあります:</span><span style="color: #008080;">306</span> <span style="color: #0000ff;">if</span> (IS_ADMIN_FLAG === <span style="color: #0000ff;">true</span><span style="color: #000000;">) {</span> <span style="color: #008080;">307</span> <span style="color: #0000ff;">if</span> (<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$_GET</span>['debug']) && <span style="color: #800080;">$_GET</span>['debug' ]=='on'<span style="color: #000000;">) {</span><span style="color: #008080;">308</span> <span style="color: #800080;">$keys_list</span>[]='MODULE_PAYMENT_PAYPAL_DEBUG_EMAIL_ADDRESS';  <span style="color: #008000;">/*</span><span style="color: #008000;"> デフォルトはストア所有者のメールアドレス </span><span style="color: #008000;">*/</span><span style="color: #008080;">309</span> <span style="color: #000000;"> }</span><span style="color: #008080;">310 </span> <span style="color: #000000;"> }</span><span style="color: #008080;">311</span> <span style="color: #0000ff;">return</span> <span style="color: #800080;">$keys_list</span><span style="color: #000000;">;</span><span style="color: #008080;">312</span> <span style="color: #000000;"> }</span><span style="color: #008080;">313</span> <span style="color: #008080;">314</span> <span style="color: #0000ff;">関数</span> _getPDTresults(<span style="color: #800080;">$orderAmount</span>, <span style="color: #800080;">$my_currency</span>, <span style="color: #800080;">$pdtTX</span><span style="color: #000000;">) {</span><span style="color: #008080;">315</span> <span style="color: #0000ff;">グローバル</span> <span style="color: #800080;">$db</span><span style="color: #000000;">;</span><span style="color: #008080;">316</span> <span style="color: #800080;">$ ipnData</span> = ipn_postback('PDT', <span style="color: #800080;">$pdtTX</span><span style="color: #000000;">);</span><span style="color: #008080;">317</span> <span style="color: #800080;">$respdata</span> = <span style="color: #800080;">$ipnData</span>['info'<span style="color: #000000;">];</span><span style="color: #008080;">318</span> <span style="color: #008080;">319</span> <span style="color: #008000;">//</span><span style="color: #008000;"> データを解析します</span><span style="color: #008080;">320</span> <span style="color: #800080;">$lines</span> = <span style="color: #008080;">explode</span>("n", <span style="color: #800080;">$respdata</span><span style="color: #000000;">);</span><span style="color: #008080;">321</span> <span style="color: #800080;">$this </span>->pdtData = <span style="color: #0000ff;">array</span><span style="color: #000000;">();</span><span style="color: #008080;">322</span> <span style="color: #0000ff;">for</span> (<span style="color: #800080;">$i</span>=1; <span style="color: #800080;">$i</span><<span style="color: #008080;">カウント</span>(<span style="color: #800080;">$lines</span>);<span style="color: #800080;">$i</span> <span style="color: #000000;">){</span><span style="color: #008080;">323</span> <span style="color: #0000ff;">if</span> (!<span style="color: #008080;">strstr</span>(<span style="color: #800080;">$lines</span>[<span style="color: #800080;">$i</span>], "=")) <span style="color: #0000ff;">続行</span><span style="color: #000000;">;</span><span style="color: #008080;">324</span> <span style="color: #0000ff;">list</span>(<span style="color: #800080;">$key</span>,<span style="color: #800080;">$val</span>) = <span style="color: #008080;">explode</span>("= ", <span style="color: #800080;">$lines</span>[<span style="color: #800080;">$i</span><span style="color: #000000;">]);</span><span style="color: #008080;">325</span> <span style="color: #800080;">$this</span>->pdtData[<span style="color: #008080;">urldecode</span>(<span style="color: #800080;">$key</span>)] = <span style="color: #008080;">urldecode</span>(<span style="color: #800080;">$val</span><span style="color: #000000;">);</span><span style="color: #008080;">326</span> <span style="color: #000000;"> }</span><span style="color: #008080;">327</span> <span style="color: #008080;">328</span> <span style="color: #0000ff;">if</span> (<span style="color: #800080;">$this</span>->pdtData['txn_id'] == '' || <span style="color: #800080;">$this</span>->pdtData['payment_status'] == ''<span style="co"></span>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。