メインコンテンツへスキップ

Apple Pay [BETA]

Apple Payを有効化すると、お客様がApple Walletに登録されたクレジットカードまたはデビットカードを使用して購入できるようになります。このガイドでは、決済フローとサービスの実装手順について説明します。

対応地域

地域通貨返金可否最小APIバージョン
シンガポールSGD2017-11-02

有効化方法

Apple Payを有効化するには、support@omise.coにこの機能のリクエストメールを送信してください。

決済フロー

Apple Payはウェブサイトでの決済に対応しています。Apple Payでの決済を選択したお客様は、プラットフォームに埋め込まれたApple Payボタンをタップまたはクリックして取引を開始します。すでにApple Walletにカードを登録しているお客様は、希望するカードをすぐに選択できます。まだ登録していないお客様には、新しいカードを登録するオプションが表示されます。

お客様が希望するカードを選択して決済を確認すると、通常のクレジットカード決済フローと同様にカードに課金されます。Apple Pay取引には、アカウントの現在のカード処理設定が適用される場合があります。

重要

Apple Pay取引は非3Dセキュアでのみ処理されます。

デスクトップブラウザでの使用

Apple Pay決済を開始するには、お客様がウェブサイトのチェックアウト時にApple Payを希望する決済方法として選択します。次に、お客様がApple Walletに登録されている希望のクレジットカードまたはデビットカードを選択します。その後、決済内容を確認して承認します。確認後、Omiseは課金が完了したことを示すWebhookイベント(有効な場合)を送信します。

ガイドライン

ウェブサイトにApple Payを導入する前に、実装がApple Pay on the Webの利用許諾ガイドラインに従っていることを確認してください。

Apple Payデスクトップフロー

実装

Apple Payのマーケティングガイドラインに従って、ウェブサイトにApple Pay決済ボタンを追加してください。お客様がボタンをタップしてカードを選択すると、カード情報を含むApple Payトークンを受け取ります。このタイプのトークンをトークンAPIに送信して、課金APIで使用可能なカードトークンを取得します。

OmiseはApple Payトークンを機密カードデータと同様に扱います。そのため、PCI-DSSライセンスを持っていない場合は、サーバーで使用する前に、これらのトークンをカードトークンに変換する必要があります。詳細はカードの収集をご覧ください。

要約すると、Apple Payで課金を作成するには、以下のAPIリクエストを行います:

  1. ユーザーがApple Payボタンで決済を開始したときに、AppleからApple Payトークンを取得します。
  2. Omise.jsを使用して、Apple PayトークンからカードトークンをOmiseで作成します。
  3. ステップ2で取得したカードトークンを使用して課金を作成します。
  4. 課金完了のWebhookイベントを受信した後、課金を取得してステータスを確認します(オプションですが推奨)。

以下のシーケンス図は、カードトークンを取得する方法を示しています:

Apple Pay環境の設定

ウェブサイトまたはアプリケーションでApple Payをサポートするには、Apple PayのウェブおよびアプリAPIを使用する前に、いくつかのセットアップ手順を完了する必要があります。Omiseは以下のオプションを提供しています。

オプションサポート対象
1. OmiseのApple開発者アカウントを使用ウェブのみ

OmiseのApple開発者アカウントを使用

提供されるOmiseマーチャント識別子を使用して、Apple開発者アカウントを作成することなく、ウェブサイトでApple Payを有効化できます。この方法はウェブ統合のみをサポートしています。

以下の手順に従って、Apple PayマーチャントIDとマーチャントID証明書を取得し、Apple Payウェブ統合のためにドメインを検証します。

Apple PayマーチャントIDとAppleマーチャントID証明書の取得

OmiseダッシュボードからAppleマーチャントIDとAppleマーチャントID証明書を取得できます。

Omise証明書ダッシュボード

証明書の有効期限

マーチャントID証明書は、マーチャントIDに関連付けられたTLS(Transport Layer Security)証明書で、Apple Payサーバーとのセッションを認証するために使用されます。サービスの中断を防ぐため、現在の証明書の有効期限が切れる前に、ウェブサイトの詳細を使用して新しい証明書をダウンロードしてください。

Omiseでウェブドメインを検証

Apple Payボタンを表示するマーチャントドメインをOmiseに登録します。support@omise.coにメールを送信してドメイン関連付けファイルを受け取り、このファイルをウェブサイトのhttps://[DOMAIN_NAME]/.well-known/apple-developer-merchantid-domain-associationにホストしてください。その後、Omiseがドメインの検証を進めます。

ドメイン検証

Apple Payのドメイン検証については、Apple Pay - サーバーの設定を参照してください。ドメインは、プロキシやリダイレクトなしでAppleサーバーから直接アクセス可能である必要があります。すべてのトップレベルドメイン(例:omise.co)とサブドメイン(例:shop.omise.co)を個別に登録して検証してください。

SSL証明書を有効期限前に更新した場合、Appleはドメイン検証を自動的に維持します。ただし、証明書の有効期限が切れた場合は、Omiseでドメインを再検証する必要があります。

