#ios #swift #react-native #in-app-purchase
Вопрос:
Я работаю над автоматической возобновляемой подпиской. Но каждый раз, когда я отправляюсь на проверку приема, это выдает мне ошибку 21002
const validateIOSReceipt = async (receipt) => {
const isTestEnvironment = __DEV__;
const receiptBody = {
'receipt-data': receipt,
password: DataConfig.IAP_SHARED_SECRET
};
console.log('receiptBody data',receiptBody)
try {
const validatedReceipt = await validateReceiptIos(
receiptBody,
isTestEnvironment,
);
console.log('receiptBody responce',validatedReceipt)
return validatedReceipt;
} catch (error) {
console.log(error);
return {};
}
};
{receipt-data: "MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwGggCSABIIBaDGCAWQwDwIBAAIBAQQHDAVYY29kZTALAgEBAgEBBAMCAQAwFQIBAgIBAQQNDAtjb20ubXRwLmFwcDANAgEDAgEBBAUMAzEuMDAQAgEEAgEBBAh4/vv/BwAAADAcAgEFAgEBBBS4diJApX5mLeCKV1vbdIl4IfQ7tTAKAgEIAgEBBAIWADAiAgEMAgEBBBoWGDIwMjEtMDUtMDdUMTA6MDg6NDArMDUzMDCBmQIBEQIBAQSBkDGBjTAMAgIGpQIBAQQDAgEBMB8CAgamAgEBBBYMFGNvbS5tdHAuYXBwLnRlYW1wYXNzMAwCAganAgEBBAMMATAwHwICBqgCAQEEFhYUMjAyMS0wNS0wNlQyMTo1OTowMVowHwICBqwCAQEEFhYUMjAyMi0wNS0wNlQyMTo1OTowMVowDAICBrcCAQEEAwIBADAiAgEVAgEBBBoWGDQwMDEtMDEtMDFUMDU6MzA6MDArMDUzMAAAAAAAAKCCA3gwggN0MIICXKADAgECAgEBMA0GCSqGSIb3DQEBCwUAMF8xETAPBgNVBAMMCFN0b3JlS2l0MREwDwYDVQQKDAhTdG9yZUtpdDERMA8GA1UECwwIU3RvcmVLaXQxCzAJBgNVBAYTAlVTMRcwFQYJKoZIhvcNAQkBFghTdG9yZUtpdDAeFw0yMDA0MDExNzUyMzVaFw00MDAzMjcxNzUyMzVaMF8xETAPBgNVBAMMCFN0b3JlS2l0MREwDwYDVQQKDAhTdG9yZUtpdDERMA8GA1UECwwIU3RvcmVLaXQxCzAJBgNVBAYTAlVTMRcwFQYJKoZIhvcNAQkBFghTdG9yZUtpdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANt/kDwscw/blyZLk7sK KEhPshh2STIXh91PtqT2zEakYC5v UMyzy7DkRiJvoEKbZJ52/gG YNaM0lbsN2CPVKC656dDzEqQuzz2IP 7S899uEXijrRw3x7Yus9Z wCTijbnvLJlAKGuGJ0XJ2CzlMy09uwLNft5W6uahdSnSr729BpX4Jjbo9Pc1wV9jt79Xad8iTBBzvCYh4Zc6B8o1y5wcabiYS9zKxDbs4kGsGxPwN5ZVQzZHIuiX0WMmM4XHbSkXzLRmWA1aBpkTudXdbU894rF26Pl9QK1wpjN3C1yoX3yK01 R4qK obafB2mgtZszPKQtQLOPC ZfEsECAwEAAaM7MDkwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAoQwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwMwDQYJKoZIhvcNAQELBQADggEBALIA4Dzx6OlivcDWHUCeV7k4kHd2UtKoS3BuuGeZ 7OKVZ/vHSi4XyrRc581Rze7RtN2EPLwaezNYplx WCKhEg4xL2LZyW5q2wzZa3Ywpp4SA/pzMEnDcbPZDxtgFkzjMo2BioRG41Jzgj/ZsBHKEvrWsErCVYspaoJA3syMdzohXhIzsDFEhFqDwyuLwXKb3pkfyAsdeZMsRLT/eMfXg19uFjXoHzkf2Orl5orwyrY0LLh1VoNORtvZyipEoPWh3htmb1eswrgmM726sOObWnrt0CBPYc9cFHRxF2Npdx/alga3mB2N1Ls/6wZXQwVL4oP9YnI1ysdHuwrkQWnPU8xggGPMIIBiwIBATBkMF8xETAPBgNVBAMMCFN0b3JlS2l0MREwDwYDVQQKDAhTdG9yZUtpdDERMA8GA1UECwwIU3RvcmVLaXQxCzAJBgNVBAYTAlVTMRcwFQYJKoZIhvcNAQkBFghTdG9yZUtpdAIBATANBglghkgBZQMEAgEFADANBgkqhkiG9w0BAQsFAASCAQCt9IrmodXgzpjw4hnJUNXBYNf2V7g X85J4fPvfUiNZeLZA 9n5vpVwnfLfdikUHiwxbXdCEPOaUDhIHIuwiOqnBtEKgILkf 0k6qQb30BkHXy/DBPomYim2xJ/zEU2zSkcgjCwbzcoAd7KukNP583AhIy8n0qpsIumGkWLrvtTnfjEbdhan cb9c3oXfQ7oxJJjKiASFU3Lml5TeSBLOUzi7Z6NbvqKn9 g4hoeqO1DL267aI4rUo9lO2FR9oti2qvwglfTjwjFwG7SxGeUlNcnX07C5yCejlrRo TfjIkio3D fgwRDVwPrYUm9wRJ8lZnVSkgYf2K48d4/wA2QWAAAAAAAA", 'password': "a56a9*****9b4bf5d1a6ddc9591a2"}
Ответ №1:
Похоже, что ваши данные о получении не поступают правильно в конце Apple:
21002 Данные в свойстве данные о поступлении были искажены или в службе возникла временная проблема. Пробовать снова.
Смотрите здесь все коды
Комментарии:
1. Я пытаюсь с 24 часов.. Что мне делать
2. Трудно сказать, основываясь на вашем текущем обрезанном коде. Что же
validateReceiptIos
делать?3. Прежде всего, я бы заверил, что данные о поступлении верны, используя один из бесконечных инструментов тестирования API или cURL для отправки данных о поступлении. Если данные о поступлении верны, я бы провел реинжиниринг там, где мой код не делает того, что должен.
4. validateReceiptIos-это метод react-native-iap
5. В соответствии с этим вопросом github.com/dooboolab/react-native-iap/issues/1127 реализация react-native не работает с отладочными сборками. Похоже, он работает только с тестовыми или производственными сборками