PayPal による支払いを受け付ける
ヨーロッパの企業に広く普及しているデジタルウォレットである PayPal の決済を受け付ける方法をご紹介します。
Stripe を設定するサーバ側クライアント側
まず、Stripe アカウントが必要です。今すぐ登録してください。
サーバ側
この組み込みには、サーバ上に Stripe API と通信するエンドポイントが必要です。サーバから Stripe API にアクセスするには、Stripe の公式ライブラリを使用します。
クライアント側
Stripe Android SDK はオープンソースであり、詳細なドキュメントが提供されています。
To install the SDK, add stripe-android
to the dependencies
block of your app/build.gradle file:
注
SDK の最新リリースおよび過去バージョンの詳細については、GitHub の Releases ページをご覧ください。新しいリリースの公開時に通知を受け取るには、リポジトリのリリースを確認してください。
Stripe の公開可能キーを使用して SDK を設定し、 Application
サブクラスなどで、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 に支払いを送信するクライアント側
作成した SetupIntent から client secret を取得し、PaymentLauncher confirm を呼び出します。これにより、Webview が表示され、顧客は銀行のウェブサイトまたはアプリで設定を完了できます。完了後、支払い結果とともに、onPaymentResult
が呼び出されます。
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",