Apple Payトークンの取得

設定が完了したら、ウェブサイトにApple Payボタンを追加して、Apple Payトークンを受け取ることができます。

Apple Pay開発者ドキュメントに従って、Apple Payボタンをレンダリングし、Apple APIと統合して、Apple Payトークンを受け取ってください:

決済リクエストでは、以下のフィールドがこれらのガイドラインに従っていることを確認してください:

  • フィールドsupportedNetworksは、Capability APIからサポートされているカードブランドを反映する必要があります。
  • フィールドmerchantIdentifierは、Apple PayマーチャントIDです。

その後、Apple Payからトークンを受け取ります。Apple Payトークンは5分以内に使用する必要があります。

{
"data": "...",
"signature": "...",
"header": {
"publicKeyHash": "...",
"ephemeralPublicKey": "...",
"transactionId": "..."
},
"version": "EC_v1"
}

カードトークンの作成

Apple Payトークンを受け取ったら、以下のトークン化パラメータを使用してカードトークンを作成します。

名前タイプ説明
methodstring必須applepay文字列に設定します。
datastring必須)Apple Payトークン。
merchant_idstring必須)AppleマーチャントID。
brandstring必須)選択されたカードブランド。(ウェブ
billing_namestringオプション、推奨)カード所有者名。
billing_citystringオプション、推奨)請求先住所の市区町村。
billing_countrystringオプション、推奨)請求先住所の国を2文字のISO 3166コードで指定。
billing_postal_codestringオプション、推奨)請求先住所の郵便番号。
billing_statestringオプション、推奨)請求先住所の都道府県。
billing_street1stringオプション、推奨)請求先住所の番地1。
billing_street2stringオプション)請求先住所の番地2。
billing_phone_numberstringオプション)請求先住所の電話番号。
請求先情報

デフォルトでは、カード所有者の名前と請求先住所はカードトークンに添付されず、名前はApple Payとして表示されます。この動作を変更するには、Appleへの決済リクエスト時に請求先連絡先フィールド(ウェブ)を指定してください。

カードトークンは10分以内に課金の作成に使用できます。

Omise.jsの場合、createToken関数の最初の引数としてトークン入力タイプをtokenizationに設定し、2番目の引数としてトークン化パラメータを送信します。

Omise.setPublicKey("your_omise_public_key");

tokenParameters = {
method: 'applepay',
data: '{"data":"Ls06CdzKeOXc1AtBgszMr8JF+DbIOj4LyQcQbVnC+RjihUa+SPwRcIVLzUwaFpHlM4atA3Ls2BXA2mg97WIECfnssAYRGWRcjyKtUqEfNR+tT7ztRCYVGIL4hdNMqTNBk+xYPb6ztGIKzN5xPetcausII8oNnyRjC2vmLIlMojOFQUWdqJURrkyPkwpC7adx6EAXy4prId/ZhXBE10d0JZ0wInM1/Tg08rMsLQOob9qP+QrFmJ3Pc0QFDLT/kxuOz7xRYmv07tAd5QkTEQ4VvjxzPc80YcEYBti236m5NZ8x3iN+AD7ZmZ8vke/aGltywKaMrkVpVlmYdKd+eca6FjKMOvn80uXtRrnmO3Wu44b5OIQf/LODUFl4s0nWiho2xC8ZU9i3hSKUdQS9cJxjJJhAJhX3axM641Epf7F7jQ==","signature":"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","header":{"publicKeyHash":"vRQNoc2OWcP7vDrLcGZ8QMnUH784bNV+1mmh65Z/kx4=","ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7uNpkxQ6EFIKMQc/8o68mtrXACyiDGUPVYZUD7ZmtVTCoao41U0w12DdXnDb5HidaYbJzJtoFIr+3q6d4k/h3g==","transactionId":"ac06f094edb34a6fc568ed5847acca0076103f5fe49f5624f941dd420b574268"},"version":"EC_v1"}',
merchant_id: 'merchant.omise.sg.prod',
brand: 'Visa'
};

Omise.createToken('tokenization', tokenParameters, function(statusCode, response) {
console.log(response)
});

id属性はトークン識別子です(toknで始まります)。

課金の作成

受け取ったカードトークンでカードに課金するには、クレジットカード決済を参照してください。特定のトークン化方式(applepay)から生成されたカードトークンと通常のカードトークンには、いくつかの違いがあります:

  1. これらのカードトークンには、どのトークン化方式がカードに適用されたかを示すtokenization_methodフィールドがあります。
  2. これらのカードトークンは顧客APIで使用できません。

追加オプション

ビルド済み決済フォームを使用する場合、Apple Pay APIをより細かく制御するための追加設定オプションを設定できます。関連するパラメータは以下の通りです。

