0
앱 영수증을 확인하는 동안 계속 21002 오류 (잘못된 형식)가 표시됩니다. 그러나 동일한 PHP 코드를 사용하여 트랜잭션 영수증을 확인하는 것이 좋습니다.원격 확인 ios 7.0+ 앱 영수증은 21002를 반환하지만 거래 영수증과 함께 작동합니다.
NSUrl receiptURL = NSBundle.MainBundle.AppStoreReceiptUrl;
NSData receipt = NSData.FromUrl(receiptURL);
String receiptData = receipt.GetBase64EncodedString(NSDataBase64EncodingOptions.None);
sendToBackend(receiptData);
PHP :
$endpoint = 'https://sandbox.itunes.apple.com/verifyReceipt';
//$app_rec_data is receiptData from C#, it is base64 encoded
$receipt = json_encode(["receipt-data" => $app_rec_data]);
$ch = curl_init($endpoint);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $receipt);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
이전 7.0 스타일의 거래 영수증 :
RestoreTransaction 콜백에서 자 마린 C 번호 (목적-C에서와 동일한 코드)에 나는 샌드 박스 응용 프로그램 영수증을받을public async void CompleteTransaction(SKPaymentTransaction transaction)
{
var receipt = transaction.TransactionReceipt.GetBase64EncodedString(NSDataBase64EncodingOptions.None);
sendToBackend(receiptData);
}
동일한 PHP 코드로 Apple은 성공을 돌려줍니다. 저는 SO와 Apple docs에서 하루 종일 읽었습니다. 그러나 모든 내용은 괜찮아 보이지만 새로운 앱 영수증은 항상 21002를 반환합니다.