为什么向玩家收取了错误的金额?
| 收取的金额与传入的 priceDetails.price 完全一致。多收款几乎总是货币单位错误导致的——最常见的是将美元分与日元等零小数货币单位混淆。 |
结账价格的计算方式
priceDetails.price 是收取的金额,单位为该货币的最小单位——美元/欧元使用分,日元等零小数货币使用整单位。Appcharge 会严格按照传入的金额收取费用。
常见原因:零小数货币(日元、韩元)
对于日元,price: 1500 表示 ¥1,500,而不是 $15.00。一个常见错误是:1499 美分 × 133(日元汇率)= 199,800,结果收取了 ¥199,800(约 $1,247),而不是约 ¥1,998。
attributes 字段不会设置价格
attributes 中的 usd_price 等字段仅用于存储元数据。只有 priceDetails.price 决定向玩家收取的金额。
解决方法
- 美元:以美分为单位设置价格(例如,1499 表示 $14.99)
- 日元:以日元整单位设置价格(例如,1998 表示 ¥1,998)——不要将美分乘以外汇汇率
- 先在 Sandbox 中进行测试,并在正式上线前核对显示的金额
申请退款
请联系 Appcharge 支持,并提供订单 ID、预期价格和货币。