一昔前の静的サイトでは、商品の情報と画像を掲載し、メールや電話で注文を受け付けるのが通例でした。しかし今日では、堅牢なEC機能が組み込まれた動的なオンラインストアが一般的。購買プロセスは劇的に簡素化され、買い物客は競合サイトを覗いたりすることなく、欲しい商品を購入することができます。
静的サイトに決済代行サービスを統合するのは非常に簡単です。API(アプリケーションプログラミングインターフェース)とサーバーレスアーキテクチャによって、静的サイトにEC機能を実装し、サイトでオンライン販売ができるようになります。
今回は、例として花屋の静的サイトにPayPalとStripeを統合する手順を見ていきます。サイトにEC機能を追加し、オンライン販売を始める参考にしてみてください。
はじめに
静的サイトに決済サービスを統合する手順をご紹介する前に、まずはおおまかな流れを見てみましょう。
- サンプルとして使用する静的サイトのコードをダウンロードし、Kinstaの静的サイトホスティングにデプロイ。
- PayPalアカウントを作成し、ビジネスアカウントを選択(決済ボタンのテストにはビジネスアカウントが必要)。その後、店舗情報を追加して、銀行口座を登録し、後で使用するPayPal DeveloperポータルからAPIの認証情報を取得する。
- Stripeアカウントを作成し、店舗や銀行口座などの詳細を入力。Stripeは、今回のプロジェクトに適したアカウントの有効化が可能で、アカウントが有効になると、すぐにStripeの管理画面にアクセスできる。後で使用するプロジェクトの鍵となるAPIキーを取得。
サンプルの静的サイトを確認する
既存の静的サイトを使用して、PayPalとStripeの決済機能を統合します。静的サイトですが、花屋のオンラインストアを模しています。
Kinstaの静的サイトホスティングインフラストラクチャは、PayPalとStripeの決済機能を導入してテストし、より洗練された魅力的な静的サイトを作成するための効率的な環境です。
Kinstaにサイトをデプロイした後、トップページにアクセスします。「Order Inquiry」(注文に関するお問い合わせ)ボタンをクリックしてみましょう。
「Flower Catalog」(お花一覧)ページで商品を選択します。
この商品の詳細ページに、PayPalとStripeの決済ボタンを実装していきます。
静的サイトにPayPal Checkoutを統合する方法
PayPal Checkoutを統合することで、ユーザーに安全かつ信頼できる支払い方法を提供し、取引プロセスを合理化してユーザー体験を改善することができます。さらに、サイトの機能性と顧客満足度を大幅に向上されます。
PayPal Checkoutを静的サイトに統合する手順は以下のとおり。
- PayPal Developerの管理画面にログイン。
- 「Apps & Credentials」を選択し、右上トグルスイッチを「Sandbox」に切り替えた上で、「Create App」をクリックします。
- アプリの名前を入力し(今回の例では「Kinsta Gateway Demo」)、「Merchant」(商用)を選択して、「Create App」をクリックする。
- 後ほどPayPalの決済ボタンを追加するため、「API credentials」セクションの「Client ID」をコピーしてください。
- ページをスクロールして、その他の設定も確認します。今回の例では、設定はすべてデフォルトでOKです。「Save Changes」で設定を保存します。
- PayPal Checkoutを静的サイトに統合します。PayPalの代替支払方法(APM、Alternative Payment Methodの略)であるPayPal JavaScript SDKを使用して決済ボタンを作成します。この方法により、バックエンドアプリケーションをセットアップすることなく、さまざまな支払い方法を静的サイトに統合できるようになります。product.htmlファイルの
</body>
タグを閉じる直前に、以下のJavaScriptコードを貼り付けてください。YOUR_CLIENT_ID
は、実際のPayPalのクライアントIDに置き換えます。また、通貨はPayPalで使用可能な任意の通貨に置き換えることができます(日本円にする場合は、USD
をJPY
に変更)。<!-- PAYPAL BUTTON SCRIPT--> <script src="https://www.paypal.com/sdk/js?client-id=YOUR_CLIENT_ID¤cy=USD" data-sdk-integration-source="button-factory"></script> <script> paypal.Buttons({ createOrder: function(data, actions) { // 取引を設定 return actions.order.create({ purchase_units: [{ amount: { value: '1.00' } }] }); }, onApprove: function(data, actions) { // 取引で発生した支払い金額を回収 return actions.order.capture().then(function(details) { // 購入者に決済完了のメッセージを表示 alert('Transaction completed by ' + details.payer.name.given_name); }); } }).render('#paypal-button-container'); </script> <!-- PAYPAL BUTTON SCRIPT-->
paypal.Buttons
関数は、以下2つの関数を定義します。createOrder
─購入金額(この例では1.00米ドル)などの取引の詳細を設定onApprove
─取引の承認を処理し、資金を回収して、購入者に決済完了のメッセージを表示(この例ではalert()
を使用)
render
関数は、PayPal ボタンがIDpaypal-button-container
を持つ既存の<div>
内にレンダリングされるように指定しています。これで、静的サイトにPayPalを統合できました。
静的サイトにStripe Checkoutを統合する方法
Stripeは、あらゆる規模のビジネスに適した決済処理ソリューションを提供する、人気プラットフォームです。続いて、静的サイトにStripe Checkoutを統合する方法を見ていきましょう。
- Stripe Checkoutの決済ボタンを実装する前に、APIまたはStripeの管理画面で商品と価格を管理します。後者の場合は、管理画面で画面上部のトグルスイッチを「テスト環境」に切り替え、「商品」を選択します。
- 「商品を追加」をクリックして、「商品情報」フォームを開きます。
- 各フィールドを入力します。今回は、それぞれ以下のように設定します。
- 名前:Turkish Rose
- 説明:This is a beautiful Turkish Rose.
- 画像:(imagesturkishrose.pngをアップロード)
- 支払い方法:One-off(一括)
- 価格:1.00
- 通貨:米ドル(または任意の通貨)
- 各フィールドを埋めたら、「商品を保存」クリックします。
- 「商品」ページで一覧から「Turkish Rose」を選択します。
- 「料金」セクションで「支払いリンクを作成」をクリック。次に進む前に、商品の数量が
1
であることを確認してください。 - 「リンクを作成」をクリックします。
- 「支払いリンク」ページで、「購入ボタン」をクリックします。
- 「購入ボタン」パネルに生成された決済ボタンのコードが表示されます。ボタンのレイアウトを「設定」セクションで選択し、「ボタンのテキストを変更」をオンにして表示されるフィールドにボタンの文言を入力します(今回の例では「Buy with Stripe」)。最後に、「変更を保存してコードをコピーする」をクリックして、生成されたコードをOSのクリップボードにコピーします。
- PayPal同様、コピーしたコードをサンプルコードのproduct.htmlファイルの閉じタグ
</body>
の前(STRIPE BUTTON BEGIN
とSTRIPE BUTTON END
の間)に貼り付けます。<!-- STRIPE BUTTON BEGIN --> <script> async src="https://js.stripe.com/v3/buy-button.js"> </script> <stripe-buy-button> buy-button-id="BUY_BUTTON_ID" publishable-key="PUBLISHABLE_KEY" > </stripe-buy-button> <!-- STRIPE BUTTON END -->
以上で完了です。PayPalとStripeを統合したら、静的サイトコードをKinstaの静的サイトホスティング環境にデプロイします。
決済プロセスをテストする
サンプルの静的サイトの商品詳細ページを開き、PayPalとStripeの決済ボタンが正しく表示されていることを確認します。
PayPal Checkoutのボタンをクリックすると、以下のようなログインダイアログボックスが表示されます。買い物客はPayPalにログインし、決済を完了させます。
この段階でログインの問題が生じる場合、ビジネスアカウントではなく個人アカウントでテストしている可能性があります。
また、買い物客はデビットカードかクレジットカードを選択することもできます。クリックすると以下のようなダイアログボックスが表示され、アカウント情報の入力が促されます。
すると、商品情報とPayPalアカウントの詳細が表示されます。確認の上、「Complete Purchase」をクリックすれば決済完了です。
PayPalで取引が承認されると、クライアントサイトで実行されるJavaScriptコードにより、決済完了の通知が表示されます。なお、この通知は開発/デバッグ用です。本番コードでは使用しないようにしてください。
取引を確認するには、PayPal for Businessの管理画面を開きます。「取引」>「最近の取引」>「すべてを表示」をクリックすると、最近のすべての取引の詳細が一覧表示されます。
サンプルサイトのproduct.htmlページで、「Buy with Stripe」をクリックして、Stripe Checkoutの決済プロセスもテストしましょう。この操作によって、商品詳細とGoogle Pay、Link、クレジットカード決済などの支払い方法を選択できるStripeのダイアログボックスが表示されます。
今回はGoogle Payを選択してみます。以下のようなダイアログボックスが表示され、支払いを行うカードを選択し、Google Payで商品の購入を確定します。
「PAY」をクリックして決済が完了すると、購入確認が表示されます。
Stripeの管理画面で「入金」を開くと、金額、通貨、説明、顧客情報、日付などの詳細が表示されます。
決済プロセスのトラブルシューティング
決済プロセスのテスト中にエラーが発生した場合は、以下のようなトラブルシューティングを行ってみてください。
- 決済代行サービスの設定を変更する
- SSL証明書を検証する
- 買い物客のブラウザの互換性をチェックする
- 適切なエラー処理を適用する
- 複数の環境でテストする
- ログと監視の技術を使用する
まとめ
Kinstaでホストする花屋のオンラインストアに、PayPal CheckoutとStripe Checkoutを統合し、決済ボタンを実装する方法をご紹介しました。同様の手順でその他の静的サイトにも決済機能を追加し、オンラインでの販売を開始して収益を伸ばすことができます。
Kinstaの静的サイトホスティングサービスは、ECサイトと決済機能など、動的な要素を統合するのにぴったりなシームレスな環境を提供しています。堅牢なインフラストラクチャにより、高速なページ読み込みが保証され、スムーズなオンラインショッピング体験を実現することができます。
静的サイトホスティングに加えて、Kinstaではより動的なアプリケーション(サーバーサイド処理、データベースインタラクションのような高度な機能が必要となるウェブアプリケーションなど)向けに設計されたアプリケーションホスティングもご用意しています。
PayPalやStripeのような決済代行サービスを活用して、静的サイトに動的な体験を実現してみてください。お気に入りのサービスはありますか?以下のコメント欄でぜひお聞かせください。
コメントを残す