axiom-payments について
axiom-paymentsは、Appleプラットフォームでの実店舗向け決済を扱う開発スキルです。Apple Pay、Wallet、Tap to Pay、購入後の注文追跡を案内し、物理的な商品の決済とデジタルコンテンツのアプリ内課金を区別します。
主な機能
- 01ネイティブアプリとWebのApple Payガイド
- 02Tap to Pay on iPhoneでの決済受付
- 03Walletパスの作成と署名
- 04Walletでの注文追跡と発行会社向け拡張
- 05決済問題と審査の診断
- 06Apple Payとアプリ内課金の使い分け
活用シーン
- 01物理的な商品やサービスへのApple Pay追加
- 02iPhoneでの非接触決済受付
- 03チケット、クーポン、ロイヤリティパスの作成
- 04Walletでの購入後の注文状況表示
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ charleswiltgen/ axiom --skill axiom-paymentsインストール後、Claude Code で/axiom-paymentsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
skills/apple-pay-ref.mdapple-pay-vs-iap.mdapple-pay-web-ref.mdapple-pay-web.mdapple-pay.mdpayments-diag.mdtap-to-pay-ref.mdtap-to-pay.mdwallet-extensions-ref.mdwallet-orders.mdwallet-passes-ref.mdwallet-passes.md詳細
実世界の決済(Apple Pay/Wallet/Tap to Pay)
実世界での決済(実物商品の販売、サービス、寄付、チケット販売、ロイヤルティカード、対面での非接触型カード決済、購入後の注文追跡)を受け付ける場合は、必ずこのスキルを使用してください。アプリ内課金やデジタルコンテンツには使用しないでください。
使用する場面
次のような場合に、このスキルを使用してください。
- iOS/iPadOS/macOS/Catalyst/visionOS/watchOS アプリに Apple Pay を追加する
- ウェブサイトに Apple Pay(Apple Pay JS または W3C Payment Request API)を追加する
- Wallet パス(搭乗券、イベントチケット、クーポン、ロイヤルティカード、ストアカード)を作成する
- iPhone で非接触型カード決済を受け付ける(Tap to Pay on iPhone/ProximityReader)
- 購入後の注文追跡を Wallet に表示する(Orders in Wallet、FinanceKitUI の注文追加ヘルパー)
- 発行会社または銀行のカードを Wallet にプロビジョニングする(発行会社拡張機能)
- Apple Pay の加盟店 ID、決済処理証明書、または加盟店 ID 証明書を設定する
- Pass Type ID または Order Type ID の証明書と PKCS #7 署名チェーンを扱う
- Tap to Pay の管理対象エンタイトルメント(
com.apple.developer.proximity-reader.payment.acceptance)を扱う - 決済、IAP、Apple Pay、Wallet、または Acceptable Use Guidelines に関する App Review の却下に対応する
- ウェブ上の Apple Pay のドメインを検証する(
.well-known/apple-developer-merchantid-domain-association.txt) - Apple Pay のサンドボックスカードまたはサンドボックステスターアカウントを使ってテストする
使用しない場面
| 問題 | 適切なスキル | axiom-payments を使用しない理由 |
|---|---|---|
| デジタルコンテンツのアプリ内課金、サブスクリプション | axiom-integration | StoreKit 2/デジタル商品の境界に関する内容です。axiom-integration (skills/in-app-purchases.md) を参照してください |
| 汎用 NFC タグの読み取り(Core NFC、Wallet 以外) | axiom-integration | 別のフレームワークです。PassKit の NFC は Wallet 固有です |
| コード署名/プロビジョニングの基礎 | axiom-security | コード署名は汎用的な内容です。決済証明書はそのフローに追加されます |
| App Store の却下対応ワークフローと異議申し立て | axiom-shipping | 却下対応のワークフローはそちらにあります。決済固有の却下パターンは、そちらからここに案内されます |
| HIG の横断的なデザインガイダンス | axiom-design | Apple Pay/Wallet の HIG 固有の内容はこちらにありますが、デザインの概要は axiom-design にあります |
| 消費者向けバンキング機能(FinanceKit) | 対象外 | このスイートでは、FinanceKitUI を Orders のみに使用します。口座集約/取引照会は対象外です。 |
| PKSecureElementPass、交通系カード、車のキー | 対象外 | 発行会社が管理するものであり、加盟店の開発者には関係ありません |
クイックリファレンス
| 症状/タスク | 参照先 |
|---|---|
| Apple Pay と IAP のどちらを使うべきですか? | skills/apple-pay-vs-iap.md を参照してください |
| 実物の商品、サービス、寄付の販売 | skills/apple-pay-vs-iap.md を参照してください |
| 実物の商品に IAP を使ったため、アプリがリジェクトされた | skills/apple-pay-vs-iap.md を参照してください |
| ネイティブ Apple Pay(iOS / iPadOS / macOS / Catalyst / visionOS / watchOS) | skills/apple-pay.md を参照してください |
| PassKit / PKPaymentRequest API の概要 | skills/apple-pay-ref.md を参照してください |
| ウェブでの Apple Pay(Apple Pay JS または Payment Request API) | skills/apple-pay-web.md を参照してください |
| Web ApplePaySession / Payment Request API の概要 | skills/apple-pay-web-ref.md を参照してください |
| ドメイン認証、加盟店 ID 証明書、サードパーティ製ブラウザーのサポート | skills/apple-pay-web.md を参照してください |
| iPhone の Tap to Pay(ProximityReader) | skills/tap-to-pay.md を参照してください |
| ProximityReader / PaymentCardReader API の概要 | skills/tap-to-pay-ref.md を参照してください |
| Tap to Pay のエンタイトルメントが「Submitted」のまま進まない | skills/tap-to-pay.md を参照してください |
| Wallet パス(搭乗券、イベントチケット、クーポン、ロイヤルティカード、ストアカード) | skills/wallet-passes.md を参照してください |
| pass.json スキーマ、セマンティックタグ、バーコード、NFC ペイロード | skills/wallet-passes-ref.md を参照してください |
ポスターの汎用スタイル、注目アクション、新しいバーコードタイプ OS27 | skills/wallet-passes-ref.md を参照してください |
| Pass Designer アプリ、Pass Builder サーバーパッケージ | skills/wallet-passes-ref.md を参照してください |
ペアリングされたデバイスでの顧客エンゲージメント(CustomerEngagementSession) OS27 | skills/tap-to-pay-ref.md を参照してください |
| パスの署名、マニフェストのハッシュ化、PKCS #7 | skills/wallet-passes.md を参照してください |
| パスの更新が届かない(ウェブサービス/APNs) | skills/wallet-passes.md を参照してください |
| Wallet の注文、署名付き注文パッケージ、フルフィルメントのステータス | skills/wallet-orders.md を参照してください |
| 発行元/銀行カードのプロビジョニング拡張機能 | skills/wallet-extensions-ref.md を参照してください |
| 「支払いシートが表示されない」/加盟店の検証で 503 が返る/パスを読み込めない | skills/payments-diag.md を参照してください |
| サンドボックステストの失敗、本番環境とサンドボックス環境の証明書の不一致 | skills/payments-diag.md を参照してください |
| Apple Pay ボタンと Apple Pay マークの混同 | skills/apple-pay.md を参照してください |
| Apple Pay/Wallet/Tap to Pay に関する App Review のリジェクト | skills/payments-diag.md を参照してください |
判断ツリー
digraph payments {
"Payments question?" [shape=diamond];
"Apple Pay or IAP?" [shape=diamond];
"Where is the surface?" [shape=diamond];
"What kind of pass?" [shape=diamond];
"Something not working?" [shape=diamond];
"skills/apple-pay-vs-iap.md" [shape=box];
"skills/apple-pay.md" [shape=box];
"skills/apple-pay-web.md" [shape=box];
"skills/tap-to-pay.md" [shape=box];
"skills/wallet-passes.md" [shape=box];
"skills/wallet-orders.md" [shape=box];
"skills/wallet-extensions-ref.md" [shape=box];
"skills/payments-diag.md" [shape=box];
"axiom-integration\n/in-app-purchases.md" [shape=box];
"Payments question?" -> "Apple Pay or IAP?";
"Apple Pay or IAP?" -> "skills/apple-pay-vs-iap.md" [label="boundary unclear"];
"Apple Pay or IAP?" -> "axiom-integration\n/in-app-purchases.md" [label="digital content /\nsubscription for digital"];
"Apple Pay or IAP?" -> "Where is the surface?" [label="real-world payment"];
"Where is the surface?" -> "skills/apple-pay.md" [label="native app"];
"Where is the surface?" -> "skills/apple-pay-web.md" [label="website"];
"Where is the surface?" -> "skills/tap-to-pay.md" [label="contactless on iPhone"];
"Where is the surface?" -> "What kind of pass?" [label="pass / order"];
"Where is the surface?" -> "skills/wallet-extensions-ref.md" [label="card provisioning\n(issuer / bank)"];
"What kind of pass?" -> "skills/wallet-passes.md" [label="boarding / ticket /\ncoupon / loyalty"];
"What kind of pass?" -> "skills/wallet-orders.md" [label="post-purchase\norder tracking"];
"Payments question?" -> "Something not working?";
"Something not working?" -> "skills/payments-diag.md" [label="yes"];
}
簡易的な案内:
- デジタル商品またはデジタルコンテンツのサブスクリプションですか? → 代わりに
axiom-integration/skills/in-app-purchases.mdを使用してください。 - 実物の商品/サービス/寄付を販売する場合、または判断に迷う場合 →
skills/apple-pay-vs-iap.md - ネイティブ Apple Pay(iOS / iPadOS / macOS / Catalyst / visionOS / watchOS)ですか? →
skills/apple-pay.md+skills/apple-pay-ref.md - ウェブでの Apple Pay ですか? →
skills/apple-pay-web.md+skills/apple-pay-web-ref.md - iPhone の Tap to Pay(ProximityReader)ですか? →
skills/tap-to-pay.md+skills/tap-to-pay-ref.md - Wallet パス(チケット/クーポン/ロイヤルティカード/ストアカード)ですか? →
skills/wallet-passes.md+skills/wallet-passes-ref.md - Wallet の注文(購入後の追跡)ですか? →
skills/wallet-orders.md - 発行元/銀行カードのプロビジョニングですか? →
skills/wallet-extensions-ref.md - 何かが動作しませんか(シートが表示されない/加盟店の検証に失敗する/パスを読み込めない/Tap to Pay が有効にならない)? →
skills/payments-diag.md
スイート間のルーティング
Apple Pay と IAP の境界(スイート間で最もよくある質問):
- 物理的な商品、サービス、寄付の販売 → ここを利用します(
skills/apple-pay-vs-iap.md) - デジタルコンテンツ、アプリのプレミアム機能、デジタルコンテンツのサブスクリプションの販売 → axiom-integration を利用します(
skills/in-app-purchases.md) - 誤った方法を使用したためアプリが却下された場合 →
skills/apple-pay-vs-iap.md、次にskills/payments-diag.md
決済と App Review による却下:
- 却下理由に Section 3.1/3.2/Apple Pay AUG が記載されている → 根本原因の特定には ここを利用します(
skills/payments-diag.md)。申し立てのワークフローには axiom-shipping も呼び出します(skills/app-store-diag.md)
決済と証明書管理:
- Merchant Identity Certificate、Pass Type ID Certificate、Order Type ID Certificate、Payment Processing Certificate の運用上の管理 → ここを利用します
- 一般的な Keychain の書き出し/
.p12の仕組み → axiom-security も呼び出します(skills/keychain-ref.md) - Tap to Pay の管理対象エンタイトルメント → ここを利用します(
skills/tap-to-pay.md)。一般的な管理対象機能の考え方 → axiom-security(skills/code-signing.md)
決済と Xcode の機能/プロビジョニング:
- Xcode の Apple Pay 機能チェックボックス、Merchant ID の選択、プロビジョニングプロファイルにおける Tap to Pay エンタイトルメントの設定 → 機能/プロファイルの仕組みについて axiom-build も呼び出します。決済固有のガイダンスはここで扱います
決済と HIG:
- Apple Pay ボタンと Apple Pay Mark の使い分け、Wallet パスのデザイン仕様、Tap to Pay ボタンのラベル → ここを利用します
- 分野横断的なデザインの背景情報 → axiom-design も呼び出します(
skills/hig.md)
決済と Catalyst/macOS:
- Mac と Catalyst での Apple Pay(ウインドウの要件、Web セキュリティモデル、静的な Merchant Validation URL) → ここを利用します(
skills/apple-pay.mdの Catalyst セクション) - 一般的な Catalyst のパターン → axiom-macos
決済と Apple Watch:
- WKInterfacePaymentButton、watchOS の決済デリゲートフロー → ここを利用します(
skills/apple-pay-ref.mdの watchOS セクション) - 一般的な watchOS のパターン → axiom-watchos
合理化を防ぐ
| 考え | 実態 |
|---|---|
| 「物理的な商品を販売していますが、IAPを使います。統合が簡単なので」 | App Reviewで確実に却下されます(セクション3.1.1/3.1.3(e))。物理的な商品、サービス、寄付にはApple Payを使用してください。 |
| 「アプリはデジタルコンテンツを扱いますが、IAPの手数料が高いのでApple Payを使います」 | App Reviewで確実に却下されます。デジタルコンテンツとデジタルコンテンツのサブスクリプションには、IAPを使用する必要があります。 |
| 「ウェブ上にPSPのカード入力フォームをそのまま埋め込めば、より早く対応できます」 | Acceptable Use Guidelinesのパリティルールに違反します。ウェブ上で他の支払い方法を受け付ける場合は、少なくとも同等に目立つ形でApple Payも提供する必要があります。 |
| 「Tap to Payは、ほかの機能と同じように機能チェックボックスをオンにするだけです」 | Tap to Payでは、別のフォームから申請する管理対象のエンタイトルメントを使用します。Xcodeの機能追加フローは適用されません。2段階の申請(開発用→配布用)があり、却下や「Submitted」のまま進まない状態になると、申請のたびに1~4週間余計にかかります。 |
| 「パスの署名は自分たちで実装します。zipして署名するだけです」 | PKCS #7の分離署名、マニフェストのハッシュ化、WWDR中間証明書、S/MIME署名時刻、PEM/DER形式の落とし穴があり、署名の失敗の多くは一から独自実装した場合に発生します。サーバーライブラリを使用してください。 |
| 「Apple Pay Markはただのボタン画像です」 | Markは「Apple Pay利用可能」を示す表示であり、タップできるものではありません。ButtonはAPIから提供され、支払いを開始します。Markをボタンとして使用することはHIG違反であり、コンバージョンを損なう原因として知られています。 |
| 「本番カードもサンドボックスカードと同じように使えます」 | サンドボックス取引は、設計上、商品やサービスの提供前に拒否されます。本番取引には本番用キーと有効化済みの証明書が必要です。リリース前に、実際のデバイスと実際のカードでテストしてください。 |
| 「Apple Payの加盟店IDは毎年期限切れになります」 | 加盟店IDに有効期限はありません。支払い処理証明書の有効期間は25か月です。これらは別のものです。 |
| 「ブラウザーから加盟店の検証を呼び出せます」 | ブラウザーからpaymentSessionを呼び出してはいけません。加盟店識別証明書を使用し、相互TLSでサーバーからのみ呼び出してください。ブラウザーから呼び出すと、証明書が漏えいします。 |
| 「FinanceKitを使えば、アプリからユーザーの銀行取引を確認できます」 | このスイートの対象外です。FinanceKitの一般消費者向けバンキング機能は扱いません。注文追加用のヘルパーにのみFinanceKitUIを使用します。 |
対象外
このスイートでは、意図的に以下を対象外としています。
- アプリ内購入(StoreKit 2) —
axiom-integration/skills/in-app-purchases.mdとaxiom-integration/skills/storekit-ref.mdを使用してください。境界ルールはskills/apple-pay-vs-iap.mdに記載されています。 - FinanceKitの一般消費者向けバンキング(口座の集約、取引の照会) — 対象外です。注文追加ボタンにのみFinanceKitUIを使用します。
- PKSecureElementPass、交通系カード、車のキー — 発行元が管理するWallet機能であり、加盟店開発者の担当範囲ではありません。
- Tap to Present ID(
MobileDocumentReader) — ProximityReaderを使用しますが、支払いではなく本人確認用です。skills/tap-to-pay-ref.mdに簡単な相互参照があります。本人確認のUX全般は、該当する場合、axiom-integrationの担当範囲です。 - 汎用的なNFC読み取り(Core NFC) — 別のフレームワークです。PassKit NFCはWallet専用(ロイヤルティ/非接触チケット/搭乗券)です。
使用例
ユーザー:「ホテル予約アプリでは、Apple PayとIAPのどちらを使うべきですか?」
→ skills/apple-pay-vs-iap.md を参照してください
ユーザー:「iOSアプリでApple Payを設定するにはどうすればよいですか?」
→ skills/apple-pay.md を参照してください
ユーザー:「PKPaymentRequestの構造はどうなっていますか?」
→ skills/apple-pay-ref.md を参照してください
ユーザー:「ウェブサイトのApple PayボタンがChromeに表示されません」
→ skills/apple-pay-web.md を参照してください
ユーザー:「ドメインの検証に何度も失敗します」
→ skills/payments-diag.md を参照してください
ユーザー:「POSアプリにiPhoneのTap to Payを追加したいです」
→ skills/tap-to-pay.md を参照してください
ユーザー:「Tap to Payの権限が2週間もSubmittedのままです」
→ skills/tap-to-pay.md と skills/payments-diag.md を参照してください
ユーザー:「イベントチケット用のWalletパスを作成するにはどうすればよいですか?」
→ skills/wallet-passes.md を参照してください
ユーザー:「.pkpassファイルを読み込めません。Walletで無効だと表示されます」
→ skills/payments-diag.md を参照してください
ユーザー:「Apple Payでのチェックアウト後に、注文追跡情報をWalletに表示したいです」
→ skills/wallet-orders.md を参照してください
ユーザー:「レストランの配達にIAPを使用したため、App Reviewでアプリが却下されました」
→ skills/apple-pay-vs-iap.md を参照してから、skills/payments-diag.md を参照してください
ユーザー:「Apple PayとIn-App Purchaseの違いは何ですか?」
→ skills/apple-pay-vs-iap.md を参照してください
ユーザー:「銀行のiOSアプリでカードのプロビジョニングを実装しています」
→ skills/wallet-extensions-ref.md を参照してください
リソース
WWDC:2020-10662、2021-10092、2022-10041、2023-10114、2024-10108
Tech Talks:111381(ウェブ上のApple Pay)、110336(Apple Payの注文の実装)
MIG:Apple Pay Merchant Integration Guide(2026年版)— このスイート全体で参照される運用の中核資料
ドキュメント:/passkit、/applepayontheweb、/proximityreader、/walletpasses、/design/human-interface-guidelines/apple-pay、/design/human-interface-guidelines/wallet、/apple-pay/acceptable-use-guidelines-for-websites
App Review:Section 3.1(In-App Purchase)、Section 3.1.3(e)(アプリ外で提供される商品とサービス)、Section 3.2(その他のビジネスモデルに関する問題)、Section 4.9(Apple Pay)
スキル:axiom-integration(in-app-purchases、storekit-ref)、axiom-shipping(app-store-diag、app-review-guidelines)、axiom-security(keychain-ref、code-signing)、axiom-design(hig、hig-ref)、axiom-macos