Payment Links を使用して iOS でデジタル商品の支払いを受け付ける
アプリから Stripe 上のオンライン決済ページにリンクして、デジタル商品やサブスクリプションを販売します。
アメリカまたは欧州経済領域 (EEA) で販売されるデジタル製品、コンテンツ、サブスクリプションの場合、iOS アプリでは Payment Links を使用して Apple Pay を受け付けることができます。
その他の地域では、デジタル製品、コンテンツ、またはサブスクリプションに対して App で Apple Pay を使用することはできません。
このガイドでは、Payment Links を使用してアプリ内でデジタル商品やサービスを販売し、顧客を Stripe がホストする決済ページにリダイレクトする方法について説明します。
Payment Links は、商品と価格が限定されており、サーバーを実行したくない場合に使用します。Stripe Checkout または Elements を使用して、より動的なカートを作成したり、Customer を Checkout Session に関連付けたりします。
このガイドでは、アプリ内デジタル商品を販売するプロセスのみを説明します。次のいずれかを販売する場合は、代わりに ネイティブ iOS 支払いガイド を使用してください。
- 物理的品目
- アプリ外での使用を目的とする商品やサービス
- リアルタイムの個人間サービス
作成する内容
このガイドでは以下の方法を説明します。
- 商品 と 価格を使用して、デジタル商品またはサブスクリプションをモデル化します。
- ダッシュボードから決済用リンクを作成します。
- ユニバーサルリンクを使用して 決済用リンクからアプリへと直接リダイレクトします。
- 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_(または locked_) と client_ を使用することをお勧めします。
| パラメータ | 説明 | 構文 |
|---|---|---|
|
|
URL パラメーターとして付与するメールアドレスは、決済ページに渡されないリスクを下げるために、エンコーディングすることをお勧めします。 |
|
|
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
オプションLemon Squeezy を使用したアプリ内購入
Lemon Squeezy で支払いを受け付けます。Lemon Squeezy は、お客様に代わって多くの業務タスク (税金計算や不審請求の申し立てなど) を処理するプラットフォームです。アプリ内購入のマーチャントオブレコードに Lemon Squeezy を使用する方法については、こちらの記事をご覧ください。