寫支付網關是WooCommerce開發中的髒活累活,所以只要有選擇一定不寫,但難免有別無選擇的時候。

比如註冊在國外的公司想接收大陸客戶的微信付款,金流與會計要走當地國渠道,只能選當地國微信網關代理公司,代理公司不提供WooCommerce集成,只提供API,只好自己寫對接,這個情況不算少見。

這篇文章不是支付網關Tutorial,我只想記下一點想法,如果你想自己寫支付網關,搜一下,不難搜到

代碼一層高質量的支付網關對接有不少細節,一般Tutorial裡會講到的options配置能力、框架性流程,但都會比較粗線條。實際對接具體的第三方支付API時,除了要逐字逐句地去讀文檔,Code Request時逐個確認請求與返回參數,壞一點的情況你會碰到過期的文檔、歧義的表達、或者自己對某些特定支付渠道業務無知,這個過程特別顛簸,光是最基本的做對就能吃掉項目大半成本。

但這還不是全部,沒人會提醒你:每一個transaction要在本地留存電子票據且與訂單綁定,要做refund對接,如果不做自動的,至少也要支持手動refund,這需要在WooCommerce的某個表裡記錄(Log)整個支付回環,有時候你也不知道客戶說的“審計”到底是哪門子。對了,有的站點有Wallet系統,你的網關是不是也對接一下dollar轉points?總之只要涉及操作錢的代碼,你面對的就是最最“業務”的業務流程。

三方API公司提供的也可能是千瘡百孔的服務,沒有簽下Subscription代理權限、半吊子的手機支付,這些常常是因為這些公司不受大廠重視,但會讓下游客戶尷尬難受,花了老錢接上了,結果發現API只支持到想要的一半能力都不到,但收款大陸又別無他選,氣死。有的客戶會很羨慕PayPal與信用卡締造的西方統一在線市場,中文圈的類似統一市場形成得太慢,我不知道支付寶微信替代了VISA/MASTER,是讓這個過程變快了還是變慢了。

現在不到萬不得已我不用支付網關定制金流,存著幾個幾乎不需要改動的Wechat/Alipay殼子網關,具體的API對接到thankyou page去做,非WooCommerce流程的金流(如Pay to Post)也能wc_create_order轉入WC流程,不必要或不能轉入WC流程時,不做網關也比做網關更易靈活復用。沒有寫進網關插件的邏輯,確實能穩定下來的,以後再移入網關Class不遲,但往往那時候移代碼的必要性也沒那麼強烈,所幸就不移。這麼幾次下來,我感覺舒服多了。

發現錯別字麻煩選中按Ctrl+Enter

文章更新時給我發郵件

類似帖子

0 Comments
內聯反饋
查看所有評論