Pay with gateway token
对于后续的单次交易,用户可以先保存支付信息,之后在你的网站或 App 上用已保存的信息完成购买。
搭建支付方式选择页面
- 创建一个页面,展示用户已保存的支付方式供其选择。
- 可以使用你服务端存储的信息,也可以从 EVO Payment 获取用户已保存的支付方式,详见“查询网关令牌”章节。
准备周期扣款
对于周期扣款,由你的服务端选择已保存的支付方式发起支付。
发起支付请求
用户选定已保存的支付方式后,向 EVO Payment 发起 HTTP POST 请求:
POST /g2/v1/payment/mer/{sid}/payment
| Body 参数 | 是否必填 | 说明 |
|---|---|---|
merchantTransInfo | M | 本次支付的商户参考信息,包括唯一的 merchantTransID,以及表示请求发起时间的 merchantTransTime。 |
transAmount | M | 支付币种和金额。金额必须符合该币种的最小单位。 |
paymentMethod | M | 将 paymentMethod.type 设为 token,并在 paymentMethod.token.value 中传入已保存的令牌值。 |
transInitiator | M | 发起交易的终端信息。 |
storeInfo | O | 门店补充信息。如果门店在 EVO Payment 配置了多个 MCC,则必填,用于指明本次支付使用的 MCC。 |
tradeInfo | O | 如果 paymentMethod.token 是 Alipay 令牌,需传入该字段,说明本次支付的详细信息。 |
webhook | O | 接收通知的 URL。传入后,支付成功时 EVO Payment 会向该地址发送通知。 |
metadata | O | 商户自定义的参考信息,请求中传入后会在应答中原样回显。 |
以下示例使用上一步创建的令牌发起一笔 10 美元的支付:
bash
curl -X POST https://{EVO_Cloud_DOMAIN_NAME.com}/g2/v1/payment/mer/{sid}/payment \
-H "Content-Type: application/json" \
-H "DateTime: 2021-12-31T08:30:59+0800" \
-H "MsgID: 2d21a5715c034efb7e0aa383b885fc7a" \
-H "SignType: SHA256" \
-H "Authorization: YOUR_MESSAGE_SIGNATURE" \
-d '{
"merchantTransInfo": {
"merchantTransID": "37693fac0946498f8afe35b9ffdcfe89",
"merchantTransTime": "2021-12-31T08:30:59+08:00"
},
"transAmount": {
"currency": "USD",
"value": "10.00"
},
"paymentMethod": {
"type": "token",
"token": {
"value": "pmt_9ab5560fb00c2fe9a56606593a8af294"
}
},
"webhook": "https://YOUR_COMPANY.com/WEBHOOK",
"metadata": "This is a metadata"
}':::tip[提示]
下一步怎么做,取决于支付应答中是否包含 action 对象,详见“Payment”章节。
:::

