如何在商户发起交易(MIT)场景下通过Authorize.Net处理网络令牌化卡交易?
核心区别与前提
MIT(商户发起交易)与CIT(客户发起交易)的核心差异在于交易发起主体,MIT需满足两个关键前提:一是已获得客户预先书面/电子授权,允许商户主动发起扣款;二是需在API请求中明确标记交易类型为商户发起,符合PCI合规要求。
交易执行步骤
- 确认已留存客户的有效授权凭证,用于合规审计
- 使用已存储的网络令牌(而非原始卡号)发起交易请求
- 在请求中添加MIT专属标识参数
MIT场景扣款请求格式示例(JSON)
{ "createTransactionRequest": { "merchantAuthentication": { "name": "你的API登录ID", "transactionKey": "你的交易密钥" }, "transactionRequest": { "transactionType": "authCaptureTransaction", "amount": "15.99", "payment": { "opaqueData": { "dataDescriptor": "COMMON.ACCEPT.INAPP.PAYMENT", "dataValue": "你的网络令牌值" } }, "customer": { "id": "关联的客户ID" }, "transactionSettings": { "setting": [ { "settingName": "merchantInitiatedTransaction", "settingValue": "true" } ] }, "order": { "invoiceNumber": "INV-MIT-001" } } } }
关键参数说明
merchantInitiatedTransaction: 必须设为true,这是标记MIT交易的核心参数opaqueData:dataValue填入网络令牌,dataDescriptor需与令牌生成时的取值保持一致customer.id: 关联到已授权MIT交易的客户ID,便于交易追踪与合规校验- 交易类型: 可选
authCaptureTransaction(直接完成扣款)或authOnlyTransaction(先授权、后续再完成扣款)
注意事项
- 确保网络令牌未过期,且属于已授权该MIT交易的客户
- 妥善保存客户授权记录,避免合规风险
- 交易失败时可通过返回的
responseCode和errorText排查问题(如令牌无效、账户余额不足等)
内容的提问来源于stack exchange,提问作者JonathanT
相关产品推荐
相关产品推荐

