Rivya AI Docs

Rivya payment checkout گائیڈ

Rivya plan اور credit-pack checkout، Stripe redirects، /payment bridge، webhooks، billing updates، اور purchase checks سمجھیں۔

2026/04/28 کو آخری review

یہ payment checkout guide اس وقت استعمال کریں جب آپ کو سمجھنا ہو کہ Rivya میں plan یا credit pack خریدنے کے بعد کیا ہوتا ہے۔

Rivya میں payment کے بارے میں لوگ عموماً یہ غلط سمجھتے ہیں:

Stripe کا payment complete کرنا last step نہیں ہے۔ Product کو بھی catch up کر کے اس change کو correctly reflect کرنا ہوتا ہے۔

اسی لیے checkout flow Stripe پر end نہیں ہوتا، اور browser واپس آتے ہی بھی end نہیں ہوتا۔

Payment flow کے تین real stages ہیں

ابھی checkout کو سمجھنا آسان ہے اگر آپ اسے تین stages میں split کریں:

  1. Rivya checkout session create کرتا ہے
  2. user Stripe Checkout complete کرتا ہے
  3. Rivya product state کے دوبارہ trustworthy ہونے کا wait کرتا ہے

یہ third stage عین وہ وجہ ہے جس کے لیے /payment موجود ہے۔

Checkout کہاں سے start ہو سکتا ہے

Checkout اس وقت اُن places سے start ہوتا ہے جو user intent سے already match کرتے ہیں:

  • Pricing
  • /settings/billing
  • /settings/credits

اور دو main purchase shapes ہیں:

  • subscription plan checkout
  • one-time credit-pack checkout

یہ different commercial decisions ہیں، مگر پھر بھی same confirmation path میں converge کرتے ہیں۔

Plan checkout اور credit-pack checkout similar ہیں، مگر same نہیں

Plan checkout subscription-shaped ہے۔

Credit-pack checkout one-time wallet top-up جیسا ہے۔

یہ فرق اس لیے matter کرتا ہے کیونکہ payment کے بعد Rivya کو جاننا ہوتا ہے کہ اسے کیا refresh کرنا چاہیے:

  • subscription state
  • یا wallet state

اسی لیے same Stripe success moment پھر بھی آپ کو afterward different product surfaces پر واپس بھیج سکتا ہے۔

/payment آخر موجود کیوں ہے

/payment usual sense میں receipt page نہیں ہے۔

یہ processing bridge ہے۔

اس کا کام ہے:

  • Stripe session_id read کرنا
  • check کرنا کہ product-side payment record settle ہوا یا نہیں
  • ضرورت ہو تو short period کے لیے polling کرتے رہنا
  • پھر ہی آپ کو app کے right part میں redirect کرنا

یہ اسے content page کے بجائے state-synchronization page جیسا بناتا ہے۔

Product کے perspective سے payment “really done” کب ہوتی ہے؟

User کے point of view سے payment اس وقت complete محسوس ہوتی ہے جب Stripe کہتا ہے کہ یہ work کر گئی۔

Product کے point of view سے payment صرف اس وقت really complete ہے جب account state Rivya میں visibly updated ہو۔

اس کا عموماً مطلب ہے:

  • payment record paid یا completed marked ہے
  • subscription یا wallet effects visible ہیں
  • آپ stale state دیکھے بغیر safely billing یا credits پر واپس جا سکتے ہیں

یہی اصل وجہ ہے کہ product user کو فوراً app میں پھینکنے کے بجائے /payment پر wait کرتا ہے۔

/payment poll کرتا ہے پھر بھی webhooks کیوں matter کرتے ہیں

/payment Stripe webhooks کو replace نہیں کرتا۔

Webhooks durable backend state update کرنے کے لیے اب بھی بنیادی ہیں۔

/payment page اس لیے exists کرتا ہے تاکہ experience redirect سے پہلے wait کر سکے کہ وہ state enough reflected ہو گئی ہے جس پر trust کیا جا سکے۔

