決済申し込みページで、下記のように100円決済と200円決済の2つのボタンを置いています。
クリックすると、金額別のモーダルが出るところまでいいのですが、決済処理(charge.php)で金額を分岐させる方法がわからず困っています。
ボタンのコードは下記のよう感じです。
<form method="post" action="charge.php"> <ul> <li> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="{key}" data-amount="100" data-name="100円" data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="auto" data-allow-remember-me="false" data-label="100円" data-currency="jpy"> </script> </li> <li> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="{key}" data-amount="200" data-name="200円" data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="auto" data-allow-remember-me="false" data-label="200円" data-currency="jpy"> </script> </li> </ul> </form>
charge.phpの方は
<?php require_once('../config.inc.php'); // ダウンロードしたStripeのPHPライブラリのinit.phpを読み込む require_once(dirname( __FILE__ ).'/stripe/init.php'); // APIのシークレットキー \Stripe\Stripe::setApiKey('sk_test_mC3ac9u6pa5RIEnfwZWltUQG00oUlpL8l6'); $chargeId = null; echo 'ok';exit; try { // (1) オーソリ(与信枠の確保) $token = $_POST['stripeToken']; $charge = \Stripe\Charge::create(array( 'amount' => 100, 'currency' => 'jpy', 'description' => 'test', 'source' => $token, 'capture' => false, )); $chargeId = $charge['id']; // (2) 注文データベースの更新などStripeとは関係ない処理 // (3) 売上の確定 $charge->capture(); // 購入完了画面にリダイレクト header("Location: aaa.html"); exit; } catch(Exception $e) { if ($chargeId !== null) { // 例外が発生すればオーソリを取り消す \Stripe\Refund::create(array( 'charge' => $chargeId, )); } // エラー画面にリダイレクト header("Location: error.html"); exit; } ?>
のようになっていて、tryの中の4行目
'amount' => 100,
のところを、100と200で分岐させる方法はあるのでしょうか?
もしくは、
<form method="post" action="charge1.php"> <ul> <li> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="{key}" data-amount="100" data-name="100円" data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="auto" data-allow-remember-me="false" data-label="100円" data-currency="jpy"> </script> </li> </ul> </form> <form method="post" action="charge2.php"> <ul> <li> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="{key}" data-amount="200" data-name="200円" data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="auto" data-allow-remember-me="false" data-label="20000円" data-currency="jpy"> </script> </li> </ul> </form>
のように、formタグを2つに分けて、それぞれ100円と200円の決済処理を実行させるしかないのでしょうか?
よろしくお願いいたします。
あなたの回答
tips
プレビュー