برمجة

اشتراك داخل التطبيق: RevenueCat

افحص منتج Play عبر entitlement. مفتاح أندرويد يبدأ بـ goog_.

كل الدروس · دروس جافاسكريبت: تعلّم من الصفر

ثلاث كلمات

RevenueCat موجود لفحص دفع Play وApp Store من لوحة واحدة. التطبيق لا يكلم المتجر مباشرة، بل يتكلم مع SDK الخاص به. Product هو معرّف الاشتراك في Play، مثل monthly_pro. Entitlement هو مفتاح الدفع، مثل pro_access. إذا كان نشطاً وقف في القائمة. Offering هي مجموعة الحزم التي تُعرض للمستخدم. السعر يتغير في اللوحة لا في الكود.

وصله

في Play Console، تحت Monetize ثم Subscriptions، أنشئ اشتراكاً وأعطه معرّفاً. افتح مشروعاً في RevenueCat. خذ JSON لحساب الخدمة من Google Cloud وارفعه إلى اللوحة. هذا الملف سر: لا تضعه على GitHub. ثم اكتب معرّف المنتج في قسم Products. في التطبيق ثبّت الحزمة ونفّذ sync. مفتاح أندرويد يبدأ بـ goog_. مفتاح Apple يبدأ بـ appl_. لا تكتب مفتاح Apple في أندرويد.

npm install @revenuecat/purchases-capacitor
npx cap sync

افحص واشتر

configure تُستدعى مرة حين يفتح التطبيق. getCustomerInfo يُظهر entitlement النشط. يجب أن يطابق الاسم اللوحة، وفرق الحرف يُحسب. الحزمة تأتي من offering، أنت لا تكتب السعر. الإلغاء هو userCancelled. لا تجرب ببطاقة حقيقية. أضف حساب الاختبار إلى قائمة License testing في Play.

import { Purchases } from "@revenuecat/purchases-capacitor";

await Purchases.configure({ apiKey: "goog_ACAR" });

const { customerInfo } = await Purchases.getCustomerInfo();
const aktiv = customerInfo.entitlements.active["pro_access"];

const offerings = await Purchases.getOfferings();
const paket = offerings.current?.availablePackages?.[0];
if (paket) {
  const { customerInfo: sonra } = await Purchases.purchasePackage({ aPackage: paket });
  const aldi = sonra.entitlements.active["pro_access"];
}

أسئلة

ما الفرق بين goog_ وappl_؟ goog_ لأندرويد. appl_ لـ Apple. مفتاح المنصة الخطأ يرفض الطلب.

لماذا يبقى pro_access غائباً؟ الاسم في اللوحة والاسم في الكود ليسا واحداً. الحرف الكبير فرق أيضاً.

أين لا يوضع ملف JSON؟ على GitHub وداخل التطبيق. ارفعه فقط إلى لوحة RevenueCat. مفتاح goog_ يبقى في التطبيق، وهو مفتاح عام.

المؤلف: Nibras Code