相关疑难解决方法(0)

iOS7 - 未在沙箱验证的收据 - 错误21002(java.lang.IllegalArgumentException)

我正在将应用程序从iOS6转换为iOS7.在我使用已弃用的transactionReceipt方法之前,我现在尝试使用推荐的方法来检索收据,然后在base 64中进行编码:

NSData *working = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]];
// Tried 64 or 76 chars/line and LF or CR line endings
NSString *receipt = [working base64EncodedStringWithOptions:kNilOptions];
Run Code Online (Sandbox Code Playgroud)

以上是代码中唯一的变化.以下是我验证它的方法,没有变化:

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue,
     ^{
         NSMutableString *url = [NSMutableString string];

         [url appendFormat:@"%@", WEB_SERVICE];
         [url appendFormat:@"receipt=%@", receipt];

         NSStringEncoding encoding;
         NSError *error = [NSError new];
         NSURL *URL = [NSURL URLWithString:url];
         NSString *json = [NSString stringWithContentsOfURL:URL usedEncoding:&encoding error:&error];

         // check json and error
         // ... code omitted
    }
Run Code Online (Sandbox Code Playgroud)

在服务器端,这是我用来验证收据的PHP代码,除了为任何错误尝试沙箱之外没有任何变化:

// Encode as …
Run Code Online (Sandbox Code Playgroud)

php sandbox objective-c in-app-purchase ios7

12
推荐指数
2
解决办法
1万
查看次数

标签 统计

in-app-purchase ×1

ios7 ×1

objective-c ×1

php ×1

sandbox ×1