React-native-iap: validateReceiptIos selalu mengembalikan nilai salah

Dibuat pada 15 Agu 2018  ·  11Komentar  ·  Sumber: dooboolab/react-native-iap

Versi react-native-IAP

2.0.0-alpha3
(Saya mencoba 1.1.5 juga, masalah yang sama)

Platform yang Anda hadapi kesalahan (IOS atau Android atau keduanya?)

iOS

Perilaku yang diharapkan

validateReceiptIos mengembalikan 0/1 / true untuk tanda terima yang valid

Perilaku sebenarnya

validateReceiptIos selalu mengembalikan nilai salah

Lingkungan yang diuji (Emulator? Perangkat Nyata?)

Perangkat nyata, toko aplikasi kotak pasir

Langkah-langkah untuk mereproduksi perilaku

Saya berhasil melakukan pembelian langganan yang dapat diperpanjang secara otomatis, dan menerima tanda terima transaksi. Ketika saya mencoba untuk memvalidasi ini di iOS menggunakan validateReceiptIos (recehanBody, true, 55) saya selalu mendapatkan kembali false.

Jika saya mencatat JSON.stringify (res) saya mendapatkan:
{"status": 21004, "environment": "Sandbox"}

Ada masalah serupa di # 190

1️⃣ good first issue 📱 iOS 🙏 help wanted

Komentar yang paling membantu

@LinusU @dooboolab
Saya baru saja menambahkan rahasia bersama di ReceiveBody dan sekarang berhasil.
Mungkin saya melewatkannya di suatu tempat di dokumen? Atau bukankah seharusnya hal itu terjadi?

  const receiptBody = {
        'receipt-data': product.transactionReceipt,
        'password': '*********'
      };

(masih menggunakan versi 2.0.0-alpha3)

Semua 11 komentar

Di baris mana Anda memasukkan log? 🤔

juga, versi React Native apa yang Anda jalankan?

@abdul_cahyadi . Harus diperbaiki di # 190. Bisakah Anda membagikan beberapa kode?

"bereaksi": "^ 16.3.2"
"react-native": "^ 0.55.3"

``
validate = async (product) => {
coba {
console.log (produk);

  const receiptBody = {
    'receipt-data': product.transactionReceipt,
  };
  console.log(receiptBody);

  const result = await RNIap.validateReceiptIos(receiptBody, true, 55);
  console.log(result);

} catch(err) {
  console.warn(err.code, err.message);
  Alert.alert(err.message);
}

};

``

@fabianunger Bisakah Anda mencoba versi ini dan melihat apakah

npm install LinusU/react-native-iap#ios-validate

@LinusU @dooboolab
Saya baru saja menambahkan rahasia bersama di ReceiveBody dan sekarang berhasil.
Mungkin saya melewatkannya di suatu tempat di dokumen? Atau bukankah seharusnya hal itu terjadi?

  const receiptBody = {
        'receipt-data': product.transactionReceipt,
        'password': '*********'
      };

(masih menggunakan versi 2.0.0-alpha3)

@LinusU
Saya mengujinya juga dengan versi Anda: Hasil yang sama.
Sebagai tanggapan, saya mendapatkan {"status": 21004, "environment": "Sandbox"}.

Bekerja dengan menambahkan rahasia bersama sebagai 'kata sandi' di dalam badan penerima. Secara umum: Apakah ini cara yang biasa?

@fabianunger Anda melakukannya dengan benar. Untuk informasi lebih lanjut, ref di sini. Akan lebih baik untuk memperbarui dokumen dengan keras.

Apa itu shared secret dan di mana saya bisa menemukannya?

Apa itu shared secret dan di mana saya bisa menemukannya?

https://www.appypie.com/faqs/how-can-i-get-shared-secret-key-for-in-app-purchase

Validasi Penerimaan dalam Mode Produksi yang mengembalikan {status: 21007}, adakah yang bisa membantu mw dengan ini.

Terima kasih sebelumnya

Lihat disini:

https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html

"21007: Tanda terima ini berasal dari lingkungan pengujian, tetapi telah dikirim ke lingkungan produksi untuk verifikasi. Kirimkan ke lingkungan pengujian sebagai gantinya."

gunakan alamat ini untuk verifikasi lingkungan pengujian: https://sandbox.itunes.apple.com/verifyReceipt

Apakah halaman ini membantu?
0 / 5 - 0 peringkat