Skip to main content
本页回答两类问题:下单时怎么按「全球统一 / 各国分别 / 区域」三种定价方式传 orderCurrency、orderAmount、userCurrency;以及 Portal 和文档里出现的几个「币种」词(订单币种、收单币种、用户币种、结算币种)分别指什么。小数位规则见官网币种与金额 (https://waffo.com/docs/zh/developer-docs/core-concepts/currency.md),官网原文见定价币种方案 (https://waffo.com/docs/zh/developer-docs/use-cases/pricing-currency.md)。

我只想定一个 USD 价,用户看到本地币种,参数怎么传?

这是全球统一定价:orderCurrency 传你的统一定价币种(例如 USD),orderAmount 传统一价格,不传 userCurrency,由 Waffo 自动换算成用户的本地币种。
优点是只需维护一套价格;代价是用户在收银台看到的本地币种金额会随汇率波动。

每个国家定不同的本地价格,参数怎么传?

这是各国分别定价:orderCurrency 传用户所在国家的本地币种,orderAmount 传该国的本地价格,不传 userCurrency(订单币种本身就是本地币种,属于同币种下单)。
用户看到的是固定金额,没有汇率波动。代价是你要自己维护各国价格表,并遵守各币种的小数位规则(例如 IDR 同币种订单为 0 位小数,PHP 为 2 位),金额写错会返回 A0003。

按区域定价(东南亚一个价、欧洲一个价)怎么传?

这是区域定价:orderCurrency 传该区域的定价币种(例如东南亚用 USD、欧洲用 EUR),orderAmount 传区域统一价格,不传 userCurrency。
需要维护的价格比各国分别定价少;但同一区域内不同国家的用户看到的本地金额仍会因汇率不同而不同。

三种方式怎么选?

典型适用场景:SaaS 和数字内容常用全球统一定价;电商、游戏常用各国分别定价;按区域分组运营的业务用区域定价。 三种方式下 userCurrency 都不用传,Waffo 会自动处理换算。payMethodCountry 是选填字段,不是跨币种订单的必传字段:只有当某个支付方式在多个国家都有同名版本(例如 GrabPay、ShopeePay)、需要指明支付方式所属国家时才需要传;没传而匹配到多个时会返回 A0033。币种与金额的完整规则见官网币种与金额(https://waffo.com/docs/zh/developer-docs/core-concepts/currency.md)。

可以在不同市场用不同的定价方式吗?

可以,没有强制所有市场采用同一种方式的账户级设置。但你传的 orderCurrency 必须是你合约上某个支付方式、某个国家下已有的币种;没有对应合约时会返回 A0018,需要通过变更合约解决,而不是改参数。详见使用某个币种之前必须先开通吗?。

Sandbox 设置向导里的「定价策略」是什么意思?

Sandbox 设置向导的第 3 步让你选一个定价策略,候选支付方式会据此推导: 向导只提供这两个选项,用来决定 Sandbox 里为你准备哪些支付方式;它不是下单参数。实际下单时仍按上面三种方式传 orderCurrency 等字段。如果第 5 步没有出现你期待的支付方式,请先检查第 3、4 步选的定价策略和目标市场。

Order Currency、Acquiring Currency、User Currency、Settlement Currency 分别指什么?

先说结论:同一笔订单上最多涉及三种币种,下单时只有第一种由你控制。 也就是说,一笔订单可以用一种币种定价、用另一种币种向付款人扣款、再用第三种币种结算给你。订单币种和结算币种不同时,结算明细会带上对应的货币对和汇率(Forex Currency Pair、Forex Rate)。 注意:官网定价币种方案 (https://waffo.com/docs/zh/developer-docs/use-cases/pricing-currency.md)在「全球统一定价」里把 orderCurrency 称作「商户结算币种」。这里的 orderCurrency 是你的定价币种,不一定等于你的结算币种——以订单字段定义(订单币种)为准;结算币种以你的结算设置为准。

我该去哪里核对这些金额字段?