یہ فرق ہے:

  • “Stripe نے کچھ process کیا”
  • اور “Rivya اب اس change کو clearly reflect کر رہا ہے”

Payment کے بعد آپ کہاں جاتے ہیں

Return path جان بوجھ کر اس چیز سے tied ہے جو changed ہوئی۔

اگر purchase subscription-related تھی، تو آپ عموماً billing کی طرف واپس بھیجے جاتے ہیں۔

اگر purchase credit pack تھی، تو آپ عموماً credits کی طرف واپس بھیجے جاتے ہیں۔

یہ cosmetic routing نہیں ہے۔ یہ اس question سے match کرتا ہے جو users عام طور پر pay کرنے کے فوراً بعد پوچھتے ہیں:

  • کیا میرا plan update ہوا؟
  • یا کیا میرا wallet update ہوا؟

Timeout یا failure کا اصل مطلب کیا ہے

اگر /payment timeout یا fail ہو، تو اس کا مطلب automatic طور پر یہ نہیں کہ payment خود disappeared ہو گئی۔

زیادہ تر اس کا مطلب ان میں سے کوئی ہوتا ہے:

  • product-side payment record ابھی settle نہیں ہوا
  • redirect ایسی state کا wait کر رہا ہے جو ابھی catch up کر رہی ہے
  • اگر user کو بہت جلد redirect کیا جائے تو account page ابھی stale لگے گا

اسی لیے timeout state fake success state سے بہتر ہے۔ یہ user کو بتاتا ہے کہ product confirmation وہ حصہ ہے جو ابھی incomplete ہے۔

Payment واقعی land ہوئی یا نہیں check کرنے کا best طریقہ

Checkout کے بعد cleanest verification path یہ ہے:

  1. /payment کو اپنا flow finish کرنے دیں
  2. اگر purchase plan تھی تو /settings/billing check کریں
  3. اگر purchase pack تھی تو /settings/credits check کریں
  4. اگر account ابھی بھی out of sync لگے تو Notifications Center check کریں

یہ random pages refresh کر کے guess کرنے سے عموماً بہتر ہے۔

Payment account memory بھی بن جاتی ہے

Payment صرف checkout action نہیں ہے۔ یہ durable events کے ذریعے account history کا حصہ بھی بنتی ہے، جیسے:

  • subscription started
  • subscription renewed
  • payment failed
  • credit package added

اسی لیے یہاں notifications بھی matter کرتی ہیں۔ Stripe tab close کرنا account story کا end نہیں۔

Better mental model

Rivya checkout کے بارے میں سوچنے کا simplest طریقہ یہ ہے:

  • Stripe money movement handle کرتا ہے
  • /payment product-side re-entry handle کرتا ہے

اگر آپ ان دونوں roles کو الگ رکھیں تو پورا flow reason کرنا آسان ہو جاتا ہے۔

آگے پڑھیں

Checkout state checklist

جب purchase unfinished یا confusing لگے، تو check کریں:

  • Confirm کریں کہ Checkout کہاں سے started ہوا: public pricing، billing settings، یا credits settings۔
  • Check کریں کہ Stripe نے payment complete کر کے user کو /payment پر return کیا یا نہیں۔
  • ایک اور paid task شروع کرنے سے پہلے Rivya کو subscription، pack، invoice، اور wallet state refresh کرنے دیں۔
  • Subscriptions کے لیے billing pages اور packs یا wallet history کے لیے credits pages استعمال کریں۔
  • Browser redirect کو proof نہ سمجھیں کہ webhook اور account state already settled ہیں۔

Payment retry کرنے سے پہلے دوبارہ check کریں

اگر user stale plan، missing credits، duplicate Checkout windows، failed payment، یا successful Stripe receipt دیکھے جو Rivya میں ابھی reflected نہیں، تو payment retry کرنے سے پہلے recheck کریں۔

فہرست