3.3.7
0.59.8
ذكري المظهر
عندما أطلب عملية شراء ، فأنا أتحقق من صحة الإيصال على الخادم الخاص بي ، وإذا فشلت عملية التحقق ، فأنا أريد أن أكون قادرًا على إلغاء عملية الشراء يدويًا ، بدلاً من وظيفة PurchaseUpdatedListener التي يتم تشغيلها في كل مرة ، إذا لم تقم باستدعاء الإيصال أو الشراء المستهلك.
عند عدم الانتهاء من الشراء ، لا يمكنني إلغاء عملية الشراء المعلقة. على نظام Android ، يجب أن أنتظر حتى يتم إلغاؤه تلقائيًا.
جهاز حقيقي
قم بالشراء ولا تطلب إقرار الشراء أو الشراء الاستهلاكي.
حتى نتيجة الفشل ، لا يزال يتعين عليك استدعاء acknowledgePurchase
و consumePurchase
للمعاملة المنتهية. أنت فقط لا تتابع المنطق مثل عدم إعطاء مكافأة على قاعدة البيانات الخاصة بك. أيضًا ، يجب عليك consmePurchase
حتى لا يبقى في تطبيقك.
hyochan إذا
tmjordan أوه ، أرى ما تعنيه. ماذا لو تقدمت بالمنطق بمكافأة إذن؟
hyochan عندما يشتري المستخدم منتجًا ، يتم إرسال الإيصال المقدم إلى خوادم Google للتحقق من صحة الإيصال والحصول على حالة الشراء (إذا تمت الموافقة على الدفع أو تعليقه أو إلغاؤه).
لنفترض أن لدي خطأ أثناء عملية التحقق لا يأتي من خادم google (الواجهة الخلفية الخاصة بي على سبيل المثال) ، لذلك لا يمكنني التحقق من صحة الإيصال وأريد إلغاء الشراء يدويًا بدلاً من الانتظار حتى يتم إلغاؤه بواسطة google ( خلال ذلك الوقت لا يمكنني إجراء عملية شراء أخرى) إذا لم أتصل بـ aknowledgepurchase أو الاستهلاك.
لا أعرف ما إذا كان ذلك ممكنًا ، فربما تكون هذه هي الطريقة التي تعمل بها عملية الشراء على google.
سيكون من الرائع أن نلغي يدويًا عملية شراء لم يتم الإقرار بها أو استهلاكها بعد. في هذا السيناريو ، سيتم رد أموال المستخدم إذا تمت الموافقة على الدفع.
بدلاً من تشغيل عملية الشراء نفسها في كل مرة حتى يتم إلغاؤها بواسطة Google.
tmjordan شكرا pending
. أعتقد أنه لا يجب حتى تحصيل رسوم مشتريات pending
عند acknowledged
بل يجب إزالتها. نأمل أن نتمكن من الاطلاع على مزيد من التفاصيل حول أي تجارب أخرى.
hyochan ، هل هناك وظيفة مثل تلك على iOS ، لإلغاء عملية شراء لم تكتمل من خلال الاتصال بـ finishTransactionIOS
ثم إزالة هذا الشراء من سجل الشراء. لا أعرف ما إذا كانت هناك طريقة أخرى للتحقق مما إذا كان الاشتراك لا يزال نشطًا ، ولكن ما أفعله الآن هو التحقق من تاريخ انتهاء الصلاحية لآخر معاملة في سجل الاستلام. لذلك إذا لم تكتمل عملية الشراء ، فأنا لا أرغب في تسجيلها في سجل الشراء. لسوء الحظ في الوقت الحالي ، هذا بالضبط ما يحدث. وعلى عكس نظام Android ، لن يتم إلغاء عملية الشراء غير المكتملة بعد مرور بعض الوقت ولن يتوقف إطلاقها أبدًا عن طريق purchaseUpdateListener
.
لذلك لدي نفس المشكلة على نظامي iOS و android ، فأنا بحاجة إلى إلغاء عملية شراء لم تكتمل. وعلى وجه التحديد على نظام iOS ، عدم تسجيل هذا الشراء في السجل إلا إذا كانت هناك طريقة أكثر فاعلية للتحقق من صحة الاشتراك.
أود التعامل مع سيناريو مشابه
purchaseUpdateListener
عدة مرات حتى يتم استدعاء finishTransactionIOS ولكن هذه ليست النتائج المرغوبة. يجب إلغاء الصفقة في هذه المرحلة.هل هناك طريقة لإلغاء الصفقة.
التعليق الأكثر فائدة
hyochan ، هل هناك وظيفة مثل تلك على iOS ، لإلغاء عملية شراء لم تكتمل من خلال الاتصال بـ
finishTransactionIOS
ثم إزالة هذا الشراء من سجل الشراء. لا أعرف ما إذا كانت هناك طريقة أخرى للتحقق مما إذا كان الاشتراك لا يزال نشطًا ، ولكن ما أفعله الآن هو التحقق من تاريخ انتهاء الصلاحية لآخر معاملة في سجل الاستلام. لذلك إذا لم تكتمل عملية الشراء ، فأنا لا أرغب في تسجيلها في سجل الشراء. لسوء الحظ في الوقت الحالي ، هذا بالضبط ما يحدث. وعلى عكس نظام Android ، لن يتم إلغاء عملية الشراء غير المكتملة بعد مرور بعض الوقت ولن يتوقف إطلاقها أبدًا عن طريقpurchaseUpdateListener
.لذلك لدي نفس المشكلة على نظامي iOS و android ، فأنا بحاجة إلى إلغاء عملية شراء لم تكتمل. وعلى وجه التحديد على نظام iOS ، عدم تسجيل هذا الشراء في السجل إلا إذا كانت هناك طريقة أكثر فاعلية للتحقق من صحة الاشتراك.