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 | 订单标题 |