• iOS 内购出现 返回 NSCocoaErrorDomain ErrorCode: 4097


      // OC 侧代码
    [_native setExternalInterface:@"startPayment" Callback:^(NSString* message) { NSString* str = [NSString stringWithFormat:@"Native %@ message: %@",cfunname, message]; NSData *data = [message dataUsingEncoding:NSUTF8StringEncoding]; NSError *error = nil; NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; if([SKPaymentQueue canMakePayments]){ NSLog(@"用户允许内购"); NSArray *product = [[NSArray alloc] initWithObjects:dic[@"good_id"], nil]; NSSet *nsset = [NSSet setWithArray:product]; SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:nsset]; request.delegate = self; [request start]; }else{ NSLog(@"用户不允许内购"); [self onPaymentState:[NSString stringWithFormat:@"{\"productId\": \"%@\",\"msg\":\"您没有开启内购功能\",\"code\": %d}",product_id,3]]; } }
       // JavaScript 侧代码 
      var msg : any = {}; msg.env = 0; msg.user_id = GlobalModel.getInstance().getHostPlayer().dbId; msg.good_id = goods_id; // 注意 这里类型是一个 number。 var that = this; platform.startPayment(msg).then(function (res) { console.log(res); }).catch(function (errMsg) { console.log("iosPay !!!!", errMsg); })

    Xcode 报错   NSCocoaErrorDomain   ErrorCode: -4097  connection to service on pid 0 named storekitservice

    排查了很久发现是传递的productIds参数的问题。报错时传递的数组内的元素类型是整数型,改为字符串就可以了。

    也就是  

    NSArray *product = [[NSArray alloc] initWithObjects:dic[@"good_id"], nil];
    改成
    NSArray *product = [[NSArray alloc] initWithObjects:[NSString stringWithFormat:@"%@", product_id] , nil];

    就可以了。
    在 JavaScript 层传过来的 number,在 OC 层 依然是 number, 就导致了这个问题。
    可以 在真机测试的时候 通过 Device 的 Open Console 查看真机日志 看到更多的错误的详细信息。

  • 相关阅读:
    防止跨域(jsonp详解)
    java-文件和I/O
    spring-AOP框架(基于AspectJ注解配置AOP)
    @RequestMapping、@Responsebody、@RequestBody和@PathVariable详解(转)
    spring-IOC容器(三)
    spring-IOC容器(二)
    spring-IOC容器(一)
    Spring4相关jar包介绍(转)
    Eclipse设置自动提示(转)
    java-环境安装及配置
  • 原文地址:https://www.cnblogs.com/lesten/p/15834286.html
Copyright © 2020-2023  润新知