Laravel માં BayarCash ને યોગ્ય રીતે સેટઅપ કરવું

જો તમે મલેશિયન માર્કેટ માટે SaaS બનાવો છો, તો તમને અંતે FPX ની જરૂર પડશે. BayarCash એક સામાન્ય પસંદગી છે.

SDK સમસ્યા નથી. સમસ્યા તમારી આર્કિટેક્ચર (architecture) છે. જો તમે કંટ્રોલર (controller) માંથી SDK ને કોલ કરો છો અથવા તમારા વ્યુઝ (views) માં સ્ટેટસ કોડ્સ હાર્ડકોડ કરો છો, તો તમને પ્રોડક્શનમાં સમસ્યાઓનો સામનો કરવો પડશે.

મેં ત્રણ અલગ-અલગ Laravel એપ્સમાં BayarCash નો ઉપયોગ કર્યો છે. અહીં એ પેટર્ન છે જે દર વખતે કામ કરે છે.

માસ્ટર કરવા માટેના મુખ્ય શબ્દો

  • Portal: તમારી મર્ચન્ટ ચેકઆઉટ કોન્ફિગ. portal_key નો ઉપયોગ કરો.
  • API Token: આ તમારા આઉટગોઇંગ કોલ્સને પ્રમાણિત (authenticate) કરે છે.
  • Secret Key: આ તમારા પેલોડ્સ (payloads) પર સાઇન કરે છે અને વેબહુક્સ (webhooks) ને વેરિફાય કરે છે. આને સુરક્ષિત રાખો.
  • Payment Intent: તમે ચાર્જ પોસ્ટ કરો છો, URL મેળવો છો, અને યુઝરને રીડાયરેક્ટ કરો છો.
  • Channel: હંમેશા રો (raw) નંબર્સને બદલે SDK કોન્સ્ટન્ટ્સ (constants) નો ઉપયોગ કરો.

તમારા કોડનું માળખું સારી રીતે બનાવો

તમારા ડોમેન કોડમાં ક્યારેય રો (raw) BayarCash પેલોડ ન હોવો જોઈએ. તમારે ત્રણ લેયર્સની જરૂર છે:

  • એક થિન ક્લાયન્ટ રેપર (thin client wrapper): આ કોન્ફિગ હેન્ડલ કરે છે અને ટાઇપ્ડ મેથડ્સ (typed methods) પૂરા પાડે છે.
  • એક ગેટવે (gateway): આ ઇન્ટરફેસ (interface) લાગુ કરે છે અને તમારી ડોમેન ભાષામાં વાત કરે છે.
  • એક ફેક્ટરી (factory): આ એક્ટિવ ગેટવે પસંદ કરે છે જેથી તમે સરળતાથી BayarCash ને Stripe સાથે બદલી શકો.

ફેક ગેટવે (Fake Gateway) બાઈન્ડ કરવું

જો તમે API ટોકન ન આપો, તો તમારા સર્વિસ કન્ટેનરમાં ફેક પ્રોવાઈડર (Fake provider) બાઈન્ડ કરો. આ તમારા ટેસ્ટને નેટવર્ક વગર ચલાવવાની મંજૂરી આપે છે અને તમારા લોકલ બિલ્ડ્સને એક્ટિવ બિલિંગ વગર ચલાવવા દે છે.

વેબહૂક (Webhook) માટે શ્રેષ્ઠ પદ્ધતિઓ

વેબહૂક એ તમારા સત્યનો સ્ત્રોત (source of truth) છે. પ્રોડક્શનમાં મુશ્કેલીઓ ટાળવા માટે આ નિયમોનું પાલન કરો:

  • CSRF મુક્તિ: તમારા વેબહૂક રૂટને CSRF પ્રોટેક્શનને બાયપાસ કરવું આવશ્યક છે.
  • સિગ્નેચર વેરિફાય કરો: બીજું કંઈ પણ કરતા પહેલા હંમેશા સિગ્નેચર વેરિફાય કરો.
  • 200 નો નિયમ: એકવાર તમે સિગ્નેચર વેરિફાય કરી લો, પછી 2xx રિસ્પોન્સ આપો.
  • રીટ્રાય (Retries) ટાળો: જો તમે 500 એરર આપશો, તો BayarCash તમારા વેબહૂકને 40 વખત ફરીથી પ્રયાસ કરશે. આ તમારા સર્વરને ક્રેશ કરી શકે છે. એરર્સ લોગ કરો, પરંતુ તેમ છતાં 200 રિસ્પોન્સ આપો.
  • Idempotency: ખાતરી કરો કે તમારું લોજિક ડુપ્લીકેટ ઓર્ડર બનાવ્યા વિના એક જ વેબહૂકને બે વાર હેન્ડલ કરી શકે છે.

સફળતા માટે ચેકલિસ્ટ

• કોરિલેશન કી તરીકે order_number નો ઉપયોગ કરો. તેને 30 અક્ષરોથી ઓછું રાખો. • યુઝરને રીડાયરેક્ટ કરતા પહેલા પેન્ડિંગ લોકલ રેકોર્ડ સેવ કરો. • મુખ્ય સત્તા તરીકે સર્વર-ટુ-સર્વર કોલબેકનો ઉપયોગ કરો. • રિકોન્સિલિએશન (reconciliation) માટે સેફ્ટી નેટ તરીકે રિટર્ન URL નો ઉપયોગ કરો. • ઇન્ટિજર સ્ટેટસ કોડ્સને તરત જ તમારા પોતાના Enums સાથે મેપ કરો.

પેમેન્ટ ઇન્ટિગ્રેશન વાસ્તવિક પૈસા સાથે જોડાયેલ છે. તમારા સિગ્નેચર વેરિફિકેશન અને આઈડેમપોટન્સી (idempotency) ને અન્ય કોઈપણ વસ્તુ કરતા વધુ ટેસ્ટ કરો.

સ્ત્રોત: https://dev.to/nasrulhazim/setting-up-bayarcash-fpx-in-laravel-the-right-way-4b2n