- 集成指南
- 支持的功能(付款方式)
- 持卡人在位付款
持卡人在位
持卡人在位付款 (CHP) 付款指使用销售点 (POS) 终端的交易。 终端可以通过以下方式读取卡数据:
- 掏取 EMV 卡
- 通过非接触式卡进行 NFC(近场通讯)
- 刷磁条卡
- 键入卡号
DirectAPI 版本 40 之前的版本提供上述所有支持。
CHP 付款由终端发起,然后作为 Verify、Authorize、Capture、Pay 或 Refund 交易发送到网关。 例如,由卡芯片离线授权的交易将只作为 Capture 发送,而需要发卡机构授权的交易将使用在线 Authorize 交易,然后使用 Capture 交易。
CHP 交易与很多其他网关功能交互。 您可以:
- 将卡令牌化,
- 使用与您的电子商务交易相同的集成或通过 UI 退款
- 统一电子商务和 CHP 报告
先决条件
Your payment service provider 和您的收单行必须为您启用持卡人在位交易。
用于 CHP 交易的通用字段
以下 API 字段与通过网关的所有持卡人在位集成相关。
transaction.source=CARD_PRESENT: 如果不提供此字段,将使用 your payment service provider 在收单行链接配置的默认交易来源。 [REST][NVP]- 卡号: 强制提供卡号,不过提供方式取决于卡读取方式,包括键盘输入、磁条或 EMV 芯片,您可以在以下位置提供:
- 键控交易的
sourceOfFunds.provided.card.number。 - 磁条交易的
sourceOfFunds.provided.card.track1和/或sourceOfFunds.provided.card.track2,或
标签 56 和标签 57 的 EMV 标签等效实体,这些标签分别在卡数据为磁条格式的非接触式交易的sourceOfFunds.provided.card.emvRequest中提供。 - 卡数据为 EMV 格式的 EMV 交易(接触式/非接触式)的
sourceOfFunds.provided.card.emvRequest中的标签 5A。 - 卡数据为 DUKPT 加密格式的 P2PE(点对点加密)交易的
sourceOfFunds.provided.card.p2pe.payload。
- 键控交易的
- 终端识别码: 强制提供终端识别码,不过提供方式取决于卡读取方式,包括键盘输入、磁条或 EMV 芯片,您可以在以下位置提供:
- 键控交易和磁条交易的
posTerminal.lane。 - 卡数据为 EMV 格式的 EMV 交易(接触式/非接触式)的
sourceOfFunds.provided.card.emvRequest中的标签 9F1C。
- 键控交易和磁条交易的
确保以下 POS 终端字段值根据终端生成交易的卡数据的方式正确设置。 如果存在这些字段的数据,应始终提供这些数据。 网关将根据需要将此数据传送到收单行。 如果收单行需要一个字段,但实际不存在,那么交易将失败。
posTerminal.addressposTerminal.attended: 如果您未提供此字段,网关将默认此值为UNKNOWN_OR_UNSPECIFIEDposTerminal.authorizationMethodposTerminal.cardHolderActivated: 如果您未提供此字段,网关将默认此值为NOT_CARDHOLDER_ACTIVATEDposTerminal.inputCapability: 此字段对于 EMV 交易是强制的。posTerminal.location: 此字段对于 EMV 交易是强制的。posTerminal.panEntryModeposTerminal.pinEntryCapabilityposTerminal.onlineReasonCode: 此字段对于所有在线交易的芯片和芯片回调交易(包括撤消)是强制的。posTerminal.serialNumberposTerminal.mobile.cardInputDevice: 此字段适用于能够接受点击屏幕或物理键盘来输入 PIN 的移动 POS (mPOS) 设备。 软件 PIN 应仅用于没有支持 PIN 输入的硬件键盘的设备。 有关 mPOS 集成的要求,请参见通过集成使用 mPOS。
处理 EMV 交易
如果卡数据是从卡芯片读取(仅限 EMV 卡),
- 应向终端请求这些 EMV 标签(网关支持的标签)。
- 在
sourceOfFunds.provided.card.emvRequest字段中作为 REST 协议的 JSON 对象,或 NVP 协议的字段集合提供返回的标签(如果您的终端不提供支持的所有 EMV 标签也没关系)。EMV 标签值必须准确设定为终端返回的格式 — 二进制值将以 hex 格式表示。 - 提供强制字段。
- 提供可选字段(如果需要)。
sourceOfFunds.provided.card.emvRequest [REST][NVP]
有些支持的 EMV 标签与核心付款概念对应,如主账号。 这些概念还显示为 API 请求字段,如 sourceOfFunds.provided.card.number。 这些对应的 API 请求字段的 API 参考文档在描述中显示其关系。 例如,sourceOfFunds.provided.card.number 的描述包含文本“此字段与 EMV 标签 5A 对应”。
如果您作为 EMV 标签提供数据,那么您不需要提供与 API 请求字段相同的数据。 网关使用 EMV 标签中提供的值填充对应的 API 请求字段(如果有),并在所有内部处理、收单行通知和交易响应中使用这些值。 例如,如果您发送具有值 -Lane_03’ 的 sourceOfFunds.provided.card.emvRequest.9F1C,那么具有值 -Lane_03’ 的 posTerminal.lane 将发送到收单行,并在交易响应中返回。
如果需要,您可以选择在交易请求中同时提供 EMV 标签和对应的 API 请求字段。 请参见高级用法: EMV 标签和 API 请求字段中的交易数据。
这里是一个独立过账交易的 REST 的示例 EMV 请求,在此交易中,授权在终端离线执行。
| URL | https://ap-gateway.mastercard.com/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{transactionid} |
| HTTP 方法 | PUT |
{
"apiOperation": "CAPTURE",
"transaction": {
"currency": "EUR",
"amount": "10.99",
"source": "CARD_PRESENT"
},
"sourceOfFunds": {
"type": "CARD",
"provided": {
"card": {
"number": "5457210089020012",
"expiry": {
"month": "1",
"year": "39"
},
"emvRequest": {
"82": "0000",
"95": "0000000000",
"9F02": "000000001099",
"9A": "161021",
"5F2A": "840",
"9F1A": "840",
"9F10": "06011103A000000A0100000000000BB0ABAD",
"9F34": "1E0300",
"9F36": "0002",
"9C": "00",
"9F26": "D1F722D47FCA8273",
"9F27": "40",
"9F37": "2A4E1690",
"9F33": "E0B8C8"
}
}
}
},
"posTerminal": {
"inputCapability": "CONTACTLESS_CHIP",
"panEntryMode": "CHIP",
"pinEntryCapability": "PIN_SUPPORTED",
"location": "MERCHANT_TERMINAL_ON_PREMISES",
"lane": "Lane_03",
"attended": "ATTENDED",
"serialNumber":"123456789",
"onlineReasonCode":"FORCED_BY_MERCHANT",
"cardPresenceCapability":"CARD_PRESENT",
"authorizationMethod":"OFFLINE",
"address":
{
"country":"IRL",
"city":"Dublin"
}
}
}
{
"gatewayEntryPoint": "WEB_SERVICES_API",
"merchant": "TESTSMOKE-RETAIL",
"order": {
"amount": 10.99,
"creationTime": "2017-06-06T09:42:54.280Z",
"currency": "EUR",
"id": "sa-dfc1b030-4520-48ec-a7e0-889999d7e4ab",
"status": "CAPTURED",
"totalAuthorizedAmount": 10.99,
"totalCapturedAmount": 10.99,
"totalRefundedAmount": 0
},
"posTerminal": {
"address": {
"city": "Dublin",
"country": "IRL"
},
"attended": "ATTENDED",
"authorizationMethod": "OFFLINE",
"cardPresenceCapability": "CARD_PRESENT",
"cardholderActivated": "NOT_CARDHOLDER_ACTIVATED",
"inputCapability": "CONTACTLESS_CHIP",
"lane": "Lane_03",
"location": "MERCHANT_TERMINAL_ON_PREMISES",
"onlineReasonCode": "FORCED_BY_MERCHANT",
"panEntryMode": "CHIP",
"pinEntryCapability": "PIN_SUPPORTED",
"serialNumber": "123456789"
},
"response": {
"gatewayCode": "APPROVED"
},
"result": "SUCCESS",
"sourceOfFunds": {
"provided": {
"card": {
"brand": "MASTERCARD",
"emvRequest": {
"82": "0000",
"95": "0000000000",
"5F2A": "840",
"9A": "161021",
"9C": "00",
"9F02": "000000001099",
"9F10": "06011103A000000A0100000000000BB0ABAD",
"9F1A": "840",
"9F26": "D1F722D47FCA8273",
"9F27": "40",
"9F33": "E0B8C8",
"9F34": "1E0300",
"9F36": "0002",
"9F37": "2A4E1690"
},
"emvResponse": {
"4D3E": "456",
"5A2F": "123"
},
"expiry": {
"month": "1",
"year": "39"
},
"fundingMethod": "DEBIT",
"issuer": "CAPITAL ONE BANK (CANADA BRANCH)",
"number": "545721xxxxxx0012",
"scheme": "MASTERCARD"
}
},
"type": "CARD"
},
"timeOfRecord": "2017-06-06T09:42:54.280Z",
"transaction": {
"acquirer": {
"batch": 1,
"id": "FOOBANK",
"merchantId": "11223344"
},
"amount": 10.99,
"currency": "EUR",
"frequency": "SINGLE",
"id": "1",
"receipt": "1706063974",
"source": "CARD_PRESENT",
"terminal": "0001",
"type": "CAPTURE"
},
"version": "43"
}
这里是一个网关支持的 EMV 标签的列表。 如果这些标签中有任何一个标签是终端返回的,应将其包含在 sourceOfFunds.provided.card.emvRequest 字段中。
EMV 标签 |
名称 |
强制 |
|---|---|---|
| 4F | 应用程序标识符 (AID) 名称 | - |
| 56 | 卡轨 1 | - |
| 57 | 卡轨 2 等效数据 | - |
| 5A | 应用程序 主账号 (PAN) |
- |
| 5F24 | 应用程序过期日期 | - |
| 5F25 | 应用程序生效日期 | - |
| 5F28 | 发卡机构国家/地区代码 | - |
| 5F2A | 交易货币代码 | - |
| 5F34 | 应用程序 主账号 (PAN) 序列号 |
- |
| 82 | 应用程序交换配置文件 (AIP) | 是 |
| 84 | 专门文件名称 | - |
| 87 | 应用程序优先级指示符 | - |
| 95 | 终端验证结果 (TVR) | 是 |
| 9A | 交易日期 | 是 |
| 9B | 交易状态信息 | - |
| 9C | 交易类型 | 是 |
| 9F02 | 授权金额 | 是 |
| 9F03 | 返现金额 | - |
| 9F06 | 应用程序标识符 (AID) - 终端 | - |
| 9F07 | 应用程序使用控制 | - |
| 9F08 | 应用程序版本号 - ICC | - |
| 9F09 | 应用程序版本号 - 终端 | - |
| 9F0D | 发卡机构操作代码 - 默认 | - |
| 9F0E | 发卡机构操作代码 - 拒绝 | - |
| 9F0F | 发卡机构操作代码 - 在线 | - |
| 9F10 | 发卡机构应用程序数据 (IAD) | 是 |
| 9F1A | 终端国家/地区代码 | 是 |
| 9F1C | 终端识别 | - |
| 9F1E | 接口设备 (IFD) 序列号 | - |
| 9F21 | 交易时间 | - |
| 9F26 | 应用程序密文 (AC) | 是 |
| 9F27 | 密文信息数据 (CID) | 是 |
| 9F33 | 终端功能 | - |
| 9F34 | 持卡人验证方法 (CVM) 结果 | 是 |
| 9F35 | 终端类型 | - |
| 9F36 | 应用程序交易计数器 | 是 |
| 9F37 | 不可预知数字 | 是 |
| 9F39 | 服务点 (POS) 进入模式 | - |
| 9F40 | 其他终端功能 | - |
| 9F41 | 交易序列计数器 | - |
| 9F49 | 动态数据身份验证数据对象列表 (DDOL) | - |
| 9F53 | 交易类别代码 | - |
| 9F5A | EMV(核心 3): 应用程序标识符(程序 ID) EMV(核心 4): 成员产品标识符 |
- |
| 9F5B | EMV(核心 3): 发卡机构脚本结果 EMV(核心 2): DSDOL EMV(核心 4): 产品成员编号 |
- |
| 9F66 | EMV(核心 2): PUNATC(Track2) EMV (核心 3): 终端交易限定符 (TTQ) |
- |
| 9F6E | 外形因素指标 | - |
| 9F7C | 客户专有数据 (CED) | - |
如果您在交易请求中同时提供 EMV 标签和对应的 API 请求字段,网关将使用对应的 API 请求字段中提供的值。 例如,如果您发送具有值 -Lane_03’ 的 sourceOfFunds.provided.card.emvRequest.9F1C 和具有值 -Lane_04’ 的 posTerminal.lane,那么具有值 -Lane_04’ 的 posTerminal.lane 将被发送到收单行,并在交易响应中返回。 如果您想要覆盖 EMV 标签并控制每个字段的值,这可能很有用。 请注意,此方法很少使用,因此,必须仅在集成需要时再作考虑。
支持的 EMV 标签和相应的 API 请求字段
此表列出了网关使用 EMV 标签中提供的值填充对应的 API 请求字段的 EMV 标签。
EMV 标签 |
EMV 标签名称 |
对应的 API 请求字段 |
|---|---|---|
| 56 | 卡轨 1 | sourceOfFunds.provided.card.track1 |
| 57 | 卡轨 2 等效数据 | sourceOfFunds.provided.card.track2 |
| 5A | 应用程序主账号 (PAN) | sourceOfFunds.provided.card.number |
| 5F24 | 应用程序过期日期 | sourceOfFunds.provided.card.expiry.year sourceOfFunds.provided.card.expiry.month |
| 5F34 | PAN 序列号 | sourceOfFunds.provided.card.sequenceNumber |
| 9C | 预付现金 | order.cashAdvance |
| 9F03 | 返现金额 | order.cashbackAmount |
| 9F1A | 终端国家/地区代码 | posTerminal.address.country |
| 9F1C | 终端识别 | posTerminal.lane |
| 9F1E | 接口设备序列号 | posTerminal.serialNumber |
| 9F33 | 终端功能 | posTerminal.inputCapability posTerminal.pinEntryCapability |
| 9F35 | 终端类型 | posTerminal.attended posTerminal.cardholderActivated |
网关在 Retrieve Order 和 Retrieve Transaction 响应中返回 sourceOfFunds.provided.card.emvResponse 字段。 此字段包含发卡机构生成的数据,卡/设备可使用此数据进行完成或拒绝交易的验证。 另外还可能包含发卡机构的其他 EMV 标签,包括请求返回的标签。
下表显示可能在在线 Authorization 响应中返回的一些 EMV 标签。
| EMV 标签 | 名称 |
|---|---|
| 8A | 授权响应代码 |
| 89 | 授权代码 |
| 91 | 发卡机构身份验证数据 |
| 71 | 发卡机构脚本模板 1 |
| 72 | 发卡机构脚本模板 2 |
请求中提供的 sourceOfFunds.provided.card.emvRequest 字段在响应中返回,响应中不包含确定为 PCI 敏感的 EMV 标签。
取消 EMV 交易时,您的收单行可能需要包含其他 EMV 数据元素。 例如,可能需要 EMV 标签 DF01(发卡机构脚本结果)。 请联系您的收单行了解具体要求。
处理磁条交易
如果卡轨数据从卡磁条读取,
- 在
sourceOfFunds.provided.card.track1字段中提供卡轨 1 数据,或在sourceOfFunds.provided.card.track2字段中提供卡轨 2 数据。 如果卡轨 1 和卡轨 2 在终端均可用,那么在交易请求中全部提供。 - 提供强制字段。
- 提供可选字段(如果需要)。
sourceOfFunds.provided.card.track1 [REST][NVP]
sourceOfFunds.provided.card.track2 [REST][NVP]
这里是使用磁条数据的在线授权交易的示例。
| URL | https://ap-gateway.mastercard.com/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{transactionid} |
| HTTP 方法 | PUT |
{
"apiOperation": "AUTHORIZE",
"order": {
"amount": 80,
"currency": "AUD"
},
"transaction": {
"source": "CARD_PRESENT",
"frequency": "SINGLE"
},
"sourceOfFunds": {
"type": "CARD",
"provided": {
"card": {
"number": "5457210089020012",
"sequenceNumber": "015",
"expiry": {
"year": "39",
"month": "01"
},
"track2": ";5123456789012346=17051019681143384001?",
"track1": "%B5123456789012346^MR JOHN R SMITH ^17051019681143300001 840 ?;"
}
}
},
"posTerminal": {
"lane": "AdamLane",
"panEntryMode": "SWIPE",
"pinEntryCapability": "PIN_NOT_SUPPORTED",
"attended": "UNATTENDED",
"cardholderActivated": "SELF_SERVICE_TERMINAL",
"inputCapability": "MAGNETIC_STRIPE",
"location": "MERCHANT_TERMINAL_OFF_PREMISES"
}
}
{
"authorizationResponse": {
"posData": "1605S0100130",
"transactionIdentifier": "AmexTidTest"
},
"gatewayEntryPoint": "WEB_SERVICES_API",
"merchant": "TESTSMOKE-RETAIL",
"order": {
"amount": 80,
"creationTime": "2017-05-31T07:49:46.351Z",
"currency": "AUD",
"id": "sa-e229682a-2163-47cf-b080-fb60dd148192",
"status": "AUTHORIZED",
"totalAuthorizedAmount": 80,
"totalCapturedAmount": 0,
"totalRefundedAmount": 0
},
"posTerminal": {
"attended": "UNATTENDED",
"cardholderActivated": "SELF_SERVICE_TERMINAL",
"inputCapability": "MAGNETIC_STRIPE",
"lane": "AdamLane",
"location": "MERCHANT_TERMINAL_OFF_PREMISES",
"panEntryMode": "SWIPE",
"pinEntryCapability": "PIN_NOT_SUPPORTED"
},
"response": {
"acquirerCode": "00",
"gatewayCode": "APPROVED"
},
"result": "SUCCESS",
"sourceOfFunds": {
"provided": {
"card": {
"brand": "MASTERCARD",
"expiry": {
"month": "1",
"year": "39"
},
"fundingMethod": "DEBIT",
"issuer": "CAPITAL ONE BANK (CANADA BRANCH)",
"number": "545721xxxxxx0012",
"scheme": "MASTERCARD",
"sequenceNumber": "015",
"trackDataProvided": true
}
},
"type": "CARD"
},
"timeOfRecord": "2017-05-31T07:49:46.351Z",
"transaction": {
"acquirer": {
"batch": 1,
"id": "SYSTEST_ACQ1",
"merchantId": "12345678"
},
"amount": 80,
"authorizationCode": "000001",
"currency": "AUD",
"frequency": "SINGLE",
"id": "1",
"receipt": "1705313",
"source": "CARD_PRESENT",
"terminal": "0006",
"type": "AUTHORIZATION"
},
"version": "43"
}
处理键控交易
如果在终端键盘手动输入卡号,
sourceOfFunds.provided.card.number[REST][NVP]
这里是使用手动键入卡号的在线授权交易的示例。
| URL | https://ap-gateway.mastercard.com/api/rest/version/72/merchant/{merchantId}/order/{orderid}/transaction/{transactionid} |
| HTTP 方法 | PUT |
{
"posTerminal": {
"serialNumber": "13130PP800781435",
"cardholderActivated": "NOT_CARDHOLDER_ACTIVATED",
"lane": "S2_Lane",
"panEntryMode": "KEYED",
"pinEntryCapability": "UNKNOWN",
"attended": "ATTENDED",
"inputCapability": "KEY_ENTRY",
"location": "MERCHANT_TERMINAL_ON_PREMISES"
},
"apiOperation": "AUTHORIZE",
"sourceOfFunds": {
"type": "CARD",
"provided": {
"card": {
"number": "5457210089020012",
"sequenceNumber": "000",
"expiry": {
"year": "39",
"month": "01"
}
}
}
},
"order": {
"amount": "100.00",
"currency": "EUR"
},
"transaction": {
"source": "CARD_PRESENT",
"frequency": "SINGLE"
}
}
{
"gatewayEntryPoint": "WEB_SERVICES_API",
"merchant": "TESTSMOKE-RETAIL",
"order": {
"amount": 100,
"creationTime": "2017-05-31T08:59:47.194Z",
"currency": "EUR",
"id": "sa-529e784a-e11d-474d-8012-c0790531bb0f",
"status": "AUTHORIZED",
"totalAuthorizedAmount": 100,
"totalCapturedAmount": 0,
"totalRefundedAmount": 0
},
"posTerminal": {
"attended": "ATTENDED",
"cardholderActivated": "NOT_CARDHOLDER_ACTIVATED",
"inputCapability": "KEY_ENTRY",
"lane": "S2_Lane",
"location": "MERCHANT_TERMINAL_ON_PREMISES",
"panEntryMode": "KEYED",
"pinEntryCapability": "UNKNOWN",
"serialNumber": "13130PP800781435"
},
"response": {
"gatewayCode": "APPROVED"
},
"result": "SUCCESS",
"sourceOfFunds": {
"provided": {
"card": {
"brand": "MASTERCARD",
"expiry": {
"month": "1",
"year": "39"
},
"fundingMethod": "DEBIT",
"issuer": "CAPITAL ONE BANK (CANADA BRANCH)",
"number": "545721xxxxxx0012",
"scheme": "MASTERCARD",
"sequenceNumber": "000"
}
},
"type": "CARD"
},
"timeOfRecord": "2017-05-31T08:59:47.194Z",
"transaction": {
"acquirer": {
"batch": 1,
"id": "FOOBANK",
"merchantId": "11223344"
},
"amount": 100,
"authorizationCode": "471223",
"currency": "EUR",
"frequency": "SINGLE",
"id": "1",
"receipt": "170531475",
"source": "CARD_PRESENT",
"terminal": "0001",
"type": "AUTHORIZATION"
},
"version": "43"
}
处理点对点加密 (P2PE) 交易
P2PE 是支付卡行业标准委员会制定的标准。 使用 P2PE,敏感的卡数据会在读取卡数据后在终端立即加密。 由于您不必处理敏感数据,因此这会最大化持卡人在位交易的安全性,并会减少您的 PCI 合规义务。
如何处理 P2PE 交易:
- 在以下字段中提供来自终端的 DUKPT P2PE 数据:
sourceOfFunds.provided.card.p2pe.keySerialNumber: 您必须提供终端提供的 DUKPT 密钥序列号。sourceOfFunds.provided.card.p2pe.payload: 如果提供此字段,则不强制提供sourceOfFunds.provided.card.number。 网关将从提供的支付数据中提取所有相关的卡详细信息。posTerminal.serialNumber:sourceOfFunds.provided.card.p2pe.cardBinsourceOfFunds.provided.card.p2pe.encryptionState: 如果您未提供此字段,网关将默认此值为VALIDsourceOfFunds.provided.card.p2pe.initializationVector: 如果终端未使用初始化向量来进行加密,可以忽略此字段。
- 提供强制字段。
- 提供可选字段(如果需要)。
下表汇总了 sourceOfFunds.provided.card.p2pe 参数组的字段约束。
| 如果字段 | 那么网关... | ||
|---|---|---|---|
sourceOfFunds.provided.card.p2pe. initializationVector |
sourceOfFunds.provided.card.p2pe. keySerialNumber |
sourceOfFunds.provided.card.p2pe. payload | |
| 已提供 | 已提供 | 未提供 | 拒绝交易请求。 |
| 已提供 | 已在解密前或解密后提供,但使用纯文本 | 已提供 | 返回错误并生成安全日志条目。 |
交易响应
sourceOfFunds.provided.card.encryption 字段在交易响应中返回 DUKPT(DirectAPI 43 及更高版本)以指示卡数据已加密。 sourceOfFunds.provided.card.p2pe 参数组中的字段不在响应中返回。
集成以使用在线 PIN
持卡人输入的在线 PIN 在 PIN 输入设备内在源头加密。 Mastercard Gateway 在 DirectAPI 45 及更高版本中支持 DUKPT (Derived Unique Key Per Transaction) 加密的在线 PIN 数据。
- 在以下字段中提供来自终端的 DUKPT 加密的 PIN 数据:
sourceOfFunds.provided.card.pin.payloadsourceOfFunds.provided.card.pin.keySerialNumberposTerminal.pinLengthCapabilitysourceOfFunds.provided.card.pin.encryptionState
- 提供强制字段。
- 提供可选字段(如果需要)。
通过集成使用 mPOS
从 API v56 开始,网关支持在移动 POS (mPOS) 设备上接受付款。 要启用此功能,在 Verify、Authorize、Capture、Pay 或 Refund 交易中提供以下内容:
posTerminal.cardholderActivated=MPOS_ACCEPTANCE_DEVICE- 在
posTerminal.mobile.cardInputDevice
中提供读卡器的值BUILT_IN: 只有内置非接触式读卡器的非专门设计的手机或平板电脑。 在这种情况下,posTerminal.pinEntryCapability 必须设置为 SOFTWARE_ONLINE_PIN_ONLY,否则网关将拒绝交易。INTEGRATED_DONGLE: 带有集成读卡器的专用移动终端。 在这种情况下,posTerminal.pinEntryCapability 必须设置为 PIN_SUPPORTED 或 OFFLINE_PIN_ONLY,否则网关将拒绝交易。SEPARATE_DONGLE: 带有单独读卡器的非专门设计的设备或专用移动终端。 在这种情况下,posTerminal.pinEntryCapability 必须设置为 PIN_SUPPORTED 或 OFFLINE_PIN_ONLY,否则网关将拒绝交易。
- 提供强制字段。
- 提供可选字段(如果需要)。
交易响应
如果付款人输入了无效的 PIN、超过了允许的 PIN 输入尝试次数,或在需要 PIN 来完成交易时跳过了 PIN 输入,PIN 身份验证可能失败。
在因 PIN 身份验证错误而导致授权失败的情况下,网关会返回特定的授权响应代码。 您可以在下一次交易中重新使用同一个订单 ID。
测试持卡人在位集成
您可以使用收单行专有的测试卡。