介绍
由于可以将信用卡支付引入网站的" Stripe Checkout"版本已更新,因此,我将编写一次一次性信用卡支付示例。
示例代码环境
CentOS 8
php 7.2
stripe-php 7.6
stripe-php由composer安装。
1 | composer require stripe/stripe-php |
付款页面样本
通过将金额,产品名称,重定向URL等定义为要传递到Stripe付款表的信息来创建会话。
如果将{CHECKOUT_SESSION_ID}添加到重定向目标URL的参数中,它将在重定向时自动转换为session_id。
Payment.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <?php require './vendor/autoload.php'; // ご自身のAPIキーを入力 $secretKey = 'sk_test_xxxxxxxx'; $publicKey = 'pk_test_xxxxxxxx'; $stripe = new \Stripe\StripeClient($secretKey); $session = $stripe->checkout->sessions->create([ 'payment_method_types' => ['card'], 'line_items' => [[ 'price_data' => [ 'currency' => 'JPY', 'product_data' => [ 'name' => '商品名', ], 'unit_amount' => 100, ], 'quantity' => 1, ]], 'mode' => 'payment', // ご自身のサイトURLを入力 'success_url' => 'https://192.168.56.101/success.php?session_id={CHECKOUT_SESSION_ID}', 'cancel_url' => 'https://192.168.56.101/success.php?session_id={CHECKOUT_SESSION_ID}', ]); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> 支払いページ <script src="https://js.stripe.com/v3/"></script> </head> <body> <button id="checkout-button">支払う</button> <script type="text/javascript"> var stripe = Stripe('<?php echo $publicKey;?>'); var checkoutButton = document.getElementById('checkout-button'); checkoutButton.addEventListener('click', function() { stripe.redirectToCheckout({sessionId: "<?php echo $session->id;?>"}) .then(function (result) { if (result.error) { // var displayError = document.getElementById('error-message'); // displayError.textContent = result.error.message; } }); }); </script> </body> </html> |
打开
付款页面,然后按"付款"按钮转到Stripe的付款页面。
如果输入您的信用卡信息并付款,您将被重定向到success_url。
完成页示例
success_url的success.php文件。使用GET中传递的session_id来检查付款是否完成。
success.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?php require './vendor/autoload.php'; // ご自身のAPIキーを入力 $secretKey = 'sk_test_xxxxxxxx'; $stripe = new \Stripe\StripeClient($secretKey); $session = $stripe->checkout->sessions->retrieve($_GET['session_id'], []); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> 完了ページ <script src="https://js.stripe.com/v3/"></script> </head> <body> <?php if ($session->payment_status === 'paid') { echo '<p>支払いが完了しました</p>'; } if ($session->payment_status === 'unpaid') { echo '<p><center>[wp_ad_camp_2]</center></p><p>支払いが完了していません</p>'; } ?> </body> </html> |
付款完成后,显示"付款完成"。如果取消付款,将显示"付款未完成"。
检查
条纹仪表板以确保付款已完成。
与旧版相比有什么变化
现在始终创建客户
现在总是在付款完成后创建客户。由于卡信息被保留,因此您将能够从仪表板上制作其他账单。您可以从仪表板上删除客户。
与Apple Pay和Google Pay
兼容
您可以在仪表板设置中打开和关闭Apple Pay和Google Pay。
支持3D Secure
它似乎支持3D Secure进行个人身份验证。
弹出窗口变为页面过渡
对于
旧版,当您按下付款按钮时,会打开一个弹出窗口,但是现在您可以通过页面转换来付款。
您现在可以更改付款表格
的颜色
您可以创建与您自己的网站融合的设计。
等
有关更多详细信息,请参见Stripe Checkout文档。
仅此而已。