You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在独立Swift Framework中配置Apple Pay以支持同一应用双商户收款

Apple Pay Swift Framework多商户收款实现方案

你提到的要求宿主将你的merchant ID添加到其Apple Pay entitlements的思路是完全可行的,这也是目前iOS生态下Framework侧实现自有商户Apple Pay收款的唯一合规方案,同时天然支持同一应用内多个商户独立发起收款。

为什么不能给Framework单独配置Apple Pay能力

Apple Pay相关的权限是基于主应用的Entitlements文件签名生效的,Framework作为动态库/静态库本身无法携带独立的Entitlements配置,所有系统层面的Apple Pay权限校验只会读取主应用的权限列表,因此无法实现Framework独立绑定商户的能力,必须依赖宿主的权限配置。

具体落地步骤

  • 提前告知所有接入你的SDK的宿主应用,需要完成两个配置动作:
    1. 在苹果开发者后台对应App ID的Apple Pay配置项中,添加你的merchant ID到关联商户列表
    2. 在项目的Entitlements文件的com.apple.developer.in-app-payments数组中,新增你的merchant ID
  • 你在Framework内部发起支付时,直接创建PKPaymentRequest实例,将merchantIdentifier字段赋值为你的自有商户ID即可,发起流程和主应用本身的Apple Pay发起流程完全一致,两者互不干扰
  • 建议在Framework中增加前置校验逻辑,避免宿主未完成配置时发起支付导致崩溃:
    let canUseMyMerchant = PKPaymentAuthorizationViewController.canMakePayments(
        usingNetworks: [.visa, .masterCard, .amex], // 你支持的卡组织
        merchantIdentifier: "你的merchant ID"
    )
    
    若返回false可直接向宿主抛出明确的配置错误提示。

注意事项

  • 宿主仅需要在Entitlements中新增你的merchant ID即可,不需要额外接入你的商户的支付凭证、不需要处理你的收款回调,所有支付逻辑和后续的资金清算都可以完全封装在Framework内部,不会泄露商户敏感信息,也不会影响宿主本身的Apple Pay业务逻辑
  • 同一应用的Entitlements支持添加任意数量的merchant ID,多个商户发起的Apple Pay请求系统会自动区分,完全不会出现串单等问题

内容的提问来源于stack exchange,提问作者Isaaс Weisberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 05:27:04