کد تخفیف و لینک پرداخت
getDiscountedPaymentLinks در Kotlin و Flutter و validateDiscountCode در وب، انتخاب آفرینگ و تفاوت خروجی قیمت و لینک.
اعتبارسنجی کد تخفیف بهتنهایی خرید، مصرف کد یا تغییر قیمت کش نیست. مبلغ و مجوز تخفیف در شروع پرداخت دوباره توسط سرور محاسبه و کنترل میشوند.
Kotlin: فقط کد، خروجی لینک
ورودی فقط یک رشته کد است. کد نامعتبر یک نتیجه تجاری موفق با isValid == false است؛ شکست شبکه یا دیتابیس failure است. خروجی شامل وضعیت اعتبار، code، errorCode، درصد و paymentLinks واجد شرایط است. بازکردن لینک مجاز، flow موجود وب را ادامه میدهد؛ این متد کش آفرینگ را تخفیفخورده نمیکند.
Flutter: فرم ساده و Result
متد ساده getDiscountedPaymentLinks(code, offeringIdentifier: ...) مدل nullable میدهد. selector اختیاری و پیشفرض null است؛ فقط وب از آن برای انتخاب آفرینگ استفاده میکند. Android و iOS رفتار code-only لینکهای فعلی را حفظ میکنند؛ ارسال selector آنها را retarget نمیکند.
ساختار ValidateDiscountCodeData حفظ میشود: offering، code، isValid، errorCode و paymentLinks را متناسب با پلتفرم بررسی کنید. صرف success یا non-null بودن مدل به معنی معتبر بودن کد نیست.
Web: تخفیف آفرینگ انتخابشده برای placement
بدون شناسه، validateDiscountCode(code) آفرینگ جاری را میگیرد. با شناسه صریح، همان پیشنهاد بررسی میشود. شناسه خالی یا نامعتبر را به omission تبدیل یا با default retry نکنید. خروجی JS دارای discount و آفرینگ قیمتگذاریشده جداگانه است؛ all یا current اصلی SDK را با آن جایگزین نکنید.
در Flutter Web، شناسه selectedOffering.identifier را به getDiscountedPaymentLinksResult بدهید و از offering برگشتی و code در createCheckout استفاده کنید. InappifyPurchaseParams فلاتر ورودی discountCode ندارد؛ نمایش قیمت تخفیفی، کد را به پرداخت اضافه نمیکند. نمونه checkout فلاتر وب این مرحله را پوشش میدهد.
کارهایی که نباید انجام دهید
درصد یا مبلغ تخفیف را بهعنوان قیمت معتبر سمت سرور ارسال نکنید، خطای سرور را کد نامعتبر اعلام نکنید، آفرینگ متفاوت را پنهانی جایگزین نکنید و نتیجه validation را به یک سبد خرید مستقل از پکیج اصلی تبدیل نکنید.