Native 在iOS上支付失败的问题,及临时解决方法

在LayaNative 2.0 上使用TS调用conchMarket.recharge方法,发起支付返回失败,输出报错如下:
Warning: This app is not entitled to use SKPayment requestData. requestData will not be sent.
[IAP] Transaction error: 无法连接到 iTunes Store 10
[IAP] SKPaymentTransactionStateFailed
经过调试发现IAPManager有如下代码
     SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:product];


NSMutableDictionary* dict = [[NSMutableDictionary alloc] init];
[dict setObject:sOrderID forKey:@"order_id"];
[dict setObject:sCallbackURL forKey:@"backurl"];
[dict setObject:self.gameAppID forKey:@"gameid"];
NSData* pData = [NSKeyedArchiver archivedDataWithRootObject:dict];

[b]payment.requestData = pData;[/b]
苹果官方文档(链接)中有明确提示 requestData参数:


 The default value is nil. If requestData is not nil, your payment request will be rejected.
--默认值为nil,如果requestData不是nil,您的支付请求将被拒绝。


目前我的解决方法是注释掉payment.requestData = pData这一行,支付可以进行。
 
但是Native在这里使用requestData的用意是:可以在回调中继续使用order_id等信息,以供服务器端验证receipt。
去掉这参数赋值后,会导致验证逻辑短路。
 
P.S. 不理解报Bug为啥非让传附件,附件与内容无关
 
已邀请:

Laya_Aaron

赞同来自: YodaYu

conchMarket 因为一些原因被弃用,  由于内部的一些命名会触发苹果的审核机制会被拒绝,所以支付需要用二次开发用原生方法接入。

该问题目前已经被锁定, 无法添加新回复

商务合作
商务合作