react native IAP : Подписка всегда возвращает статус: 21002 a

#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 не работает с отладочными сборками. Похоже, он работает только с тестовыми или производственными сборками