ios – 应用程序内的应用程序采购收据验证

ios – 应用程序内的应用程序采购收据验证,第1张

概述我想在我的应用程序验证交易收据, 这是我的代码, - (void)recordTransaction:(SKPaymentTransaction *)transaction { NSData *receiptData = [NSData dataWithData:transaction.transactionReceipt]; NSString *encodedString 我想在我的应用程序中验证交易收据,

这是我的代码,

- (voID)recordTransaction:(SKPaymentTransaction *)transaction {    NSData *receiptData = [NSData dataWithData:transaction.transactionReceipt];    Nsstring *encodedString = [Base64 encode:receiptData];     NSURL *url = [NSURL URLWithString:@"https://sandBox.itunes.apple.com/verifyReceipt"];    ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:url];    [request setPostValue:encodedString forKey:@"receipt-data"];    [request setRequestMethod:@"POST"];    [request setDelegate:self];    [request startAsynchronous];}

我得到的输出:

{“status”:21002,“exception”:”java.lang.NullPointerException”}

有人可以帮我找到正确的收据验证吗?

解决方法 只为那些可能会发现有用的人.我注意到苹果已经更新了“应用内购买指南”,其中包含一些状态代码,用于自动续订订阅购买,但似乎也适用于此.

> 21000 App Store无法读取您提供的JsON对象.
> 21002收据数据属性中的数据格式错误.
> 21003收据无法验证.
> 21004您提供的共享密码与您帐户的文件共享密码不匹配.
> 21005收据服务器当前不可用.
> 21006此收据有效,但订阅已过期.当此状态代码返回到您的服务器时,收据数据也将作为响应的一部分进行解码和返回.
> 21007此收据是沙盒收据,但已发送到生产服务进行验证.
> 21008此收据是生产收据,但已发送给
沙箱服务进行验证.

重要提示:这里的非零状态代码仅适用于恢复有关自动续订订阅的信息.测试其他类型产品的响应时,请勿使用这些状态代码. (真?)

我希望这有助于作为参考.我被钉在21007.

苹果网站上的状态代码列表:https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html

总结

以上是内存溢出为你收集整理的ios – 应用程序内的应用程序采购收据验证全部内容,希望文章能够帮你解决ios – 应用程序内的应用程序采购收据验证所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1113454.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存