WooCommerce 綠界金流外掛結帳完成後重新導向失敗

客戶使用綠界官方的金流外掛,一直無法在完成付款後重新導向回感謝頁,查了文件確認是用 OrderResultUrl 這個參數來設定沒錯,所以就在 class-wc-gateway-ecpay.php 裡面加入處理結帳完成後的重新導向參數:

但奇怪的是還是沒有重新導向,我也有在 log 中確認這個參數帶入的值是感謝頁無誤,但金流文件裡面就是這個參數沒錯,也試過不是大小寫的問題,卡了好久才發現到它觸發重新導向的方式跟我平常熟悉的 WooCommerce Gateway 不一樣,它是透過一個 Helper 去呼叫綠界的 SDK,也就是說這邊 $data 傳送的參數並不是真正傳送給綠界的資料,只是一個暫存罷了。

真正的要傳的資料是放在 /includes/helper/ECPayPaymentHelper.php ,在處理傳送資料前,會有一個 checkoutPrepare() 方法來檢查 $data 裡面的參數是否在白名單之中:

由於綠界官方金流外掛預設並沒有把 orderResultUrl 這個參數加入白名單,而這邊也沒有 Filter 可以處理,因此只好直接硬塞,加完白名單後再把 $data 裡面的 orderResultUrl 加到真正要傳到綠界的一般參數裡面:

最後再根據付款方式把 OrderResultURL 加到各種付款方式的延伸參數之中,這樣就能確保結完帳之後會正確重新導向回感謝頁。

文章標籤綠界金流

目錄

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

Picture of 賴俊吾 / Oberon Lai
賴俊吾 / Oberon Lai

現為全職 WordPress 工程師,網站開發經歷 11 年,專攻前端工程與 WordPress 佈景主題、外掛客製化開發

訂閱電子報

Hi,我是 Oberon,我會固定在每週五早上發送接案心得以及與 WordPress 相關的電子報,同時也會分享一些實用的開發知識,讓你在 WordPress 的接案路上不孤單!

專注於分享 WordPress 開發、接案技巧、專案管理等自由工作者必備知識與心得

© 2024 想點創意科技有限公司

想點創意科技有限公司 | 統一編號 90516823
Designed by Hend Design | 隱私權政策

訂閱電子報

Hi,我是 Oberon,我會固定在每週五早上發送接案心得以及與 WordPress 相關的電子報,同時也會分享一些實用的開發知識,讓你在 WordPress 的接案路上不孤單!