部分商户会使用第三方认证服务提供方完成认证,再通过 EVO Payment 完成授权。这种情况下,可以携带第三方 3D Secure 服务提供方返回的认证数据,向 EVO Payment 提交支付请求。
步骤 1:在第三方认证服务提供方完成认证#
按你和第三方认证服务提供方现有的对接流程完成认证,拿到下一步需要的认证数据。步骤 2:发起支付#
拿到第三方认证服务提供方返回的认证数据后,从你的服务端向 EVO Payment 发起 HTTP POST 请求:/g2/v1/payment/mer/{sid}/payment| 参数 | 是否必填 | 说明 |
|---|
authentication.threeDS.mpiData | O | 3D Secure 认证数据。用户进行了 3D Secure 认证时必填。 |
authentication.securePlus.securePlusData | O | SecurePlus 认证数据。用户进行了 SecurePlus 认证时必填。 |
authentication.threeDS.mpiData 对象详细说明:1.
authentication.threeDS.mpiData.eci:电子商务标识(ECI),必填。
2.
authentication.threeDS.mpiData.cavv:CAVV 值,必填。
3.
authentication.threeDS.mpiData.dsTransID:目录服务器(DS)交易 ID。用户进行了 3D Secure 2 认证时必填。
4.
authentication.threeDS.mpiData.threeDSVersion:3D Secure 版本。用户进行了 3D Secure 2 认证时必填。EVO Payment 当前支持的版本为 2.1.0。
authentication.securePlus.securePlusData 对象详细说明:1.
authentication.securePlus.securePlusData.eci:银联返回的原始认证结果,用于表示该笔交易的安全状态,必填。
2.
authentication.securePlus.securePlusData.vcode:从银联获取的验证码,必填。
以下示例为携带从第三方服务提供方获取的 3D Secure 2 认证数据,向 EVO Payment 发送支付请求:你会收到包含 result.code 的应答,用于表示处理结果。以下为支付成功的应答示例:步骤 3:展示结果#
使用 result.code 和 payment.status 告知用户支付状态。详见 EVO Payment API 规范附录。其他可能的 result.code 值及建议向用户展示的提示信息,见 EVO Payment API 规范附录。如果 result.code 为 S0000,还需要检查 payment.status,确定支付状态并告知用户。| 状态 | 说明 |
|---|
| Authorised | 用于卡交易,表示交易授权已成功,等待完成(商户可发起撤销)。 |
| Captured | 卡交易表示授权和完成均已成功;电子钱包交易表示交易已成功。 |
| Failed | 支付失败。 |
其他可能的 payment.status 值及说明,见 EVO Payment API 规范中的 payment.status 部分。