跳转到内容

Pay with gateway token ​

对于后续的单次交易,用户可以先保存支付信息,之后在你的网站或 App 上用已保存的信息完成购买。

  1. 搭建支付方式选择页面

    • 创建一个页面,展示用户已保存的支付方式供其选择。
    • 可以使用你服务端存储的信息,也可以从 EVO Payment 获取用户已保存的支付方式,详见“查询网关令牌”章节。
  2. 准备周期扣款

    对于周期扣款,由你的服务端选择已保存的支付方式发起支付。

  3. 发起支付请求

    用户选定已保存的支付方式后,向 EVO Payment 发起 HTTP POST 请求:

    POST /g2/v1/payment/mer/{sid}/payment

Body 参数是否必填说明
merchantTransInfoM本次支付的商户参考信息,包括唯一的 merchantTransID,以及表示请求发起时间的 merchantTransTime。
transAmountM支付币种和金额。金额必须符合该币种的最小单位。
paymentMethodM将 paymentMethod.type 设为 token,并在 paymentMethod.token.value 中传入已保存的令牌值。
transInitiatorM发起交易的终端信息。
storeInfoO门店补充信息。如果门店在 EVO Payment 配置了多个 MCC,则必填,用于指明本次支付使用的 MCC。
tradeInfoO如果 paymentMethod.token 是 Alipay 令牌,需传入该字段,说明本次支付的详细信息。
webhookO接收通知的 URL。传入后,支付成功时 EVO Payment 会向该地址发送通知。
metadataO商户自定义的参考信息,请求中传入后会在应答中原样回显。

以下示例使用上一步创建的令牌发起一笔 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”章节。

:::