即时付款通知(Instant Payment Notification)
接口说明
即时付款通知(Instant Payment Notification)由游戏商提供API给发行商设置,当玩家付款成功后发行商服务器将通知游戏商服务器。
流程图
图中第5步就是即时付款通知步骤, SDK服务器主动触发, 然后通过HTTP请求的方式通知游戏商游戏服务器
请求地址
开发商自定 http://yourdomain.com/ipn.php
请求方式(发行商服务器请求游戏商服务器)
POST
请求安全
为了提高接口的安全性,请设置白名单
IP 请找发行商索取
请求参数
字段名 | 是否必填 | 类型 | 说明 |
---|---|---|---|
time | 是 | int | 当前时间(10位时间戳) |
type | 是 | int | 付款方式 1 Google Play 2 Apple Store 3 游戏内第三方充值 4 游戏外第三方充值(游戏官网充值) 5 Onestore 6 Codashop 7 华为HuaWei 8 Oppo 9 Samsung 10 Gamota 11 Travellet 12 IGameBuy 13 GoogleAdmob 14 Applovin 15 E-GamePay(网页充值) 16 DMM 17 Qoo 18 Topon |
paymentDate | 是 | int | 交易时间(10位时间戳) |
tradeId | 是 | string | 发行商交易号(游戏商判断重复交易) |
productId | 否 | string | 内购商品ID |
serverId | 是 | string | 区服ID |
accountId | 是 | string | 发行商账号ID |
roleId | 是 | string | 角色ID |
currencyCode | 是 | string | 货币 固定币种:USD |
amount | 是 | decimal(14,2) | 美元 9.99。如果研发需要做金额校对,请用此金额 |
extra | 否 | string | 拓展字段 (透传值) (如果游戏商传入订单号,请不要用此订单号做订单去重判断) |
promotion | 否 | float | 促销比例,0.2 多送20%元宝。仅支持type等于3、4、15。 |
originalCurrencyCode | 是 | string | 汇率兑换前原始付款币种 TWD |
originalAmount | 是 | decimal(14,2) | 汇率兑换前原始付款金额 300.00 |
originalRate | 是 | string | 付款货币与默认货币汇率 0.03473122 |
paymentStatus | 是 | string | 交易状态 completed 交易成功 |
channelId | 是 | string | 付款渠道 |
mode | 是 | string | live 正式交易,sandbox 测试交易(最终以账单为准) |
signature | 是 | string | 签名 参考签名规则 |
小提示:
通知参数会动态新增,请不要接收固定参数加密签名。
请游戏商按发行商交易号做交易重复检测。如果第一次推送充值成功,第二次以后的推送直接返回成功状态。
发行商收到玩家付款成功通知后,会即时请求游戏商,当游戏商响应结果失败时,发行商系统会在7分钟内自动推送6次请求。
游戏币数量计算向上取整。例如:ceil(11.1) = 12,ceil(11.6) = 12
充值失败,请返回详细的失败原因,方便双方排查问题。
响应结果
成功返回
{
"resultCode": 200,
"message": "Success",
"data" : []
}
说明:resultCode 返回200 或 1表示道具发放成功
失败返回
{
"resultCode": 40101,
"message": "签名错误",// 具体错误信息游戏商自定义,建议详细。
"data" : []
}
规则说明(仅供参考)请与发行商运营协商充值规则
普通商品充值:
元宝换算比例(举例说明):1 USD = 60 元宝
规则一:官网充值extra没有值。
规则二:充值金额与商品金额相同,发放规则按商品规则发放。
规则三:充值金额与商品金额不相同。
首充:判断最近商品金额给双倍。例如:充值 1.28 USD. 最近商品是0.99 (0.99 = 60元宝), 发放规则为 (60 * 2) + ((1.28 - 0.99) * 60)。
非首充:判断最近商品金额给单倍。例如:充值 1.28 USD. 最近商品是0.99 (0.99 = 60元宝), 发放规则为 60 + ((1.28 - 0.99) * 60)。
未匹配到最近商品。例如:充值 0.28 USD. 最小商品是0.99 (0.99 = 60元宝), 那么直接按比例发放 0.28 * 60。
规则举例说明:
玩家选择99.99商品,使用第三方支付,选择台湾在线银行支付。支付 2000 TWD。 发行商汇率兑换后 2000 TWD = 65 USD。回调金额为 65 USD,(充值金额小于商品金额,请参考规则三)。
玩家选择99.99商品,使用第三方支付,选择台湾在线银行支付。支付 4000 TWD。 发行商汇率兑换后 4000 TWD = 130 USD。回调金额为 130 USD,(充值金额大于商品金额,请参考规则三)。
玩家选择99.99商品,选择第三方支付,选择信用卡支付,回调金额为 99.99 USD。
玩家选择99.99商品,选择 Google Play 或 iOS 支付,回调金额为 99.99 USD。
月卡充值:
月卡商品为 3.99 USD。
规则一:玩家选择月卡商品,但玩家充值 20.23 USD,充值金额大于月卡金额,给玩家发月卡。剩余金额按比例发放元宝(20.23 - 3.99) * 60。
规则二:玩家选择月卡商品,但玩家充值 1.23 USD,充值金额小于月卡金额。购买月卡失败。直接按比例发放元宝 1.23 * 60。
备注:
玩家点击月卡商品才能发放月卡,其它普通商品充值不能发放月卡。 官网不支持月卡支付。
返利说明:
回调数据中会推送 promotion 参数。 值为 0.1 0.2 0.3 ... 0.1 多发10%元宝。以此类推。
换算比例:1 USD = 60 元宝
例如:玩家使用信用卡充值 1.23 USD。我们系统已对信用卡配置返利10%。 计算公式为:(1.23 USD 通过以上规则计算可得元宝数) + (1.23 * 0.1 * 60) = 最终给玩家的元宝数。