ネット決済代行をしてくれるStripeを使用してサーバ構築なしで販売できる別の支払い方法を紹介
前回Stripeでダイレクトリンクを作成し支払いができる状態までできましたが、それだけでは不便ですので、HTML JSの出番になります。 サーバレスではあるがフロント(HTML,JS,CSS)にある程度理解があり、本運用するのであればWebページを表示できるwebサーバーが必要にはなります。 無料で使用できるサービスは結構あるのでそれは別途記事にしていきたいと思います。
今回はテストで動かせるを目的にしているので、HTML,JSができれば特に問題ありません。
購入ボタンクリックで商品2つの商品ページが表示される
テストだけならウェブサーバー不要で、手元にPCだけあればとりあえず試せます。 今回はHTMLとJSでstripeのredirectToCheckoutというものを使用します。
jsに長けている人であれば、頑張ればカート(かご)機能を作ることができますが... 私はReactを使用しているのでプレーンのJSを使用するのはちょっと大変だな...
IDは「price_」から始まる文字です。
「公開可能キー」については厳格に扱いを気にする必要はありませんが、 「シークレットキー」については絶対にどこにも公開しないでください。
ちなみに「シークレットキー」については今回は使用しません。
とりあえず動かせるソースを載せます。
3ヶ所修正してテストしてみてください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Title</title>
<script src="https://js.stripe.com/v3"></script>
</head>
<body>
<button id ="btn">購入ボタン</button>
</body>
<script>
var youerstripekey = 'pk_test_XXXXXXXXXXXX'
var btn = document.getElementById('btn');
var stripe = Stripe(youerstripekey);
btn.addEventListener('click', function () {
stripe.redirectToCheckout({
lineItems: [
{price: 'price_XXXXXXXXX', quantity: 1},
{price: 'price_XXXXXXXXX' , quantity: 3}
],
mode: 'payment',
successUrl: 'https://localhost/success',
cancelUrl: 'https://localhost/canceled',
})
.then(function(result) {.....});
});
</script>
</html>
stripe.redirectToCheckoutでstripe側でURLが作成されるのでそこにアクセスします。(redirect) 商品はLineItemsの中の物です。 price quantityを設定してあげます。
mode:paymentの他にサブスクとしてsubscriptionがありますが今回は通常の支払いのためpaymentを仕様。 successUrl , cancelUrlについて支払いが正常に完了した場合。その他支払が終わって無い場合どこにページを切り替えるかの設定です。 successUrlのURL部分に購入いただきありがとうございましたのページを作ったらいいかもですね。 その他のパラメータは公式から参照ください。
商品単品の場合ウェブサーバーも不要でしたが、今回はウェブサーバーが必要になります。 それでもHTML、JSだけでここまで作れるとは。本当にありがたい。とても簡単なので助かります。
これ以上のカスタマイズ等を求めるのであればやはりサーバーが必要になるので。とても大変になってきます。 正直もうこれだけでほとんどの要件が満たせると思う。cartかごの機能はlocalstorageを使用すれば比較的に簡単に作成できます。
質問や、間違いがありましたら、お気軽にどうぞ
※お名前とコメントの内容を入力してください。
※全てこのブログ上に公表されます。
※許可なく管理者によって修正・削除する場合がございます。 詳しくはプライバシーポリシーを参照ください