PayPal による支払いを受け付ける
ヨーロッパの企業に広く普及しているデジタルウォレットである PayPal の決済を受け付ける方法をご紹介します。
Stripe を設定するサーバ側クライアント側
まず、Stripe アカウントが必要です。今すぐ登録してください。
サーバ側
この組み込みには、サーバ上に Stripe API と通信するエンドポイントが必要です。サーバから Stripe API にアクセスするには、Stripe の公式ライブラリを使用します。
クライアント側
Stripe iOS SDK はオープンソースです。詳細なドキュメントが提供されており、iOS 13 以降をサポートするアプリと互換性があります。
注
SDK の最新リリースおよび過去バージョンの詳細については、GitHub の Releases (リリース) ページをご覧ください。リポジトリのリリースをウォッチして、新しいリリースの公開時に通知を受け取ることも可能です。
アプリの起動時に Stripe 公開可能キーを使用して SDK を設定します。これにより、アプリが Stripe API にリクエストを送信できるようになります。
PaymentIntent を作成するサーバー側クライアント側
サーバー側
Stripe では、PaymentIntent (支払いインテント) と呼ばれる支払いオブジェクトを使用して、支払いの完了まですべてのステータスを追跡および処理します。サーバーで PaymentIntent
を作成し、回収する金額と通貨を指定します。すでに Payment Intents API を使用したシステムがある場合は、paypal
を PaymentIntent の決済手段タイプリストに追加します。
返される PaymentIntent には client secret が含まれます。これを使用することで PaymentIntent オブジェクト全体を渡すことなく安全に支払いプロセスを完了できます。以降のステップで使用できるように、クライアントに client secret を送り返します。
カスタムの説明を含める
デフォルトでは、PayPal ユーザの購入アクティビティページの注文詳細には、注文金額が表示されます。description
プロパティでカスタムの説明を指定することで、これを変更することができます。
利用するロケールをカスタマイズする
デフォルトでは、PayPalのオーソリページは加盟店の国などの変数に基づいて各地域に適応されます。これを顧客の希望するロケールに設定するには、preferred_
プロパティを使用します。この値は、2文字の小文字の言語コードの後にハイフン (-
) を続け、その後に2文字の大文字の国コードを続ける必要があります。例えば、ベルギーのフランス語ユーザーに対する値は、fr-BE
となります。
preferred_locale プロパティを使用して、顧客の希望するロケールにPayPalオーソリページを設定できます。対応するロケールについては、次の表を参照してください:
値 | ロケール | 国 |
---|---|---|
cs-CZ | チェコ語 | チェコ共和国 |
da-DK | デンマーク語 | デンマーク |
de-AT | ドイツ語 | オーストリア |
de-DE | ドイツ語 | ドイツ |
de-LU | ドイツ語 | ルクセンブルク |
el-GR | ギリシャ語 | ギリシャ |
en-GB | 英語 | イギリス |
en-US | 英語 | アメリカ合衆国 |
es-ES | スペイン語 | スペイン |
fi-FI | フィンランド語 | フィンランド |
fr-BE | フランス語 | ベルギー |
fr-FR | フランス語 | フランス |
fr-LU | フランス語 | ルクセンブルク |
hu-HU | ハンガリー語 | ハンガリー |
it-IT | イタリア語 | イタリア |
nl-BE | オランダ語 | ベルギー |
nl-NL | オランダ語 | オランダ |
pl-PL | ポーランド語 | ポーランド |
pt-PT | ポルトガル語 | ポルトガル |
sk-SK | スロバキア語 | スロバキア |
sv-SE | スウェーデン語 | スウェーデン |
PayPal での明細書表記
買い手の銀行明細書に表示される表記は PayPal によって設定され、デフォルトでは PAYPAL *YOUR_
になります。PaymentIntent
の作成時に statement_
を設定した場合、合計 22 文字を上限として、その値が PayPal によって設定された値に付加されます。
たとえば、PayPal のビジネス名が BUSINESS
であり、statement_
に order_
を設定する場合、買い手の銀行口座明細書には PAYPAL *BUSINESS order
と表示されます。
クライアント側
クライアント側で、サーバーの PaymentIntent をリクエストし、その client secret を保存します。
Stripe に支払いを送信するクライアント側
顧客が支払いのために PayPal をタップしたら、PaymentIntent
を確定して支払いを完了します。PaymentIntent
client secret を使用して STPPaymentIntentParams
オブジェクトを構成します。
client secret は、Stripe API リクエストを認証する API キーとは異なります。これは支払いを完了できるため、慎重に扱う必要があります。記録したり、URL に埋め込んだり、当該の顧客以外に漏洩したりすることがないようにしてください。
戻り先 URL を設定する
iOS SDK では、PayPal 支払いを完了するための WebView がアプリに表示されます。認証が終了すると、顧客が閉じなくても、自動的に WebView が閉じられるようにすることができます。この動作を有効にするには、カスタム URL スキームまたはユニバーサルリンクを構成して、URL を SDK に転送するようにアプリのデリゲートを設定します。
PaymentIntent を確定する際に、return_
としてその URL を渡します。WebView での認証が終わると、Stripe はユーザをその return_
にリダイレクトします。
PayPal 支払いを確定する
STPPaymentHandler confirmPayment
を呼び出して支払いを完了します。これにより WebView が表示され、顧客はそこで PayPal で支払いを完了できます。完了後、支払いの結果とともに、完了ブロックが呼び出されます。
payment_method_details プロパティには、支払い者の氏名、メールアドレス、支払人 ID、取引 ID が含まれています。
フィールド | 値 |
---|---|
payer_ | PayPal アカウントの支払人のメールアドレス。 |
payer_ | PayPal アカウントの支払人の名前。 |
payer_ | 支払人の PayPal アカウントの一意の ID。 |
transaction_ | PayPal によって生成された一意の取引 ID。 |
{ "charges": { "data": [ { "payment_method_details": { "paypal": { "payer_id": "H54KFE9XXVVYJ", "payer_email": "jenny@example.com", "payer_name": "Jenny Rosen", "transaction_id": "89W40396MK104212M" }, "type": "paypal" }, "id": "src_16xhynE8WzK49JbAs9M21jaR", "object": "source", "amount": 1099, "client_secret": "src_client_secret_UfwvW2WHpZ0s3QEn9g5x7waU", "created": 1445277809, "currency": "eur", "flow": "redirect",
オプション支払い後のイベントを処理する
支払いが完了すると、Stripe は payment_intent.succeeded イベントを送信します。ダッシュボード、カスタム Webhook、またはパートナーソリューションを使用してこれらのイベントを受信し、また、顧客への注文確認メールの送信、データベースでの売上の記録、配送ワークフローの開始などのアクションを実行します。
クライアントからのコールバックを待つのではなく、これらのイベントをリッスンします。クライアント側では、コールバックが実行される前に顧客がブラウザーのウィンドウを閉じたり、アプリを終了したりする可能性があります。また、悪意を持つクライアントがレスポンスを不正操作する恐れもあります。非同期型のイベントをリッスンするよう構築済みのシステムを設定することで、これ以降はより多くの決済手段を簡単に受け付けられるようになります。サポートされているすべての決済手段の違いをご確認ください。
イベントを受信し、ビジネスアクションを実行する
ビジネスアクションを受信して実行するためのいくつかのオプションがあります。
手動
Stripe ダッシュボードは、すべての Stripe での支払いの確認、メール領収書の送信、入金処理、または失敗した支払いの再試行に使用できます。
カスタムコード
Webhook ハンドラを作成してイベントをリッスンし、非同期型のカスタムの支払いフローを作成します。Stripe CLI を使用して、ローカルで Webhook 組み込みのテストとデバッグを行います。
事前構築のアプリ
オートメーションやマーケティングとセールスなどの一般的なビジネスイベントを、パートナーアプリケーションとの連携によって処理します。