Laravel-இல் BayarCash-ஐச் சரியாக அமைப்பது எப்படி

நீங்கள் மலேசியச் சந்தைக்காக SaaS உருவாக்குகிறீர்கள் என்றால், உங்களுக்குத் தேவைப்படும் ஒரு முக்கிய அம்சம் FPX. அதற்கு BayarCash ஒரு பொதுவான தேர்வாகும்.

SDK ஒரு பிரச்சனை அல்ல. பிரச்சனை உங்கள் கட்டமைப்பில் (architecture) உள்ளது. நீங்கள் ஒரு controller-லிருந்து SDK-ஐ அழைத்தாலோ அல்லது உங்கள் views-இல் status codes-களை நேரடியாகக் குறிப்பிட்டாலோ (hardcode), தயாரிப்புச் சூழலில் (production) சிக்கல்களைச் சந்திக்க நேரிடும்.

நான் மூன்று வெவ்வேறு Laravel செயலிகளில் BayarCash-ஐப் பயன்படுத்தியுள்ளேன். ஒவ்வொரு முறையும் சிறப்பாகச் செயல்படும் முறை இதோ.

தேர்ச்சி பெற வேண்டிய முக்கிய சொற்கள்

  • Portal: உங்கள் merchant checkout கட்டமைப்பு. portal_key-ஐப் பயன்படுத்தவும்.
  • API Token: இது உங்கள் வெளிச்செல்லும் அழைவுகளை (outgoing calls) அங்கீகரிக்கிறது.
  • Secret Key: இது உங்கள் payloads-களைக் கையொப்பமிடுகிறது மற்றும் webhooks-களைச் சரிபார்க்கிறது. இதைத் பாதுகாப்பாக வைத்திருக்கவும்.
  • Payment Intent: நீங்கள் ஒரு கட்டணத்தைப் பதிவிட்டு (post a charge), ஒரு URL-ஐப் பெற்று, பயனரைத் திசைதிருப்புகிறீர்கள் (redirect).
  • Channel: எண்களுக்குப் பதிலாக எப்போதும் SDK constants-களைப் பயன்படுத்தவும்.

உங்கள் குறியீட்டை (Code) சிறப்பாக வடிவமைக்கவும்

உங்கள் domain code ஒருபோதும் ஒரு மூல BayarCash payload-ஐ நேரடியாகக் காணக்கூடாது. உங்களுக்கு மூன்று அடுக்குகள் தேவை:

  • ஒரு மெல்லிய client wrapper: இது config-ஐக் கையாள்கிறது மற்றும் typed methods-களை வழங்குகிறது.
  • ஒரு gateway: இது ஒரு interface-ஐச் செயல்படுத்தி, உங்கள் domain மொழியில் பேசுகிறது.
  • ஒரு factory: இதுச் செயல்படும் gateway-ஐத் தேர்ந்தெடுக்கிறது, இதன் மூலம் நீங்கள் BayarCash-க்கு பதிலாக எளிதாக Stripe-ஐ மாற்றிக்கொள்ள முடியும்.

ஒரு Fake Gateway-ஐ இணைத்தல் (Binding)

நீங்கள் API token வழங்கவில்லை என்றால், உங்கள் service container-இல் ஒரு Fake provider-ஐ இணைக்கவும். இது இணையத் தொடர்பு (network) இல்லாமலேயே உங்கள் சோதனைகளை (tests) நடத்தவும், மற்றும் நேரடிப் பணப்பரிமாற்றம் இன்றி உங்கள் local builds-களை இயக்கவும் உதவும்.

Webhook சிறந்த நடைமுறைகள்

Webhook என்பதுதான் உங்கள் உண்மையானத் தகவல் ஆதாரம் (source of truth). தயாரிப்புச் சூழலில் சிக்கல்களைத் தவிர்க்க இந்த விதிகளைப் பின்பற்றவும்:

  • CSRF Exempt: உங்கள் webhook route, CSRF பாதுகாப்பைக் கடந்து செல்ல வேண்டும்.
  • Verify Signatures: வேறு எதையும் செய்வதற்கு முன் எப்போதும் signature-ஐச் சரிபார்க்கவும்.
  • The 200 Rule: signature-ஐச் சரிபார்த்தவுடன், ஒரு 2xx response-ஐத் திருப்பி அனுப்பவும்.
  • Avoid Retries: நீங்கள் 500 error-ஐத் திருப்பி அனுப்பினால், BayarCash உங்கள் webhook-ஐ 40 முறை மீண்டும் முயற்சிக்கும் (retry). இது உங்கள் server-ஐ முடக்கிவிடக்கூடும். பிழைகளைப் பதிவு செய்யுங்கள் (log errors), ஆனால் 200 response-ஐத் திருப்பி அனுப்பவும்.
  • Idempotency: ஒரே webhook இரண்டு முறை வந்தாலும், நகல் ஆர்டர்களை (duplicate orders) உருவாக்காமல் உங்கள் logic கையாளுகிறதா என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள்.

வெற்றிக்கான சரிபார்ப்புப் பட்டியல் (Checklist)

order_number-ஐ ஒரு correlation key-ஆகப் பயன்படுத்தவும். அதை 30 எழுத்துக்களுக்குள் வைத்திருக்கவும். • பயனரைத் திசைதிருப்புவதற்கு முன், ஒரு pending local record-ஐச் சேமிக்கவும். • server-to-server callback-ஐ உங்கள் முதன்மை அதிகாரத் தகவலாகப் பயன்படுத்தவும். • கணக்குகளைச் சரிபார்க்க (reconciliation), return URL-ஐ ஒரு பாதுகாப்பு வலையாகப் பயன்படுத்தவும். • integer status codes-களை உடனடியாக உங்கள் சொந்த Enums-களுக்கு மாற்றவும் (map).

பணப்பரிமாற்ற ஒருங்கிணைப்புகள் (Payment integrations) உண்மையான பணத்தைக் கையாளுகின்றன. மற்ற எல்லாவற்றையும் விட உங்கள் signature verification மற்றும் idempotency ஆகியவற்றைத் தீவிரமாகச் சோதிக்கவும்.

ஆதாரம்: https://dev.to/nasrulhazim/setting-up-bayarcash-fpx-in-laravel-the-right-way-4b2n