v3.5.12
變更內容
PAYUNi 信用卡定期定額(免跳轉)修復
- fix: CreditToken 淨化 — 顧客 email 含 PayUni 不允許字元(如 Gmail plus-alias 的「+」)時,token_get 回 TOKEN02019 致 SDK Token 取得失敗、首次付款無法發起。新增
CreditTokenUtils::sanitize():合法 email 原值不變(既有訂閱續扣不受影響),僅非法值以wc_{customer_id}取代 - fix: 首次付款(金額 > 0)與零元取 Token 兩路徑補上 3D 驗證頁(OTP)導向;非 SUCCESS 且無 3D URL 的回應改判失敗,不再靜默導向感謝頁
- fix: 前端 UNi Embed 支援定期定額閘道(
isPayuni納入、payment_fields()輸出卡號與記憶卡號容器、getTradeResult強制useTokenType) - fix: 覆寫
validate_fields()— Embed 卡號在 iframe 內不經 POST,父類卡號欄位驗證會誤擋(Credit card number is required) - fix: 零元取 Token 3D 流程於 webhook 授權成功後補排程取消 5 元驗證授權
- fix:
trade/cancel、trade/close、trade/queryAPI 路徑重複/api前綴致 404;trade/cancel、trade/close改帶 Version 1.0(3.0 回 API00003) - fix: 取消授權排程改用 Action Scheduler(WP-cron 單次事件於高流量/頁面快取站點會遺失)
安全性
- fix: 移除 PayUni debug log 中 hash_key / hash_iv(AES 金鑰)明文;HTTP 回應非 JSON 時改拋明確例外
測試
- test: 新增 CreditTokenUtilsTest(15 測項);整合測試 197/197 通過
Full Changelog: v3.5.11...v3.5.12