stripのdashboardで商品を追加して、api idをメモします。

続いて、登録画面
-> これは普通の購入画面とほぼ一緒の書き方。
-> emailをpostする
<body> <img src="img/boat.jpg" width="300px" height="200px"><br> <p>サロン会員: ¥<?php echo $price; ?>(月額課金)</p> <form action="/subscription.php" method="post"> <input hidden name="name" value="<?php echo $name; ?>"> <input hidden name="email" value="<?php echo $email; ?>"> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="pk_test_*" data-image="" data-amount="<?php echo $price; ?>" data-name="<?php echo $name; ?>" data-description="" data-email="<?php echo $email; ?>" data-locale="auto" data-allow-remember-me="false" data-label="クレジットカードで登録する" data-currency="jpy" > </script> </form><br> <!-- <form action="/banck.php" method="post"> <button class="bank-btn">銀行振込で支払う</button> </form> --> </body>

### サーバーサイド側
-customerを作るときは、emailとsourceのみ。payment_methodを設定するとエラーになる。
-echo $e;でエラー内容を表示しながら作業する
-\Stripe\Subscription::createのpriceのところで、先ほど取得したAPI IDを設定する
require_once('vendor/autoload.php');
\Stripe\Stripe::setApiKey('sk_*');
$sub_id = null;
try {
$token = $_POST['stripeToken'];
$name = $_POST['name'];
$email = $_POST['email'];
$customer = \Stripe\Customer::create([
'email' => $email,
'source' => $token,
]);
$subscription = \Stripe\Subscription::create([
'customer' => $customer->id,
'items' => [
[
'price' => 'price_*',
],
]
]);
var_dump($subscription);
$sub_id = $subscription->id;
// // アプリケーション側のDB更新
header("Location: /complete.php");
exit;
} catch(Exception $e){
echo $e;
// if($sub_id !== null){
// // 例外が発生すればオーソリを取り消す
// \Stripe\Refund::create(array(
// 'charge' => $sub_id,
// ));
// }
// header("Location: /error.html");
// exit;
}
これでOK。
定額もショッピングも両方いけます。
続いて、定額の解約を実装したい。