Payment Links を使用して iOS でデジタル商品の支払いを受け付ける
アプリから Stripe 上のオンライン決済ページにリンクして、デジタル商品やサブスクリプションを販売します。
一部の国では、外部のウェブサイトをリンクして、iOS で支払いを受け付けられます。このガイドでは、Stripe ダッシュボードでローコードの決済用リンクを作成し、そのリンクを使用してアプリから Stripe 上のオンライン決済ページに顧客をリダイレクトする方法をご紹介します。URL パラメーターを使用してリンクを動的に更新し、顧客のメールアドレスを事前入力したり、client_
を使用してユーザーのアプリ ID または一意の識別子を渡したりできます。
Payment Links は、サーバーを立ち上げる必要がないため、商品と価格が限られている場合に最適なオプションです。より動的なカートを提供したり、顧客をセッションに関連付けたりする場合は、代わりに Stripe Checkout を使用することをお勧めします。
注
このガイドでは、アプリ内のデジタル商品を販売するプロセスのみについて説明します。以下のいずれかを販売している場合は、代わりにネイティブ iOS の支払いガイドを使用してください。
- 物理的品目
- アプリ外での使用を目的とする商品やサービス
- 2 人の個人間の、対人リアルタイムサービス
作成する内容
このガイドでは以下の方法を説明します。
- 商品 と 価格を使用して、デジタル商品またはサブスクリプションをモデル化します。
- ダッシュボードから決済用リンクを作成します。
- ユニバーサルリンクを使用して 決済用リンクからアプリへと直接リダイレクトします。
- Webhook を監視して顧客のアプリ内サブスクリプションを更新します。
対象範囲外の内容
このガイドでは、既存のアプリ内購入システムと並行して決済用リンクを追加する方法を説明します。以下は対象範囲に含まれません。
- ユーザー認証。既存の認証プロバイダーがない場合には、Sign in with Apple (Apple でサインイン) や Firebase Authentication などのサードパーティプロバイダーを使用できます。
- ネイティブのアプリ内購入。StoreKit を使用してアプリ内購入を実装するには、Apple のアプリ内課金 ガイドをご覧ください。
ユニバーサルリンクを設定するクライアント側サーバー側
ユニバーサルリンクを使用すると、決済成功後に、決済用リンクをお使いのアプリにディープリンクできます。ユニバーサルリンクを設定するには、次の手順を行います。
- ドメインに
apple-app-site-association
ファイルを追加します。 - アプリに Associated Domains エンタイトルメントを追加します。
- Checkout リダイレクト URL のフォールバックページを追加します。
関連ドメインを定義する
.
でドメインにファイルを追加し、アプリで処理する URL を定義します。アプリ ID の前にチーム ID を付加します。チーム IDは、Apple Developer Portal のメンバーシップページにあります。
{ "applinks": { "apps": [], "details": [ { "appIDs": [ "A28BC3DEF9.com.example.MyApp1", "A28BC3DEF9.com.example.MyApp1-Debug" ], "components": [ { "/": "/checkout_redirect*", "comment": "Matches any URL whose path starts with /checkout_redirect" } ] } ] } }
警告
このファイルは、MIME タイプ application/json
で提供する必要があります。curl -I
を使用してコンテンツタイプを確認します。
curl -I https://example.com/.well-known/apple-app-site-association
詳細については、関連ドメインのサポートに関する Apple のページを参照してください。
アプリに Associated Domains エンタイトルメントを追加する
- アプリのターゲットの、Signing & Capabilities (署名とケイパビリティ) ウィンドウを開きます。
- + ケイパビリティ をクリックし、関連ドメイン を選択します。
applinks:example.
のエントリーを Associated Domains リストに追加します。com
ユニバーサルリンクの詳細については、Apple のユニバーサルリンクのドキュメントを参照してください。
iOS は、apple-app-site-association
ファイルで定義された URL へのリンクをインターセプトしますが、リダイレクトでアプリを開くことができないケースが発生することがあります。
商品またはサブスクリプションの決済用リンクを作成する
Payment Links は、カード支払いと Apple Pay にデフォルトで対応しています。ダッシュボードから追加の支払い方法を有効にできます。
URL パラメーターを使用して関連情報を添付する
URL パラメーターを使用すると、決済ページにその他の詳細情報を追加して、決済を効率化できます。URL パラメーターを使用して、決済ページの言語を変えたり、メールアドレスやプロモーションコードを事前入力したり、関連付けられたメタデータを添付して照合しやすくしたりできます。
prefilled_
と client_
の使用をお勧めします。決済が効率化され、照合が容易になります。
パラメータ | 説明 | 構文 |
---|---|---|
|
|
URL パラメーターとして付与するメールアドレスは、決済ページに渡されないリスクを下げるために、エンコーディングすることをお勧めします。 |
client_ | client_ を使用して、Checkout セッションに選択した一意の文字列を関連付けます。アプリ ID やカート ID (または同様のもの) を指定でき、内部システムでセッションを照合するために使用できます。この値は決済時に顧客には表示されませんが、支払いの完了後に checkout.session.completed Webhook で送信されます。 | client_ は、英数字、ダッシュ、アンダースコアで構成され、最大 200 文字の任意の値を指定できます。無効な値は通知なしに削除されますが、決済ページは引き続き正常に機能します。 |
以下は、prefilled_
と client_
が指定されたリンクの例です。
https://buy.
アプリにリンクを追加する
アプリに決済ボタンを追加します。このボタンは以下を行います。
- 決済用リンクに prefilled_email と client_reference_id を事前入力します。
- Stripe 上のオンライン決済ページを Safari で開きます。
注文のフルフィルメントを処理するサーバー側
購入が成功すると、Stripe は checkout.
Webhook を送信します。Webhook イベントのペイロードでは、checkout.
に client_
があり、これをビジネスロジックに使用できます。たとえば、支払いをシステム内の特定の注文や顧客に関連付けるなどのビジネスロジックが記述可能です。
実装内容をテストするには、ダッシュボードまたは Stripe CLI を使用してイベントをモニタリングします。本番環境では、Webhook エンドポイントを設定して適切なイベントタイプに登録します。STRIPE_
キーが不明な場合は、ダッシュボードで Webhook をクリックして表示します。
テスト
決済ボタンが機能することをテストするには、次の手順を実行します。
- 決済ボタンをクリックすると、Stripe Checkout 支払いフォームにリダイレクトされます。
- のテストカード番号、3 桁のセキュリティコード、将来の有効期限日、および任意の有効な郵便番号を入力します。
- 支払う をタップします。
checkout.
Webhook が起動し、Stripe が取引についてサーバーに通知します。リダイレクトによってアプリへと戻されます。session. completed