データ属性パラメータ説明
data-applepay-validation-urlapplepayValidationUrlサーバーを検証し、Apple Pay用のマーチャントセッションオブジェクトを取得するためのURL(本番トラフィックを受け入れる場合は必須)。
data-applepay-merchant-idapplepayMerchantIdApple PayのマーチャントID(本番トラフィックを受け入れる場合は必須)。
data-applepay-request-billing-addressapplepayRequestBillingAddressカード所有者の名前と請求先住所をカードトークンに添付するには、trueに設定します。これを指定すると、米国、英国、カナダのカード所有者の承認率が向上します。

サポートされているパラメータの完全なリストはこちらで確認できます。

マーチャント検証

チェックアウト時、ビルド済み決済フォームはdata-applepay-validation-url属性で指定された検証エンドポイントに自動的にPOSTリクエストを送信します。このリクエストには、onvalidatemerchantイベント中にAppleから提供されるvalidationURLが含まれます。

サーバーは、Appleマーチャント識別証明書を使用してAppleにマーチャントセッションオブジェクトをリクエストし、そのオブジェクトでレスポンスを返すことで、このリクエストを処理する必要があります。ビルド済みフォームは、completeMerchantValidation()メソッドを介してApple Payセッションを完了するために、このセッションオブジェクトを必要とします。

これを正しく実装するには、AppleのApple Pay決済セッションのリクエストガイドに従ってください。追加のコンテキストについては、マーチャント検証の提供を参照してください。

テスト

完全なユーザージャーニーを完了するには、Apple Walletをサポートするアカウントと課金可能なカードが必要です。テストモードでは、Appleサンドボックステスターアカウントを使用し、Appleが提供するテストカードのいずれかを添付することをお勧めします。

Omiseテストキーを使用してトークンと課金を作成し、成功した課金をシミュレートできます。カード番号はシステム内で常に4111 1111 1111 1111になります。OmiseテストキーでもApple Pay環境の設定プロセスが必要であることに注意してください。

FAQ

Apple Payとは何ですか?

Apple PayはAppleのデジタルウォレットおよびモバイル決済サービスで、お客様がiPhone、iPad、Apple Watch、またはMacを使用して安全に支払いを行うことができます。お客様はApple Walletに保存されたクレジットカードまたはデビットカードを使用し、Touch IDまたはFace ID認証で支払いができます。

Apple Payはどの地域でサポートされていますか?

OmiseでのApple Payは現在、シンガポールのみ(SGD通貨)で利用可能です。この機能はBETA版です。アカウントへのアクセスをリクエストするには、support@omise.coまでご連絡ください。

Apple開発者アカウントは必要ですか?

いいえ、ウェブ統合にはOmiseのApple開発者アカウントを使用できます。Omiseがマーチャント識別子を提供し、Apple Payの設定を処理します。ただし、より細かい制御が必要な場合は、独自のApple開発者アカウントを別途設定できます。

Apple Payは3Dセキュアに対応していますか?

いいえ、Apple Pay取引は3Dセキュアなしで処理されます。Apple Payはデバイス認証(Touch ID/Face ID)とトークン化により独自のセキュリティを提供しており、カードネットワークによって安全と見なされています。

Apple Payカードを定期支払い用に保存できますか?

いいえ、Apple Payから生成されたカードトークンは、Customers APIを使用して顧客に紐づけることができません。Apple Pay取引ごとにお客様が再度認証する必要があります。定期支払いの場合は、カード情報を直接収集することを検討してください。

取引限度額はいくらですか?

取引限度額は、加盟店アカウントの設定とお客様のカード発行会社によって異なります。Omiseが課すApple Pay固有の制限はありません。具体的な限度額についてはアカウントマネージャーにご確認ください。

Apple Pay決済を返金できますか?

はい、Apple Pay決済は通常のカード決済と同様に返金できます。全額返金と一部返金の両方がサポートされています。返金はApple Walletで使用された元のカードに処理されます。

Apple Payボタンが表示されないのはなぜですか?

Apple Payボタンは以下の条件を満たす場合にのみ表示されます:

  • お客様が互換性のあるAppleデバイスでSafariを使用している
  • お客様が少なくとも1枚のカードでApple Payを設定している
  • ドメインがAppleで検証されている
  • HTTPSを使用している

Apple Payの利用可能性に関する具体的なエラーについては、ブラウザコンソールを確認してください。

Apple Payをテストするにはどうすればよいですか?

Appleが提供するテストカードを使用したAppleサンドボックステスターアカウントを使用してください。Touch IDまたはFace IDを搭載した実際のAppleデバイス(iPhone、iPad、またはMac)が必要です。Omiseテストキーを使用したテストモードでも、Apple Pay環境の設定が必要です。

Apple PayとGoogle Payの違いは何ですか?

両方ともデジタルウォレット決済方法ですが、異なるエコシステムを対象としています:

  • Apple Pay:iOS/macOSユーザー向け(iPhone、iPad、Mac、Apple Watch)
  • Google Pay:Androidユーザーおよび任意のプラットフォームのChromeブラウザ向け

最大限の顧客カバレッジを得るには、両方の決済方法を実装してください。

関連リソース