Skip to content

支付相关

WARNING

支付接口中的参数,请不要传空值,请按实际值传入,否则影响数据的统计。

支付

当玩家点击游戏内商品充值项时,调用支付接口。 请在UI主线程中调用该接口

java
UOrder order = new UOrder();
order.setProductID("1");
order.setProductName("测试商品");
order.setProductDesc("测试商品描述");
order.setRoleID("1");
order.setRoleName("test_role_1");
order.setRoleLevel("1");
order.setVip("1");
order.setServerID("2");
order.setServerName("test_1");
order.setPrice(64800);          //金额单位:分
order.setCurrency("CNY");
order.setCpOrderID(System.currentTimeMillis()+"");
order.setExtra("extra data");
XPlatform.getInstance().pay(this, order, new IPayListener() {
    @Override
    public void onPaySuccess(UOrder order) {
        //支付成功事件
    }

    @Override
    public void onPayFailed(UOrder order, String msg) {
        //支付失败事件
    }

    @Override
    public void onPayCanceled(UOrder order) {
        //支付取消事件
    }
});

UOrder对象的结构说明如下:

参数名称参数类型参数说明
productIDString充值商品ID,游戏内的商品ID
productNameString商品名称,比如100元宝,500钻石...
productDescString商品描述,比如 充值100元宝,赠送20元宝
priceint充值金额(单位:分)
currencyString货币单位,固定值CNY
cpOrderIDString游戏订单号,最大长度64字符
serverIDString玩家所在服务器的ID,不要为空
serverNameString玩家所在服务器的名称,不要为空
roleIDString玩家角色ID,不要为空
roleNameString玩家角色名称,不要为空
roleLevelString玩家角色等级,不要为空
vipString玩家vip等级
payNotifyUrlString游戏服务器支付回调地址,SDK支付成功,异步通知该地址,如果不设置,需要提供回调地址,配置到SDK后台
extraString自定义数据, 支付回调通知给游戏服务器时,原封不动返回该值

处理支付回调事件

当渠道SDK支付成功或失败时, SDK会通过支付接口中传入的IPayListener中的回调事件,通知给游戏层:

java
new IPayListener() {
    @Override
    public void onPaySuccess(UOrder order) {
        //支付成功事件
        // 一般游戏层,不需要弹出支付成功或失败的提示,实际的到账以服务端收到回调通知为准
    }

    @Override
    public void onPayFailed(UOrder order, String msg) {
        //支付失败事件
        // 一般游戏层不需要自己弹出支付失败的提示, SDK中一般都有提示
    }

    @Override
    public void onPayCanceled(UOrder order) {
        //支付取消事件
    }
})

处理服务端发货通知

玩家在客户端支付成功后, 支付平台都会通知给SDK服务端。 接着, SDK服务端会按统一的协议通知给游戏服务器。

游戏服务器需要实现服务端API集成->支付回调通知协议,用来接收SDK的发货通知请求。

收到请求并验证通过后, 才能给玩家发放道具。

版权所有© 2021-2030 上海丞诺网络科技有限公司