PayPal による支払いを受け付ける
ヨーロッパの企業に広く普及しているデジタルウォレットである PayPal の決済を受け付ける方法をご紹介します。
Stripe を設定するサーバ側クライアント側
まず、Stripe アカウントが必要です。今すぐ登録してください。
サーバ側
この組み込みには、サーバ上に Stripe API と通信するエンドポイントが必要です。サーバから Stripe API にアクセスするには、Stripe の公式ライブラリを使用します。
クライアント側
Stripe iOS SDK はオープンソースです。詳細なドキュメントが提供されており、iOS 13 以降をサポートするアプリと互換性があります。
注
For details on the latest SDK release and past versions, see the Releases page on GitHub. To receive notifications when a new release is published, watch releases for the repository.
アプリの起動時に 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
になります。詳細については、サポート対象のロケールをご覧ください。
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",