Apple Pay与MPGS的Recurring/MIT支付集成技术问询
Apple Pay + MPGS 循环支付(MIT)集成解决方案
一、PKRecurringPaymentRequest生成的PaymentToken处理方式
- 单次支付用的
sourceOfFunds.provided.card.devicePayment.paymentToken字段不适用循环支付场景,MPGS要求将PKRecurringPaymentRequest生成的paymentToken解析后,把对应数据传入sourceOfFunds.provided.card.onFile字段组:- 解密Apple返回的paymentToken,提取
merchantTokenIdentifier和paymentData中的加密交易密码(cryptogram)。 - 构造MPGS交易请求的核心参数:
"sourceOfFunds": { "provided": { "card": { "onFile": { "token": "【解码得到的merchantTokenIdentifier】", "tokenType": "APPLE_PAY_MERCHANT_TOKEN", "cryptogram": "【解密后的交易密码】" } } } }, "transactionType": "RECURRING", "recurring": { "type": "CUSTOMER_INITIATED", "initialTransaction": true }
- 解密Apple返回的paymentToken,提取
二、CIT交易后获取MIT有效参考的方法
- 首次客户发起的循环授权(CIT)完成后,MPGS的响应会返回
sourceOfFunds.provided.card.onFile.token,这个就是后续商户发起交易(MIT)必须复用的有效令牌,而非你自己解码的merchantTokenIdentifier。 - 注意:首次CIT请求必须标记
transactionType为RECURRING,同时在recurring字段中声明initialTransaction: true,否则MPGS不会生成可复用的onFile令牌。 - 后续MIT交易时,直接使用存储的这个令牌,请求参数示例:
"sourceOfFunds": { "provided": { "card": { "onFile": { "token": "【CIT响应中获取的onFile令牌】", "tokenType": "APPLE_PAY_MERCHANT_TOKEN" } } } }, "transactionType": "RECURRING", "recurring": { "type": "MERCHANT_INITIATED", "frequency": "MONTHLY" // 根据你的业务场景调整 }
三、merchantTokenIdentifier的使用说明
- 从Apple Pay token解码出的
merchantTokenIdentifier仅用于首次CIT交易的令牌提交,不能直接用于后续MIT交易。必须通过首次CIT让MPGS完成Apple令牌与平台内部令牌的绑定,后续MIT只能使用MPGS返回的onFile令牌。 - MPGS确实没有像Stripe、Braintree那样提供直接的钱包令牌存储能力,所有循环支付的令牌都需要通过首次授权交易生成并自行存储。
内容的提问来源于stack exchange,提问作者PixelSheep
相关产品推荐
相关产品推荐

