Appearance
支付相关
WARNING
支付接口中的参数,请不要传空值,请按实际值传入,否则影响数据的统计。
支付
当玩家点击游戏内商品充值项时,调用支付接口。 请在UI主线程中调用该接口。
objc
UG_PayData* data = [[UG_PayData alloc] init];
data.cpOrderID = [self currentTimeStamp]; //游戏自己的订单号
data.payNotifyUrl = @""; //支付成功,SDK通知给游戏服务器的回调地址,如果不传,读取SDK后台配置的地址
data.extra = @"test"; //扩展数据,SDK回调通知给游戏服务器的时候,原样返回
data.price = 100; //金额, 单位:分
data.currency = @"CNY"; //货币单位,默认CNY
data.productID = @"2"; //游戏中商品ID,需要在SDK后台配置游戏中商品ID和AppStore后台配置的商品ID
data.productName = @"测试商品"; //商品名称
data.productDesc = @"购买500元宝"; //商品描述
data.roleID = @"1"; //角色ID
data.roleName = @"test_role_1"; //角色名称
data.roleLevel = @"1"; //角色等级
data.vip = @"1"; //角色VIP
data.serverID = @"1"; //服务器ID
data.serverName = @"test_sever_1"; //服务器名称
[[UGSDKPlatform sharedInstance] pay:data];
UG_PayData对象的结构说明如下:
参数名称 | 参数类型 | 参数说明 |
---|---|---|
productID | String | 充值商品ID,游戏内的商品ID |
productName | String | 商品名称,比如100元宝,500钻石... |
productDesc | String | 商品描述,比如 充值100元宝,赠送20元宝 |
price | int | 充值金额(单位:分) |
currency | String | 货币单位,固定值CNY |
cpOrderID | String | 游戏订单号,最大长度64字符 |
serverID | String | 玩家所在服务器的ID,不要为空 |
serverName | String | 玩家所在服务器的名称,不要为空 |
roleID | String | 玩家角色ID,不要为空 |
roleName | String | 玩家角色名称,不要为空 |
roleLevel | String | 玩家角色等级,不要为空 |
vip | String | 玩家vip等级 |
payNotifyUrl | String | 游戏服务器支付回调地址,SDK支付成功,异步通知该地址,如果不设置,需要提供回调地址,配置到SDK后台 |
extra | String | 自定义数据, 支付回调通知给游戏服务器时,原封不动返回该值 |
处理支付回调事件
当渠道SDK支付成功或失败时, 聚合SDK会通过初始化时设置的UGSDKDelegate->OnEventWithCode
,通知给游戏层:
objc
// 支付成功后回调
-(void) onUGPaySuccess:(NSString*)msg{
NSLog(@"sdk pay success");
}
// 支付失败后回调
-(void) onUGPayFailed:(NSString*)msg{
NSLog(@"sdk pay failed: %@", msg);
}
处理服务端发货通知
玩家在客户端支付成功后, 支付平台都会通知给SDK服务端。 接着, SDK服务端会按统一的协议通知给游戏服务器。
游戏服务器需要实现服务端API集成->支付回调通知协议,用来接收SDK的发货通知请求。
收到请求并验证通过后, 才能给玩家发放道具。