3.3 支付接口(必须接入)

功能说明:

研发方可以直接调用该接口来让玩家完成产品的支付。支付包括苹果支付以及第三方支付。切换的逻辑由SDK方运营后台控制。一般为提审时为苹果支付,提审成功后是否切换第三方支付,由游戏以及SDK方运营共同决定。研发只用调用该接口即可,具体的业务逻辑SDK内部会处理。研发不要通过该接口的回调成功与否来作为游戏内发货的依据,而要以SDK支付服务器的通知作为是否发货的依据。

接口形式:

-(void)payWithRequester:(RNPayRequester *)requester
         completionHandler:(RNPayNowCompletionHandler)handler;

接口参数:

requester:请求创建的对象,研发设置其属性传入,详见下图示例

requester中的属性详解:

viewcontroller:当前活动的UIViewController (必须)

productid:苹果itunesconnect应用管理后台上定义的支付产品ID (必须)

uid:当前玩家R2UID (必须)

roleid : 当前玩家游戏内的角色id (必须)

rolename : 当前玩家游戏内的角色名称(必须)

rolelevel:当前玩家在游戏内的等级(必须)

serverid : 当前玩家所处服务器唯一标示ID (必须)

enable:是否允许第三方支付,默认YES (必须)

gamecno:游戏服分配的支付订单号(必须)

isvertica: 是否是竖直屏幕,应用为横屏时为NO,应用为竖屏时为YES (必须)

productname:产品名称 (可选)

money:当前支付产品对应的人民币价格(必传)

extradata:支付可自定义额外数据,属于透传数据(可选)

usingLoadingView: 支付过程中是否需要显示加载框(可选)

handler:接口回调(必须)

接口示例:

RNPayRequester *requester = [[RNPayRequester alloc]init];
    requester.viewcontroller = self;
    requester.productid = @"163";
    requester.productname = @"diamos";
    requester.money = @"0.99";
    requester.uid = @"65";
    requester.roleid = @"roleid";
    requester.rolename = @"guanyu";
    requester.rolelevel = @"13";
    requester.serverid = @"008";
    requester.gamecno = @"no00988";
    requester.extradata = @"extradata";
    requester.enable = NO;
    requester.isvertica = YES;
    requester.usingLoadingView = YES;

[[RNSDKApi sharedInstance]payWithRequester:requester completionHandler:^(int code, NSString *msg, NSDictionary *info) {
      if (code == RN_RESPONSE_SUCCESS_CODE) {
            //支付成功
            NSString *cno = [info objectForKey:@"cno"];// SDK方生成的订单号
            // 支付的类型,苹果支付为 “applepay” ,微信支付为"spH5",支付宝支付为"apH5"
            NSString *paytype = [info objectForKey:@"paytype"];
        }else if (code == RN_RESPONSE_CANCLE){
            //pay cancel
            NSLog(@"user cancel");
        }else{
            //pay error
            NSString *error = msg;
        }    
  }];

Last updated

Was this helpful?