# 发起支付

# ks.requestPayment(Object obejct)

支付接口。

支付接口回调结果并不代表购买流程完成,需要游戏服务器确定支付结果。

# 参数

object

属性 类型 说明 是否参与签名
success function 调用成功的回调函数
fail function 调用失败的回调函数
complete function 调用完成的回调函数
zone_id string 格式:serverId_roleId
即按 区服ID_角色ID 的格式拼接
os string 系统
currency_type string 货币类型,USD
buy_quantity int 购买数量
user_ip string 用户设备真实ip
third_party_trade_no string 游戏定义的订单id
extension string 拓展字段,非必填 为非空字符串时参与签名,否则不参与
sign string 签名信息 签名规则

os的合法值

说明 最低版本
'android' Android系统

currency_type的合法值

说明 最低版本
'USD' 美金

extension的格式

extension可以是任意合法的字符串,用于携带一些业务参数,在接入时请自行决定是否添加。

说明:

在测试阶段,如果希望实现测试包与线上包使用不同的回调地址,extension为对map进行json encode之后的字符串,map的格式为:

{
    "customKey": "customValue",
    "callbackUrl": "https://xxxgameserver.com/ksgame/pay/success/notify"
}

字段说明:

  • customKey、customValue为自定义字段,可根据游戏需要自行添加
  • callbackUrl: 充值成功后的回调链接。若extension包含此字段,则在充值成功后,通过此字段来进行充值结果回调,否则使用后台配置的回调链接。

success的参数

属性 类型 说明 最低版本
code int 状态码
msg string 信息
orderID string 订单ID

fail的参数

属性 类型 说明 最低版本
code int 错误码
msg string 错误描述

# buyQuantity 限制说明

购买游戏币的时候,buyQuantity 不可任意填写,取值只可以为下表中的值。

为同时支持Google支付和三方支付,参数中请指定当地货币(BRL或IDR)和buyQuantity。

buyQuantity 与 用户支付金额关系如下:

buyQuantity USD 用户支付金额(单位:美分 ) BRL 巴西雷亚尔(单位:分) IDR 印度尼西亚卢比(分)
99 99 499 1500000
199 199 899 2800000
299 299 1499 4500000
399 399 1999 6200000
499 499 2399 7300000
599 599 2799 7900000
699 699 3499 9900000
799 799 3999 10900000
999 999 5099 15900000
1099 1099 5499 16900000
1499 1499 7299 22900000
1999 1999 9999 30900000
2599 2599 12499 39900000
2999 2999 14999 44900000
3599 3599 16999 49900000
3999 3999 20499 59000000
4999 4999 25999 79000000
5999 5999 27999 89000000
6999 6999 32999 99000000
7999 7999 34999 119000000
8999 8999 42999 139000000
9999 9999 49999 149000000

# 示例代码

let model = getOrderFromServer();//从服务器获取订单,包含签名
let params = {};
params.success = (result) => {
  this.content.string = "支付结果: " + JSON.stringify(result);
}
params.fail = (result) => {
  this.content.string = "支付失败: " + JSON.stringify(result);
}
params.zone_id              = model.zone_id
params.os                   = model.os
params.currency_type        = model.currency_type
params.buy_quantity         = model.buy_quantity
params.user_ip              = model.user_ip
params.third_party_trade_no = model.third_party_trade_no
params.extension            = model.extension
params.sign                 = model.sign
ks.requestPayment(params);