# 支付接口
# 1、接口说明
此接口为SDK统一支付接口。国内和海外支付均使用此接口,具体使用方式则根据meta-data
配置(由开放平台出包,接入者无需关心此配置)。
DANGER
游戏在调用支付接口前,必须确保已调用上传角色接口,否则拉起支付时出现异常。
# 2、支付接口
# 2.1、拉起支付(统一必接)统一必接
警告
- 单价参数
itemPrice
必须以分为单位。国内为CNY(单位分),海外为USD(单位美分)! - 谷歌订阅的商品道具
itemId
必须以.googlesubs
为后缀(例如com.dh.test.googlesubs),否则无法正常订阅!
调用代码示例如下:
import com.dh.DHSDKHelper;
import org.json.JSONObject;
String payInfo = "{}";
try {
payInfo = new JSONObject()
.put("accountId", 1696674719) // 账号ID
.put("accountName", "131****0130") // 账号名称
.put("areaId", 1) // 游戏大区ID
.put("roleId", "100002") // 角色ID
.put("itemId", "com.dh.test") // 商品ID
.put("itemName", "60钻石") // 商品名称
.put("itemNum", 1) // 商品数量
.put("itemDesc", "限量极品钻石") // 商品描述
.put("itemPrice", 600) // 商品单价(分)
.put("rate", 100) // 货币兑换比例
.put("memo", "") // 透传参数
.put("remark", "") // 备用透传参数
.put("currency", "CNY") // 货币类型
.toString();
} catch (Throwable e) {
e.printStackTrace();
}
/**
* @param activity 上下文
* @param sdkCallback 回调对象
*/
DHSDKHelper.getInstance().getPlatform().pay(activity, payInfo, gameUnifiedCallback);
支付信息,主要参数说明如下:
参数 | 类型 | 必传字段 | 统一字段 | 说明 |
---|---|---|---|---|
accountId | int | 是 | 是 | 账号ID |
accountName | String | 否 | 是 | 账号名称 |
areaId | int | 是 | 是 | 大区ID |
roleId | String | 是 | 是 | 角色ID,无值则传0 |
itemId | String | 是 | 是 | 商品ID |
itemName | String | 是 | 是 | 商品名称 |
itemNum | int | 是 | 是 | 商品数量,一般固定为1 |
itemDesc | String | 否 | 是 | 商品描述 |
itemPrice | int | 是 | 是 | 商品单价(分),请注意必须以分为单位 |
rate | int | 否 | 是 | 货币兑换比例,1 或10 或100 |
memo | String | 否 | 是 | 透传参数,支付完成后,服务器回调时将原样返回 |
remark | String | 否 | 是 | 备用透传参数 |
currency | String | 是 | 是 | 货币类型,国内为CNY(单位分),海外为USD(单位美分) |
gameInfo | String | 否 | 否 | 游戏支付信息,JSON字符串,海外谷歌包可选接入,方便开启网页支付 |
回调对象示例如下:
import com.dh.DHSDKConst;
import com.dh.callback.IDHSDKCallback;
public class GameUnifiedCallback implements IDHSDKCallback {
@Override
public void onDHSDKResult(int requestCode, int resultCode, String resultData) {
switch (requestCode) {
case DHSDKConst.REQ_PAY:
// 支付回调
if (resultCode == DHSDKConst.RET_OK) {
// 支付结束
} else if (resultCode == DHSDKConst.RET_FAIL) {
// 支付失败
}
break;
default:
// 其他结果
break;
}
}
}
支付结果,回调数据说明如下:
回调数据为文本提示或其他结构,接入方无需解析,也不要直接展示给用户
DANGER
- 拉起支付后,回调结果通过
DHSDKConst.OK
或DHSDKConst.FAIL
可以判断是否完成订单。 DHSDKConst.OK
不代表支付成功,仅表示完整支付流程结束(某些渠道存在延迟或不准情况)。接入方需在本地或服务端验证该笔支付的有效性。