質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Stripe

Stripeとは、米国のオンライン決済システム提供企業、及び同社が提供する決裁システムを指します。Webサイトやモバイルアプリにコードを組み込むことでクレジットカードなどの決済サービスが簡潔に追加できます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

0回答

699閲覧

stripeで決済ボタンを2種類の金額で置いた場合の処理について

avantgarden

総合スコア121

Stripe

Stripeとは、米国のオンライン決済システム提供企業、及び同社が提供する決裁システムを指します。Webサイトやモバイルアプリにコードを組み込むことでクレジットカードなどの決済サービスが簡潔に追加できます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/09/06 06:39

編集2019/09/06 06:52

決済申し込みページで、下記のように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円の決済処理を実行させるしかないのでしょうか?

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mix-peach

2019/09/12 06:58

stripeは使ったことありませんが、クライアント側(ブラウザ上)で選択した「金額」を、php側に渡すことができないなら、php側で分岐?させることはできないですね。 というか、一般的に、決済関連で、決済額面をプログラム内に【固定値】で書くのでは、不便極まりないと思うので、$_POSTされたデータの中に含まれていそうなものですけど、入っていませんか??
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問