Network Token
一、概述
本指南面向开发者,详细说明如何通过 Evonet API 获取 Network Token 并使用其发起支付交易。Network Token 由卡组织签发,可替代真实卡号(PAN)进行交易,提升支付成功率并增强卡信息安全性。
| 步骤 | 接口 | 操作说明 |
|---|---|---|
| 1 | paymentMethod | 传入持卡人真实卡号,获取 Network Token 及 tokenID |
| 2 | cryptogram | 使用 tokenID 获取一次性密文(tokenCryptogram)和最新有效期 |
| 3 | payment | 使用 Network Token 信息 + Cryptogram 发起支付 |
二、获取 Network Token
通过 POST paymentMethod 接口,传入持卡人真实卡信息,生成 Network Token。
接口地址
POST {apiurl}/g2/v1/payment/mer/{sid}/evo.e-commerce.paymentMethod
请求示例
{
"networkTokenOnly": true,
"allowAuthentication": false,
"paymentMethod": {
"type": "card",
"card": {
"cardInfo": {
"cardNumber": "4835830052621912",
"expiryDate": "1231",
"cvc": "390"
}
}
},
"merchantTransInfo": {
"merchantTransID": "your_unique_trans_id",
"merchantTransTime": "2026-08-18T11:26:47+08:00"
},
"transAmount": {
"currency": "USD",
"value": "1"
},
"userInfo": {
"reference": "fill in buyer id in your system",
"email": "[email protected]"
},
"returnURL": "https://YOUR_COMPANY.com/RETURNURL",
"webhook": "https://webhook.merchant.com"
...
}请求关键字段说明
| 字段 | 说明 | 注意事项 |
|---|---|---|
| networkTokenOnly | 是否仅获取 Network Token | 设为 true,表示本次请求仅用于生成 Token,不发起实际交易 |
| paymentMethod.recurringProcessingModel | 代扣模式 | 可选值:Subscription(订阅)、Unscheduled(代扣)、COF(一键支付) |
| paymentMethod.card.cardInfo | 持卡人真实卡信息 | 包含卡号、有效期、CVC |
| merchantTransInfo.merchantTransID | 商户交易 ID | 需唯一,用于标识本次请求 |
| transAmount | 交易金额 | 用于验证,实际不扣款 |
| userInfo.reference | 用户唯一标识 | 建议使用商户系统中的用户 ID,便于后续关联 |
响应示例
{
...
"paymentMethod": {
"networkToken": {
"expiryDate": "1231",
"paymentBrand": "Visa",
"status": "enabled",
"tokenID": "9fd96089049f2ed18b7a1331cc5f2c01",
"tokenReferenceID": "DNITHE302619027557956444",
"value": "4851681440000007"
},
...
"status": "Success"
},
"result": {
"code": "S0000",
"message": "Success"
}
}响应关键字段
| 字段 | 说明 | 用途 |
|---|---|---|
| networkToken.tokenID | Network Token 唯一标识 | 需持久化保存,后续获取 Cryptogram 和发起支付均需使用 |
| networkToken.value | Network Token 卡号(DPAN) | 卡组织签发的虚拟卡号 |
| networkToken.expiryDate | Token 有效期 | 格式 MMYY |
| networkToken.status | Token 状态 | enabled 表示可正常使用 |
| networkToken.paymentBrand | 卡组织品牌 | 如 Visa、Mastercard |
| networkToken.tokenReferenceID | 卡组织侧的 Token 参考 ID | 供排查问题使用 |
| networkToken.paymentAccountReference | 支付账户参考号 | 用于识别同一持卡人的不同 Token |
二、获取 Token Cryptogram
每次使用 Network Token 发起交易前,需调用 cryptogram 接口获取一次性交易密文(tokenCryptogram)。Cryptogram 由卡组织动态生成,用于验证交易的合法性。
接口地址
POST {apiurl}/g2/v1/payment/mer/{sid}/cryptogram
相关参数请参考:API Explorer
请求示例
{
"merchantTransInfo": {
"merchantTransID": "your_unique_trans_id",
"merchantTransTime": "2026-08-18T11:26:47+08:00"
},
"paymentMethod": {
"type": "networkToken",
"networkToken": {
"tokenID": "9fd96089049f2ed18b7a1331cc5f2c01"
}
},
"webhook": "https://webhook.merchant.com"
}请求关键字段说明
| 字段 | 说明 | 注意事项 |
|---|---|---|
| paymentMethod.type | 支付方式类型 | 固定为 networkToken |
| paymentMethod.networkToken.tokenID | Token 唯一标识 | 使用步骤一获取的 tokenID |
| merchantTransInfo.merchantTransID | 商户交易 ID | 需唯一,可使用任意唯一值 |
响应示例
{
"cryptogram": {
"status": "Success"
},
...
"paymentMethod": {
"networkToken": {
"eci": "07",
"expiryDate": "1231",
"first6No": "485168",
"last4No": "0007",
"paymentAccountReference": "V0010013025018333000890649902",
"paymentBrand": "Visa",
"status": "enabled",
"tokenCryptogram": "CQAAAAABfjauDGAAmfSdguYAAAg=",
"tokenID": "9fd96089049f2ed18b7a1331cc5f2c01",
"tokenReferenceID": "DNITHE302619027557956444",
"value": "4851681440000007"
}
},
"result": {
"code": "S0000",
"message": "Success"
}
}响应关键字段
| 字段 | 说明 | 用途 |
|---|---|---|
| networkToken.tokenCryptogram | 一次性交易密文 | 每笔交易必须重新获取,用于步骤三发起支付 |
| networkToken.eci | 电子商务指示符 | 标识交易认证级别(如 Visa: 05/06/07) |
| networkToken.expiryDate | Token 最新有效期 | 使用此值发起支付,确保有效期为最新 |
| networkToken.status | Token 当前状态 | 确认为 enabled 后再发起支付 |
| cryptogram.status | Cryptogram 获取状态 | Success 表示获取成功 |
Note
tokenCryptogram具有时效性且仅能使用一次,获取后应尽快发起支付- 若
networkToken.status不为enabled,表示 Token 已失效(如卡片挂失、销户等),不应继续发起交易
三、发起支付
使用 Network Token 及 Cryptogram 信息,调用 payment 接口完成支付。
接口地址
POST {apiurl}/g2/v1/payment/mer/{sid}/payment
请求示例
{
"merchantTransInfo": {
"merchantTransID": "your_unique_payment_trans_id",
"merchantTransTime": "2026-08-18T11:26:47+08:00"
},
"transAmount": {
"currency": "USD",
"value": "22"
},
"paymentMethod": {
"type": "token",
"token": {
"value": "9fd96089049f2ed18b7a1331cc5f2c01",
"type": "networkToken",
"paymentBrand": "Visa",
"walletIdentifiers": "MDESForMerchants",
"expiryDate": "1231",
"tokenCryptogram": "CgAAAAABdLdhIjMAmfSdguIAAAg="
}
},
"captureAfterHours": "0",
"allowAuthentication": false,
"userInfo": {
"reference": "fill in buyer id in your system",
"email": "[email protected]"
},
"returnURL": "https://YOUR_COMPANY.com/RETURNURL",
"webhook": "https://webhook.merchant.com"
...
}请求关键字段说明
| 字段 | 说明 | 注意事项 |
|---|---|---|
| paymentMethod.type | 支付方式类型 | 固定为 token |
| paymentMethod.token.value | Token 标识 | 使用步骤一获取的 tokenID |
| paymentMethod.token.type | Token 类型 | 固定为 networkToken |
| paymentMethod.token.paymentBrand | 卡组织品牌 | 如 Visa、Mastercard,需与 Token 对应的品牌一致 |
| paymentMethod.token.walletIdentifiers | 钱包标识 | 如 MDESForMerchants或其他标识 |
| paymentMethod.token.expiryDate | Token 有效期 | 使用步骤二 cryptogram 响应中的 expiryDate |
| paymentMethod.token.tokenCryptogram | 交易密文 | 使用步骤二获取的 tokenCryptogram |
| allowAuthentication | 是否启用 3DS | Network Token 交易通常设为 false(Cryptogram 已提供交易验证) |
响应示例
{
"payment": {
"evoTransInfo": {
"evoTransID": "pay-2608181612130001000083543383",
"evoTransTime": "2026-08-18T08:12:12Z"
},
"merchantTransInfo": {
"merchantTransID": "tte123113333",
"merchantTransTime": "2026-05-20T06:41:15Z"
},
"status": "Captured",
"transAmount": {
"currency": "USD",
"value": "22.00"
},
...
},
"paymentMethod": {
"isNetworkToken": true,
...
},
"result": {
"code": "S0000",
"message": "Success"
}
}响应关键字段
| 字段 | 说明 |
|---|---|
| result.code | S0000 表示交易成功 |
| payment.status | Captured 表示资金已捕获 |
| paymentMethod.isNetworkToken | true 确认本次交易使用了 Network Token |
| payment.merchantTransInfo.merchantTransID | 商户交易 ID |
Updated 1 day ago
Did this page help you?
