Skip to main content
简短回答:**没有单独的”开通此币种”开关。**一个币种只要在你的某一份支付方式协议上,就可以使用,所以”我的币种开通了吗?” 和”我开通了这个支付方式吗?“其实是同一个问题问了两遍。本页逐一梳理由此带来的影响,包括那个让所有人都栽跟头的错误码。 金额格式、小数位规则和完整币种列表见已发布的币种处理;定价策略本身见 定价与币种。订单的多个金额字段中该核对哪个、按哪个发货、按哪个对账—— 以及为什么 finalDealAmount 与 orderAmount 不同是合理的——见 我该检查哪些金额和币种字段?。下文讲的是开通,不是字段或格式。

一笔订单有哪两个币种?

每份 Payin 协议都同时带有这两个币种,它们的作用不同: 两者相同时,订单是同币种订单。两者不同时,是跨币种订单,会应用汇率——见汇率。 这一区分对开通很重要,因为两者是分别检查的:你的协议必须带有订单币种,并且——如果你自己固定了用户币种—— 该币种对也必须已签约。

我在哪里能看到我能用哪些币种?

同一份配置的三个视图: 用前两个来回答”我今天能不能这样做”,而且只用这两个。逐列解读见 Payin 协议与交易限额;响应字段见 支付方式配置与限额。

某个支付方式接受 USD,还是只接受本地币种?

取决于行,而不是支付方式。同一支付方式可以以多个订单币种签约,一个支付方式在 Service → Payin 上出现多次是正常的—— 每个币种一行——各行限额不同。 所以这个问题要按行回答:找到该支付方式,读取它的 Order Currency,如果你打算固定付款人被扣款的币种,也读取它的 User Currency。不要从一个市场推广到另一个市场,也不要在你的对接中缓存答案——从 inquiry 调用中读取。

我传了一个没有签约的币种,会收到哪个错误?

A0018——“Payment method in merchant order does not match with current merchant contract.” 不是一个币种专属的错误码。这是币种开通中最具误导性的一点:消息说的是支付方式,但拒绝原因可能完全出在币种上。 三种因币种导致 A0018 的方式: 把 A0018 理解为”支付方式错了”会让你去检查错误的地方。请把它当作”我的协议没有一份能匹配这整个请求”, 然后逐个维度排查——见订单被拒绝时我该检查什么?。

怎么避免这个错误的币种对版本?

**不传 userCurrency。**如果你不固定它,收银台会自行决定付款人被扣款的币种,并按当前汇率转换你的订单金额,这样你只需要 订单币种那一半已签约。只有当你有理由自己固定面向付款人的币种时才传 userCurrency,而且只针对你在 Service → Payin 上 能看到的币种对。 同一错误码从支付方式角度的现有指引见常见错误排查;付款人最终以哪个币种被扣款、 以及为什么会让你意外,见收银台跳转与操作类型。

我能在一个市场用本地币种定价,在另一个市场用 USD 定价吗?

可以。定价记录在协议行上,而行是按国家和币种划分的,所以不同市场可以设置得不同——有的用本地币种定价,有的用单一全球币种—— 包括同一支付方式。没有一个账户级设置会强制所有市场采用同一选择。 你不能做的是按请求决定:你传的 orderCurrency 必须是你某一行所带有的。如果某个市场只以本地币种签约,那么该市场一笔以 USD 定价的订单会得到 A0018,解决办法是变更合约,而不是改参数。 三种定价形态及各自隐含的参数见已发布的定价与币种。

我收到结算款的币种是同一回事吗?

不是——结算币种是第三个独立的维度,配置在你的结算设置上,而不是 Payin 协议上。一笔订单可以用一种币种定价, 以第二种币种向付款人扣款,再以第三种币种结算给你。见结算账户结构和 结算计算详解。

支付方式是对我整个账户开通,还是按商户 ID 开通?

**按商户 ID。**一份协议属于一个商户 ID,创建订单时按你签名请求所用的商户 ID 查找协议。所以为你的一个商户 ID 开通某支付方式 并不会为另一个开通;如果你有多个商户 ID——每条业务线一个、每个地区一个——申请时请把需要的每个商户 ID 都列出来。 实际影响:
  • 在一个商户 ID 上能成功的同一请求,在另一个商户 ID 上可能返回 A0018。在怀疑请求体之前,先确认你的 API 密钥属于哪个商户 ID。
  • Service → Payin 和 inquiry 调用每次只回答一个商户 ID 的情况。
  • 如果你收到了一个指明你商户 ID 的参数错误,那么不匹配的是请求体中的 ID 和密钥所属的 ID——见 支付方式配置与限额。

我能按地区而不是按国家开通吗?

协议行上的维度是国家,另加一个独立的 Global 条目,用于不属于任何单一国家的支付方式。中间没有地区这一层级, 所以”欧洲”或”日韩”要表达为你想要的一组国家,每个国家成为各自的行。 规划上线时这一点值得了解:申请时给出国家列表而不是地区名称,并预期生成的 Service → Payin 页面按每个国家和币种组合一行, 而不是每个地区一行。

新增支付方式会干扰我已经在运行的支付方式吗?

不会,也不涉及停机。协议是彼此独立的行:新增一份会创建新行,不会改动你现有各行的状态、限额和退款规则。 新支付方式设置期间,你已运行支付方式上的实时流量不受影响。 在你这边也不需要任何改动——除非你想显式指定新支付方式。如果你让收银台展示你签约的一切,新的 Active 行会直接开始出现; 如果你自己传 payMethodName / payMethodType,则由你决定何时开始发送新值。新签约的支付方式在收银台上出现的位置见 收银台展示规则;申请如何推进见支付开通。

我在 sandbox 看到的限额和币种,在 production 里是一样的吗?

不一样——你在 sandbox 中读到的任何内容都不应被当作 production 值或报价。请从你的 production Portal 读取 production 值, 或使用 production 凭据调用 /api/v1/paymethodconfig/inquiry,并在创建订单前据此校验。sandbox 的数字为何存在、它们能 和不能证明什么,见 Sandbox 环境与访问。 费率是商业条款,只出现在你自己的 Payin 页面上——不会在任何地方公开。