Вы должны отправить квитанцию по адресу "https://sandbox.itunes.apple.com/verifyReceipt" во время тестирования в среде песочницы.
ките данные квитанции из свойства транзакции транзакции и закодируйте их с использованием кодировки base64.
Как я могу кодировать NSData, используя кодировку base64? Пожалуйста, дайте код для этого.
РЕДАКТИРОВАТЬ
Я это сделал. но теперь ответ
{exception = "java.lang.NullPointerException"; status = 21002;}
мой метод подтверждения получателя это
-(BOOL)verifyReceipt:(SKPaymentTransaction *)transaction
{
NSString *recieptString = [transaction.transactionReceipt base64EncodingWithLineLength:0];
NSLog(@"%@",recieptString);
ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://buy.itunes.apple.com/verifyReceipt"]]];
[request setPostValue:recieptString forKey:@"receipt-data"];
[request setPostValue:@"95140bdac98d47a2b15e8e5555f55d41" forKey:@"password"];
[request start];
NSDictionary* subsInfo = [[request responseString] JSONValue];
NSLog(@"%@",subsInfo);
return subscriptionEnabled;
}
где
NSString *recieptString = [transaction.transactionReceipt base64EncodingWithLineLength:0];
возвращает мне строку в кодировке base64.
Я тоже пробовал
NSString *recieptString = [transaction.transactionReceipt base64EncodingWithLineLength:[transaction.transactionReceipt length]];
но ответ такой же.
может кто-нибудь из вас, дайте мне знать, где я могу ошибаться.
Спасибо-