在线上交易中,商户经常面对来自不同国家的用户。交易发生时,用户通常更希望使用本国货币进行交易。因此,EVO Cloud 提供了汇率查询(FX Rate Inquiry)和多币种定价(Multi-Currency Price,MCP)两项功能,以满足商户的需求。
汇率来源设置#
您可以在 EVO Cloud 门户中配置各场景使用的汇率来源。汇率来源分为两类:EVO Cloud 汇率(EVO Cloud FX Rate)和收单机构汇率(Acquirer FX Rate)。在 EVO Cloud 汇率下,您还可以针对不同卡组织(包括 Visa、Mastercard 和 JCB)指定汇率。此外,EVO Cloud 支持自动选择优惠汇率(Priority FX Rate)。详情请参阅《EVO Cloud 门户用户手册》。如果您将汇率来源配置为收单机构汇率,请注意,在 EVO Cloud 门户中设置汇率后,最长可能需要等待 5 分钟,才能在 API 调用中使用这些汇率。汇率查询(FX Rate Inquiry)#
该服务使商户能够获取每日汇率,并据此对商品重新报价。收单机构可以定义汇率来源,或设置自定义汇率及加价(markup)。汇率来源设置#
您可以在 EVO Cloud 门户中配置汇率查询所使用的汇率来源。汇率来源分为两类:EVO Cloud 汇率和收单机构汇率。在 EVO Cloud 汇率下,您还可以针对不同卡组织(包括 Visa、Mastercard 和 JCB)指定汇率。此外,EVO Cloud 支持自动选择优惠汇率。详情请参阅《EVO Cloud 门户用户手册》。汇率查询请求#
您可以从服务端向 EVO Cloud 以下接口发起 HTTP GET 请求:/g2/v1/payment/mer/{sid}/FXRateInquiry| 参数 | 是否必填 | 说明 |
|---|
baseCurrency | M | 被转换的原币种代码。 |
quoteCurrency | M | 转换后的目标币种代码。 |
如果汇率来源为 EVO Cloud 汇率,您可以查询任意两种币种之间的汇率。但如果汇率来源为收单机构汇率,您需要先在 EVO Cloud 门户中配置相应汇率,才能通过 API 获取。响应中的 localToTransFXRate 对象包含汇率信息,字段如下:2.
quoteCurrency:转换后的目标币种代码。
详情请参阅*《EVO Cloud API 规范》*。多币种定价(MCP)#
步骤 1:获取转换后的交易金额#
您可以从服务端向 EVO Cloud 以下接口发起 HTTP POST 请求:/g2/v1/payment/mer/{sid}/FXRateInquiry| 参数 | 是否必填 | 说明 |
|---|
merchantTransInfo | M | 汇率查询的参考信 息,包括唯一的 merchantTransID,以及表示您发起请求时间的 merchantTransTime。 |
transAmount | M | 支付转换后的币种。金额必须符合该币种的最小单位规则。 |
localAmount | M | 支付转换前的币种和金额。金额必须符合该币种的最小单位规则。 |
如果汇率来源为 EVO Cloud 汇率,您可以查询任意两种币种之间的汇率。但如果汇率来源为收单机构汇率,您需要先在 EVO Cloud 门户中配置相应汇率,才能通过 API 获取。以下是将 THB 转换为 HKD、获取转换后交易金额的示例:请求成功时,响应中会包含 transAmount 对象,展示转换后的交易金额和币种。1.
fxRateInquiry.status:汇率查询的状态(必填),取值可为 Success 或 Failed。
2.
fxRateInquiry.transAmount:支付经货币转换后的币种和金额(必填)。您需要在步骤 2 的 POST 支付请求中使用相同的币种和金额。
您可以从服务端向 EVO Cloud 以下接口发起 HTTP POST 请求:/g2/v1/payment/mer/{sid}/payment| 参数 | 是否必填 | 说明 |
|---|
merchantTransID | M | 初始汇率查询的 merchantTransInfo.merchantTransID。 |
| 参数 | 是否必填 | 说明 |
|---|
merchantTransInfo | M | 支付的参考信息,包括唯一的 merchantTransID,以及表示您发起请求时间的 merchantTransTime。 |
transAmount | M | 支付的币种和金额。金额必须符合该币种的最小单位规则,且必须与 paymentMethod 中指定的金额相同。 |
paymentMethod | M | 使用 paymentMethod.type 指定支付方式类型,例如电子钱包或银行卡支付,并携带上一步收集的相关支付信息。 |
transInitiator | M | 发起交易的设备信息。 |
storeInfo | O | 补充的门店信息。当您的门店在 EVO Cloud 中配置了多个 MCC 时必填,用于指明本次支付使用的 MCC。 |
tradeInfo | O | 当 paymentMethod.e-wallet.paymentBrand 为 Alipay 时必填,用于说明本次支付的详细信息。 |
userInfo | O | 买家的详细信息。如能获取请传入,有助于 EVO Cloud 进行反洗钱和欺诈检测,并提升支付成功率。 |
validTime | O | 当 paymentMethod.type 为 e-wallet 时适用,表示订单的有效时间(分钟)。支付只能在该时间之前完成。如有特殊要求,请联系 EVO Cloud 客户经理。 |
returnURL | O | 用户完成或取消支付后,跳转回您页面的 URL。 |
webhook | O | 接收通知的 URL。传入该参数后,支付成功时将收到 EVO Cloud 的通知。 |
metadata | O | 请求中自定义的参考信息 ,会在响应中原样返回。除 GET 请求外,响应中的 metadata 与请求报文中的相同;GET 响应中的 metadata 与 POST 请求报文中的相同;通知中也会携带 POST 请求中的 metadata。 |
以下是将 THB 转换为 USD 发起 MCP 支付的示例:后续步骤取决于支付响应中是否包含 action 对象。详情请参阅 Payment 章节。