PayPal の checkout.js を使用すれば、購入確認ページに JavaScript のコードを貼り付けるだけでトークン決済を実装できます。
これなら、2.4 や、 2.11, 2.12 など古いバージョンの EC-CUBE でも対応可能です。

こんなコードを shopping/confirm.tpl に埋めるだけです。
別途 PayPal プレミアアカウントまたはビジネスアカウントの開設が必要です。

shopping/confirm.tpl
<script src="https://www.paypalobjects.com/api/checkout.min.js" data-version-4></script>
<script>
    paypal.Button.render({
        env: 'sandbox', // Specify 'sandbox' for the test environment
        client: {
            sandbox: '<PayPal sandbox client ID>',
            production: '<PayPal production client ID>'
        },
        locale: 'ja_JP',
        style: {
            size: 'small'
        },
        payment: function (resolve, reject) {
            var env = this.props.env;
            var client = this.props.client;
            return paypal.rest.payment.create(env, client, {
                transactions: [
                    {
                        amount: { total: '<!--{$arrForm.payment_total}-->', currency: 'JPY' },
                        invoice_number: '<!--{$arrForm.order_temp_id}-->',
                        description: 'EC-CUBE 決済'
                    }
                ]
            },
                                              {
                                                  input_fields: {
                                                      no_shipping: 1
                                                  }
                                              });
        },
        commit: true,
        onAuthorize: function (data, actions) {
            // Execute the payment here, when the buyer approves the transaction
            return actions.payment.execute().then(function () {
                $('#form1').submit();
            });
        }
    }, '#paypal-button');
</script>

お支払い方法に応じて、購入完了ボタンの箇所に以下の div タグを描画させるようにします。

<div id="paypal-button"></div>

(あとでもうちょっと詳しい手順を記載します...)

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.