Appearance
支付相关
WARNING
鸿蒙版本测试支付时, 需要在华为鸿蒙开发者后台, 添加好商品: 配置鸿蒙商品
支付
当玩家点击游戏内商品充值项时,调用支付接口:
js
import { U8SDK, U8OrderData, U8Error } from '@ohos/u8sdk';
...
let payParams:U8OrderData = {
productId: "1",
productName: "test",
productDesc: "test",
price: 1,
coinNum: 0,
serverId: "1",
serverName: "tests",
roleId: "1",
roleName: "test",
roleLevel: 1,
extension: "demo",
cpOrderId: "game_order_id",
vip: "1"
};
U8SDK.getInstance().pay(getContext(), payParams).then(()=>{
hilog.debug(0x0000, "U8SDK", "u8sdk pay success");
}).catch((err:U8Error)=>{
hilog.error(0x0000, 'U8SDK', 'u8sdk pay failed:%{public}s', JSON.stringify(err));
});
orderData对象的结构说明如下:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
productId | String | 充值商品ID,游戏内的商品ID, |
productName | String | 商品名称,比如100元宝,500钻石等, |
productDesc | String | 商品描述,比如 充值100元宝,赠送20元宝, |
price | int | 充值金额(单位:元), |
coinNum | int | 玩家当前身上剩余的游戏币,默认0 |
serverId | String | 玩家所在服务器的ID, |
serverName | String | 玩家所在服务器的名称, |
roleId | String | 玩家角色ID, |
roleName | String | 玩家角色名称, |
roleLevel | String | 玩家角色等级, |
vip | String | 玩家vip等级 |
payNotifyUrl | String | 玩家支付成功,U8聚合SDK会优先通过该地址,通知游戏服务器,给玩家发货。 如果该地址没设置, 会使用后台配置的地址 |
cpOrderId | String | 游戏自己的订单号,最大长度64字符;支付成功之后,U8聚合SDK原样返回给游戏服务器 |
extension | String | 自定义数据,最大长度:64字符;支付成功之后,U8聚合SDK原样返回给游戏服务器 |
处理服务端发货通知
玩家在客户端支付成功后, 华为鸿蒙平台会通知给U8聚合SDK服务端。 接着, U8聚合SDK服务端会按统一的协议通知给游戏服务器。
游戏服务器需要实现服务端->支付回调通知协议,用来接收U8聚合SDK的发货通知请求。
收到请求并验证通过后, 才能给玩家发放道具。