Jinsi ya Kuweka BayarCash kwenye Laravel kwa Njia Sahihi
Ikiwa unajenga SaaS kwa ajili ya soko la Malaysia, hatimaye utahitaji FPX. BayarCash ni chaguo la kawaida.
SDK si tatizo. Tatizo ni usanifu (architecture) wako. Ikiwa utaita SDK kutoka kwenye controller au ukaweka namba za hali (status codes) moja kwa moja kwenye views zako, utapata matatizo wakati wa uzalishaji (production).
Nimewahi kutumia BayarCash kwenye programu tatu tofauti za Laravel. Hii hapa ni mbinu inayofanya kazi kila wakati.
Istilahi Muhimu za Kufahamu
- Portal: Usanidi wako wa malipo ya muuzaji (merchant checkout). Tumia
portal_key. - API Token: Hii hithibitisha simu zako zinazotoka.
- Secret Key: Hii husaini payload zako na kuthibitisha webhooks. Iweke salama.
- Payment Intent: Unatuma ombi la malipo, unapokea URL, na kumuelekeza mtumiaji.
- Channel: Tumia kila wakati constants za SDK badala ya namba mbichi.
Panga Kodu Yako Vizuri
Kodu yako ya domain haipaswi kuona payload mbichi ya BayarCash. Unahitaji tabaka tatu:
- A thin client wrapper: Hiki hushughulikia usanidi na kutoa njia (methods) zilizowekwa aina (typed).
- A gateway: Hiki hutekeleza interface na kuzungumza lugha ya domain yako.
- A factory: Hiki huchagua gateway inayotumika ili uweze kubadilisha BayarCash na Stripe kwa urahisi.
Kuunganisha Fake Gateway
Ikiwa hautoi API token, unganisha mtoa huduma wa Fake (Fake provider) kwenye service container yako. Hii inaruhusu majaribio yako (tests) kufanya kazi bila mtandao na inaruhusu ujenzi wako wa ndani (local builds) kufanya kazi bila malipo ya moja kwa moja.
Mbinu Bora za Webhook
Webhook ndiyo chanzo chako cha ukweli. Fuata sheria hizi ili kuepuka vurugu wakati wa uzalishaji (production):
- CSRF Exempt: Njia (route) yako ya webhook lazima ipite kinga ya CSRF.
- Verify Signatures: Kila wakati thibitisha saini kabla ya kufanya jambo lingine lolote.
- The 200 Rule: Mara tu unapothibitisha saini, rudisha jibu la 2xx.
- Avoid Retries: Ikiwa utarudisha kosa la 500, BayarCash itajaribu tena webhook yako mara 40. Hii inaweza kusababisha seva yako kuzima. Rekodi makosa (log errors), lakini bado rudisha 200.
- Idempotency: Hakikisha mantiki (logic) yako inaweza kushughulikia webhook ile ile mara mbili bila kuunda oda zinazojirudia.
Orodha ya Uhakiki kwa Mafanikio
• Tumia order_number kama funguo ya uhusiano (correlation key). Iweke chini ya herufi 30.
• Hifadhi rekodi ya ndani inayosubiri (pending local record) kabla ya kumuelekeza mtumiaji.
• Tumia mrejesho wa seva-kwa-seva (server-to-server callback) kama mamlaka yako kuu.
• Tumia URL ya kurudi (return URL) kama ulinzi wa ziada kwa ajili ya usuluhishi (reconciliation).
• Unganisha namba za hali (integer status codes) na Enums zako mwenyewe mara moja.
Miunganisho ya malipo inahusisha pesa halisi. Jaribu uhakiki wa saini yako na idempotency zaidi ya kitu kingine chochote.
Source: https://dev.to/nasrulhazim/setting-up-bayarcash-fpx-in-laravel-the-right-way-4b2n
