# 支付接口
# 1、接口说明
DANGER
游戏在调用支付接口前,必须确保已调用上传角色接口,否则拉起支付时出现异常。
# 2、支付接口
# 2.1、拉起支付
警告
- 单价参数
itemPrice
必须以分为单位。国内为CNY(单位分),海外为USD(单位美分)!
调用代码示例如下:
import { DHRequestCode, DHResultCode, DHSDKHelper, DHUploadGameInfoType } from 'dhsdkhelper'
//以下所有字段值皆为示例,研发接入时需替换为游戏的真实值,保证登录成功后调用支付
let payInfo: ESObject = {
accountId: '120002212', //电魂用户ID
accountName: 'suer12212', // 电魂用户名称
roleId: '1102', // 角色ID,实在无值时不用传入
areaId: '23', // 游戏大区Id(默认1)
itemId: 'com.dianhun.xxx', // 道具商品唯一ID
itemName: '6元道具', // 道具商品名称
itemPrice: '600', // 金额,必须以分为单位。国内是CNY(单位分),海外是USD(单位美分)!
itemNum: '1', // 商品数量,默认:1
rate: '10', // 真实货币和游戏货币的的汇率,比如1元可以购买10个游戏充值钻石,该值就为10
memo: '', // memo透传参数,支付成功会透传给研发服务端,一般存放研发自己的订单信息
currency: 'CNY', // 货币类型,国内是CNY,海外是USD
gameInfo: '{}'//可选参数,json字符串
}
/**
* @param context 上下文
* @param params 支付json数据字符串
*/
DHSDKHelper.pay(getContext(this),JSON.stringify(payInfo))
支付信息,主要参数说明如下:
参数 | 类型 | 必传字段 | 统一字段 | 说明 |
---|---|---|---|---|
accountId | string | 是 | 是 | 账号ID |
accountName | string | 否 | 是 | 账号名称 |
areaId | string | 是 | 是 | 大区ID |
roleId | string | 是 | 是 | 角色ID,无值则传0 |
itemId | string | 是 | 是 | 商品ID |
itemName | string | 是 | 是 | 商品名称 |
itemNum | string | 是 | 是 | 商品数量,一般固定为1 |
itemPrice | string | 是 | 是 | 商品单价(分),请注意必须以分为单位 |
rate | string | 否 | 是 | 货币兑换比例,1 或10 或100 |
memo | string | 否 | 是 | 透传参数,支付完成后,服务器回调时将原样返回 |
currency | string | 是 | 是 | 货币类型,国内为CNY(单位分),海外为USD(单位美分) |
gameInfo | string | 否 | 否 | 游戏支付信息,JSON字符串 |
调用后在初始化设置的SDK回调将收到如下回调码:
...
//支付结果
case DHRequestCode.REQ_PAY:
if (resultCode == DHResultCode.OK) {
//支付成功
} else {
//支付失败
}
break
...
DANGER
DHResultCode.OK
不代表支付成功,仅表示完整支付流程结束(某些渠道存在延迟或不准情况),真实支付成功以服务端通知为准 :::