尝试使用AppsFlyer的SDK进行应用内购买服务器收据验证。在SKStoreKit的validateAndTrackInAppPurchase
回调中调用了completeTransaction:
方法。但是,它失败,并且总是返回以下响应。
{
environment = Sandbox;
status = 21004;
}
21004
的回答是The shared secret you provided does not match the shared secret on file for your account.
但是我对这个shared secret
[[AppsFlyerTracker sharedTracker] validateAndTrackInAppPurchase:productId price:priceString
currency:@"USD"
transactionId:transaction.transactionIdentifier
additionalParameters:@{@"test": @"val" , @"test1" : @"val 1"}
success:^(NSDictionary *result){
NSLog(@"Purchase succeeded And verified!!! response: %@", result[@"receipt"]);
} failure:^(NSError *error, id response) {
NSLog(@"response = %@", response);
if([response isKindOfClass:[NSDictionary class]]) {
if([response[@"status"] isEqualToString:@"in_app_arr_empty"]){
// retry with 'SKReceiptRefreshRequest' because
// Apple has returned an empty response
// <YOUR CODE HERE>
}
} else {
//handle other errors
return;
}
}];
答案 0 :(得分:1)
您知道Auto-Renewable Subscription
要求App-Specific Shared Secret
,
请参见appstoreconnect.apple.com
-> My Apps
-> Features
标签-> In-App Purchases
-> Auto-Renewable Subscription
项目部分:
共享机密看起来像:e21e428f20db4d6d90c9192b9b7b2a75
1)21004
表示您尝试测试自动更新订阅,并且AppsFlyer没有共享密钥。
请联系support@appsflyer.com获取更多详细信息。
如果您不使用Auto-Renewable Subscription
,但仍然收到此错误,该怎么办:21004
:
Apple在沙盒模式下进行测试存在一些问题。尝试创建一个新的测试者帐户,然后再次进行测试。过去,一旦您使用帐户A
来测试Auto-Renewable Subscription
,其他所有尝试测试其他类型购买的尝试,例如使用帐户A
进行的消耗性,非消耗性,非续订订阅-Apple返回相同的错误21004
。
希望它可以为您提供帮助