已建立論壇回覆
-
作者帖子
-
翻一下你的小程式的伺服器端原始碼,看看是不是使用標準的 WP_REST_Controller 類及其衍生類來返回資料的,如果不是的話那肯定就沒辦法快取了,因為中介軟體攔截不到資料。
我估計開發者應該是用的自己封裝的方法。
你手工訪問觸發報錯是外掛作者沒做邊界處理,不過這個頂多算編碼不規範,不能算是 BUG 。
你這種情況先檢查一下 PHP 錯誤日誌 (日誌檔案),看回撥時時候有沒有錯誤被記錄。
其次確認下你是否在使用 let’s encrypt 證書?也不排除支付寶官方的伺服器使用舊版的 openssl,仍不信任這個證書,於是導致回撥失敗。
最後你可以按我前面發的,記錄一下支付寶回撥的日誌。如果發現沒有日誌生成的話就需要聯絡支付寶客戶問問是不是有什麼稀奇古怪的問題導致他們沒觸發回撥。
翻了下程式碼,out_trade_no 欄位是實時生成的沒入庫。不過透過程式碼上下文判斷,我覺得這個欄位不存在生成錯誤的可能,如果生成錯誤的話你應該在下單的時候就碰到報錯,而不是等到回撥的時候。
所以現在可能的情況只剩下在支付寶回撥的傳參過程中出現了問題。
不過你為啥能看到上面的報錯資訊?是透過 PHP 錯誤日誌看的嗎?所以我懷疑你是不是在手工請求支付閘道器?這個閘道器應該由支付寶官方主動回撥,而不是手工訪問。
如果你沒有手工訪問的話,需要在以下兩個地方分別下除錯語句取日誌:
檔案:wp-content/plugins/woo-alipay/inc/class-wc-alipay.php(行:671)
在函式開頭加兩行:
var_dump($out_trade_no);
exit;之後嘗試下單,就會在網頁上看到下單時的 out_trade_no 欄位值。獲取值後記得把程式碼刪掉。
然後是獲取回撥時支付寶傳遞來的 out_trade_no 。
檔案:wp-content/plugins/woo-alipay/inc/class-wc-alipay.php(行:340)
在函式開頭新增以下兩行:
file_put_contents( WP_CONTENT_DIR . ‘/alipay.log’, json_encode( $_POST ) . PHP_EOL, FILE_APPEND );
file_put_contents( WP_CONTENT_DIR . ‘/alipay.log’, filter_input( INPUT_POST, ‘out_trade_no’, FILTER_SANITIZE_STRING ) . PHP_EOL, FILE_APPEND );然後完整執行一次下單流程,之後把 wp-content 目錄下的 alipay.log 檔案的內容連同下單時的 out_trade_no 值一起貼上來。注意下:你得保證 wp-content 目錄有 www 使用者的寫入許可權,否則是寫不了日誌的。
這個錯誤是因為 Woo-Alipay 無法透過訂單 ID 獲取 Woo 的 WC_Order 物件。
而訂單 ID 是從前端透過 POST 傳來的 out_trade_no 欄位中提取的。
考慮到 Woo 內建的常用函式出 bug 的機率太小,所以這個問題只存在以下兩種可能:
- 你訂單的 out_trade_no 欄位格式錯誤。去資料庫裡瞅瞅,然後貼上來再看看。
- 支付寶回撥時未正常傳遞 out_trade_no 。這種可能性非常非常小,幾乎可以忽略,所以只檢查一下情況一就可以。不過如果你開啟了某些 waf 防火牆的話是有可能被過濾掉欄位的,有這些防火牆、 CDN 之類的建議先停掉。
貼個小廣告,這裡有中文翻譯:https://translate.wp-china.org/projects/plugins/all-in-one-seo-pack/zh-cn/default
如果說之所以這樣安排是想文派與薇曉朵完全割裂,也即讓人們不知道文派是薇曉朵、菲比斯在投入的話,我覺得也應該是以成立一個新公司的方式來做,比如文派和張三、李四都是這個新公司的品牌,文派負責建設生態,張三、李四負責流量轉化,於是形成一個閉環。而人們看到的在投入文派的人也就是這家新公司。這樣的話應該就可以完美實現所有需求 (與薇曉朵割裂 and 盈利) 的同時避開弊端 (文派品牌直接用於商業細分領域會 「與民爭利」) 了。
文派的品牌策略我覺得有問題。
文派翻譯、文派部落格、文派元素以及未來好多個文派 XXX……
當然,其實很多開源專案都有開源版對應一個商業版的習慣,但人家都是對應一個呀,而文派品牌卻被應用到了方方面面……
每一次將文派品牌用在一個商業細分領域就意味著給一批未來有可能依附這套生態的開發者和服務商帶來恐懼——官方下次啥時候來搶我的這塊蛋糕?如果以官方名義推這些業務的話,我自家的業務還能活嗎?當然,我有理由相信詩語不會做這種事,但是別人會怎麼想?因為這畢竟是已經在以官方品牌在做細分領域了。
所以我的提議就是,文派品牌就只做開源專案,文派對應 WordPress 的國內發行版,肩負的使命就是建設國內 WordPress 生態,而沒有其他商業屬性,自身先保持一定中立再號召人們參與共同推進生態發展。
至於商業盈利部分,人們都知道文派是菲比斯公司發起的,於是完全可以以菲比斯公司旗下其他品牌如薇曉朵、莫蒂奇等等的來實現流量轉化,就好像人們知道 WordPress 是 Automattic 搞的,而 WooCommerces 也是 Automattic 搞的,於是人們願意相信 WooCommerces 是最好的,就好像人們願意相信 WordPress 是最好的一樣。
所以,其實把文派品牌直接用於盈利並不會比這樣透過菲比斯其他品牌來盈利帶來更多好處,而只會增加參與者的顧慮。
我現在其實似乎應該能理解到,詩語你是想文派開源對應 WordPress 國內發行版,然後文派 xxx 對應商業盈利專案。但是還是說,就我個人第一感覺來講,我更願意相信品牌是文派,而其他字尾 (開源、元素、翻譯) 都是文派品牌的子專案,於是這樣來看的話,文派品牌本身的定位也就非常模糊了。
瀏覽器按 f12, 找到這幾個 div 塊,然後在子主題的 style.css 裡面為其新增 CSS 屬性:
display: none;
,於是就隱藏了。你需要 WP China Yes 外掛,安裝啟用即可,不用做啥配置
安裝包下載:https://a1.wp-china-yes.net/apps/wp-china-yes.zip
回覆至: 網站無法升級外掛和主題 #38240今天逮住一個類似的病號,研究了一下,最終排出來的問題是這個問題是由寶塔面板的某個 「防火牆」 類外掛引起的,具體是哪個外掛還不清楚,因為問題不是每次必然復現,然後我一次停掉了太多外掛……
不過寶塔面板的那些 「快取加速」 and 「各種安全性外掛」 我個人是建議全部去掉的,噱頭大於實際,還會增加系統複雜度和被入侵的風險,參考寶塔前段時間 phpmyadmin 的漏洞。
實在想要伺服器防護可以去看看雲鎖這類專門做防護的
-
作者帖子