React-native-iap: إن ValidateReceiptIos بإرجاع القيمة false دائمًا

تم إنشاؤها على ١٥ أغسطس ٢٠١٨  ·  11تعليقات  ·  مصدر: dooboolab/react-native-iap

نسخة من رد فعل - أصلية - IAP

2.0.0 ألفا 3
(جربت 1.1.5 أيضًا ، نفس المشكلة)

المنصات التي واجهت الخطأ فيها (IOS أو Android أو كليهما؟)

iOS

سلوك متوقع

تُرجع ValidateReceiptIos 0/1 / true للإيصالات الصالحة

السلوك الفعلي

إن ValidateReceiptIos بإرجاع القيمة false دائمًا

بيئة اختبار (محاكي؟ جهاز حقيقي؟)

جهاز حقيقي ، متجر تطبيقات الحماية

خطوات إعادة إنتاج السلوك

يمكنني إجراء عمليات شراء اشتراك متجدد تلقائيًا بنجاح ، واستلام إيصال المعاملة. عندما أحاول التحقق من صحة ذلك على iOS باستخدام validateReceiptIos (إيصال استلام ، صحيح ، 55) يتم إرجاعي دائمًا كاذب.

إذا قمت بتسجيل JSON.stringify (الدقة) ، فسأحصل على:
{"الحالة": 21004، "البيئة": "Sandbox"}

كانت هناك مشكلة مماثلة في # 190

1️⃣ good first issue 📱 iOS 🙏 help wanted

التعليق الأكثر فائدة

تضمين التغريدة
لقد أضفت للتو السر المشترك في الاستلام بودي والآن أصبح اللحامات للعمل.
ربما فاتني للتو في مكان ما في المستندات؟ أم أن هذه ليست الطريقة التي من المفترض أن تحدث؟

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

(ما زلت تستخدم الإصدار 2.0.0-alpha3)

ال 11 كومينتر

في أي سطر تقوم بإدخال السجل؟ 🤔

أيضًا ، ما هو إصدار React Native الذي تستخدمه؟

تضمين التغريدة يجب أن تكون ثابتة في # 190. هل يمكنك مشاركة بعض الرموز؟

"تفاعل": "^ 16.3.2"
"تفاعل أصلي": "^ 0.55.3"

""
التحقق من صحة = غير متزامن (المنتج) => {
محاولة {
console.log (المنتج) ؛

  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 هل يمكنك تجربة هذا الإصدار ومعرفة ما إذا كان يمنحك رسالة خطأ أكثر تفصيلاً؟

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

تضمين التغريدة
لقد أضفت للتو السر المشترك في الاستلام بودي والآن أصبح اللحامات للعمل.
ربما فاتني للتو في مكان ما في المستندات؟ أم أن هذه ليست الطريقة التي من المفترض أن تحدث؟

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

(ما زلت تستخدم الإصدار 2.0.0-alpha3)

تضمين التغريدة
لقد اختبرت ذلك أيضًا مع نسختك: نفس النتيجة.
ردًا على ذلك ، تلقيت {"الحالة": 21004 ، "البيئة": "Sandbox"}.

يعمل عن طريق إضافة السر المشترك كـ "كلمة مرور" داخل جسم الإيصال. بشكل عام: هل هذه هي الطريقة المعتادة على أي حال؟

fabianunger لقد فعلت ذلك بشكل صحيح. لمزيد من المعلومات المرجع هنا. سيكون من الجيد تحديث الوثيقة الصعبة.

ما هو shared secret وأين يمكنني العثور عليه؟

ما هو shared secret وأين يمكنني العثور عليه؟

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

تحقق من صحة الاستلام في وضع الإنتاج بإرجاع {status: 21007} ​​، هل يمكن لأي شخص أن يساعد mw في هذا.

شكرا مقدما

انظر هنا:

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

"21007: هذا الإيصال من بيئة الاختبار ، ولكن تم إرساله إلى بيئة الإنتاج للتحقق منه. أرسله إلى بيئة الاختبار بدلاً من ذلك."

استخدم هذا العنوان للتحقق من بيئة الاختبار: https://sandbox.itunes.apple.com/verifyReceipt

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات