supersdk

文档中心

文档中心

下载文档

支付模块


一、接入前准备

1. 游戏需要先阅读公共配置并做好相关配置。

2. 游戏需要先完成登录模块所有接口的接入。

注意:游族游戏接入前,必须先接入游族的起点(区服)系统(运营和游族起点系统人员沟通)。

二、支付

接口描述:调用此接口会打开渠道的支付界面。

注意一:联调前需要在开服系统为区服配置游戏服务器的 Ip 或域名。

注意二:游戏不能依赖客户端 SDK 的支付回调进行游戏逻辑处理,比如首充显示等(部分渠道支付成功、失败没有回调)。

接口调用:


int         price           = 6;                    // 必传,购买金额,必须为大于 0
NSString    *productId      = @"com.uuzu.zctx1";    // 必传,productId,商品唯一标识(不能超过 40 个字符)
NSString    *productName    = @"钻石";               // 必传,productName,商品名称(不能超过 40 个字符)
NSString    *productDesc    = @"游戏道具";            // 必传,productDesc,商品描述
NSString    *pointRate      = @"10";                // 必传,货币兑换比例,整形数字,现实货币与游戏货币的兑换比例,如现实货币 1 RMB,兑换游戏货币 10 元宝,则填 10
NSString    *pointName      = @"钻石";               // 必传,游戏货币名称,如元宝、钻石、金币等
NSString    *orderTitle     = @"6 元直冲";           // 必传,订单标题,显示在充值页面的标题,部分平台对该值有要求
NSString    *payExtra       = @"透传字段";           // 非必传,透传字段,充值成功后会透传给游戏服务端
NSDictionary *parameters    = @{
                                    @"price"        : @(price).stringValue,
                                    @"productId"    : productId,
                                    @"productName"  : productName,
                                    @"productDesc"  : productDesc,
                                    @"pointRate"    : pointRate,
                                    @"pointName"    : pointName,
                                    @"orderTitle"   : orderTitle,
                                    @"payExtra"     : payExtra
                                    };

[SuperSDK invoke:BCORE_MODULE_PLATFORM funcName:BCORE_FUNC_PAY parameters:parameters];

接口回调:

- (void)handlerCallback:(NSString *)moduleName funcName:(NSString *)funcName result:(NSString *)result {
    
    // 处理 SuperSDK 回调逻辑,注意,所有模块回调都在这里。
    NSLog(@"****** 收到回调\n moduleName : %@,\n funcName : %@,\n result : %@", moduleName, funcName, result);
    
    
    // 1.回调参数解析
    NSDictionary *retParam = nil;
    if (result) {
        NSData *jsonData = [result dataUsingEncoding:NSUTF8StringEncoding];
        if (jsonData) {
            retParam = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableLeaves error:nil];
        }
    }
    
    int code            = [[retParam objectForKey:@"code"] intValue];   // 状态码
    NSString *msg       = [retParam objectForKey:@"msg"];               // 说明
    
    // 2.回调参数判断
    if ([moduleName isEqualToString:BCORE_MODULE_PLATFORM]) {// 平台模块回调
        
        if ([funcName isEqualToString:BCORE_FUNC_PAY_ORDER_ID]) { // 获取订单号成功回调
            NSString *orderId = [retParam objectForKey:@"data"]; // 回调 data 数据
            NSLog(@"获取订单号成功,订单号为:%@", orderId);
        }
        else if ([funcName isEqualToString:BCORE_FUNC_PAY]) { // 支付回调,注意、部分渠道支付是不会有回调的
            NSLog(@"********支付结果回调********");
            if(code == BCORE_SUCCESS){
                NSLog(@"支付成功");
            }
            else {
                NSLog(@"支付失败,code =%d ,原因是 %@",code, msg);
            }
        }
    }
}

日志打印:

// 获取订单成功
moduleName : platform
funcName : payOrderId
result : 
{
    "msg" : "获取订单号成功",
    "data" : "OS_ZXLX97IK1B98RDL8L",
    "code" : 1
}
// 支付结束
moduleName : platform
funcName : pay
result : 
{
    "msg" : "支付成功",
    "code" : 1
}

附录

常量字符串 实际字符串 描述
BCORE_MODULE_PLATFORM platform 平台模块
BCORE_FUNC_PAY pay 打开支付页面
BCORE_FUNC_PAY_ORDER_ID payOrderId 获取订单号回调方法
BCORE_KEY_PAY_ORDER_ID orderId 支付订单号 key
BCORE_KEY_PRICE price 充值金额
BCORE_KEY_PRODUCT_ID productId 商品 ID
BCORE_KEY_PRODUCT_NAME productName 商品名称
BCORE_KEY_PRODUCT_DESC productDesc 商品描述
BCORE_KEY_POINT_RATE pointRate 现实货币与游戏币兑换比例,如 1:10,则填 10
BCORE_KEY_POINT_NAME pointName 游戏货币名称,如元宝
BCORE_KEY_ORDER_TITLE orderTitle 订单标题