當綠界金流、智付通付款時,不管是信用卡、超商、ATM等任何一種方式付款出現如下圖的「訂單編號重複」的錯誤時,發生原因可能有數種,但我的滿特殊的...
以下先以綠界為例...
會發現這樣的原因,有可能付款尚未完成前不慎關閉頁面、網路不穩瞬斷(特別是海外買家)等等原因所造成...
不過我個人本次發生「訂單編號重複」的原因,卻不是上面列的這些,我這應也算是罕見的案例,
事情是這樣子的:
我有申請綠界金流是沒錯,而且我有二個WordPress網站,這二個WordPress網站都是使用我申請的同一個綠界金流(同一個商店編號),
問題來了,
雖然是兩個不同的網站,可是正因都是使用Woocommerce購物模組,在使用綠界金流交易時產生兩個網站在訂單編號時都是一樣的編碼規則,
所以假設A網站交易時產生了一筆訂單編號是9598,回傳到綠界會寫入綠界後台的交易記錄中,
而慢慢的B網站有朝一日也剛好用到訂單編號恰好也是9598,此時9598也會回傳到綠界,也會寫入綠界後台的交易記錄中,此時就會發生有兩筆一樣的9598,
當9598要被編譯成綠界專用的訂單編號格式時,會被編成一模一樣的,當然B網站就會因發生訂單編號一樣而無法用綠界金流交易成功。
原本B網站我翻遍所有Woocommerce訂單編號都找不到第二筆9598,想說不可能會有一樣的編號才對,一直找不出原因,後來才想到原因應是A網站在久遠前已經先使用過9598並寫入綠界了所造成的。
這種情形的發生邏輯,以後不管是使用綠界、紅陽、智付通等各式金流都有可能會發生,只要你「2個網站以上使用同一家金流帳號」,就有朝一日可能會發生的。
解決方式:
當然不可能要求綠界幫你把那筆早期的9598訂單產生的交易編號刪除,只能在目前的B網站改變訂單編碼的方式,這樣B網站重新再交易時就不會發生訂單編號重複的事了。
我的解決方法,
在B網站安裝一支可以修改woocommerce訂單編號格式的外掛,我的需求很簡單,只要在當前訂單編號的格式前面或後面加上一個字母或數字,這樣就不會發生與A網站訂單編號格式(純四碼)一樣的情形了。
- 外掛 : Custom Order Numbers for WooCommerce
- org載點 : https://wordpress.org/plugins/custom-order-numbers-for-woocommerce/
B網站安裝好此外掛後,如下圖,我加了一個「n」,這樣所有訂單編號前面都會有n,這樣就能解決與A網站訂單編號重複的問題了。
B網站加上「n」後就能正常使用綠界金流下單了。
另下圖中的9670,是因當前訂單編號是用到9598,我想從9670開始才加上n,但好像設了這想要起始的編號也沒有真的從9670開始,它一樣是從9599繼續算,不知為何...
改完後自己試著下一筆,發現在綠界中新的訂單編號前面也沒有我加的「n」,但在Woocommerce訂單中是有「n」的,
雖不知為何,但是B網站訂單編號重複的問題卻解決了,沒有再跳重複的錯誤出來了,所以我一時也沒有再去細究為何綠界中新的訂單編號前面沒有n了。
這種原因,我相信綠界被反應訂單重覆時,都會往程式串接沒寫好或編碼規則不夠複雜之類的原因去解釋,但這種「二女共侍一夫」的情形,若沒有長期使用Woocommerce並經營多個網站的人,恐怕一時無法發現。
woocommerce 訂單編號問題:
安裝了訂單編號外掛, 問題來了, WP後台顯示的是新編號系統, 但綠界顯示的訂單編號是原本woocommerce內訂的編號系統....意思是WP 和綠界兩邊顯示的號碼不同