Plugin Directory

Changeset 3470782


Ignore:
Timestamp:
02/27/2026 01:01:38 AM (5 weeks ago)
Author:
wpbrewer
Message:

Update to version 1.8.1 from GitHub

Location:
wpbr-payuni-payment
Files:
26 edited
1 copied

Legend:

Unmodified
Added
Removed
  • wpbr-payuni-payment/tags/1.8.1/languages/wpbr-payuni-payment-zh_TW.l10n.php

    r3470721 r3470782  
    11<?php
    2 return ['domain'=>NULL,'plural-forms'=>'nplurals=1; plural=0;','language'=>'zh_TW','project-id-version'=>'PAYUNi Payment for WooCommerce','pot-creation-date'=>'2025-07-23 15:16+0800','po-revision-date'=>'2025-07-23 15:56+0800','x-generator'=>'Poedit 3.6','messages'=>['Enable/Disable'=>'啟用/關閉','Enable'=>'啟用','Title'=>'付款方式名稱','This controls the title which the user sees during checkout.'=>'控制使用者在結帳時所看到的標題.','PAYUNi AFTEE Payment'=>'PAYUNi AFTEE 付款','Description'=>'說明','This controls the description which the user sees during checkout.'=>'這是使用者結帳時看到的付款方式說明。','Minimum Amount'=>'最低付款金額','Minimum amount to use this payment gateway.'=>'使用分期付款的最低訂單金額。','Incomplete Payment Message'=>'付款未完成提示訊息','This controls the message displayed on thank you page when the payment is incomplated.'=>'當付款未完成或付款失敗時在訂單感謝頁面上顯示的訊息。','PAYUNi Apple Pay Payment'=>'PAYUNi Apple Pay','PAYUNi ATM Payment'=>'PAYUNi 虛擬帳號 (ATM) 付款','Expire Date'=>'付款到期日','This controls the expire date of the payment.'=>'付款到期天數(對小值為0,最大值為7)','PAYUNi Installment Payment'=>'PAYUNi Installment Payment','PAYUNi Credit Card Payment'=>'PAYUNi 信用卡付款','PAYUNi UnionPay'=>'PAYUNi 銀聯卡','PAYUNi CVS Payment'=>'PAYUNi 超商代碼付款','PAYUNi Google Pay Payment'=>'PAYUNi Google Pay','PAYUNi LINE Pay Payment'=>'PAYUNi LINE Pay','PAYUNi  Samsung Pay Payment'=>'PAYUNi Samsung Pay','Invoice No'=>'發票編號','Unissue'=>'未開立','PAYUNi Payment Detail'=>'PAYUNi 付款資訊','Order No'=>'訂單編號','E-Invoice No'=>'發票編號','E-Invoice Amount'=>'發票金額','E-Invoice Time'=>'開立時間','Issue TypeIssue'=>'開立發票','Issue TypeVoid'=>'作廢發票','Issue TypeUnknown Issue Type'=>'未知的發票類別','E-Invoice Type'=>'發票類別','Mobile Code'=>'手機條碼','CDC Code'=>'自然人憑證','Amego Member'=>'光貿會員載具','Donation'=>'捐贈','Company'=>'公司發票','Unknown Issue Info'=>'未知的開立方式','Issue Info'=>'開立方式','Issued'=>'已開立','Failed'=>'失敗','Voided'=>'已作廢','Unknown Issue Status'=>'未知的開立狀態','Issue Status'=>'開立狀態','Redirecting...'=>'重新導向中...','Unable to find order #%s'=>'找不到訂單編號 #%s','The refund amount for order #%s should be the same as the order total for installment payment.'=>'訂單#%s的退款金額應與分期付款的訂單總額相同。','Unable to find transaction id for order #%s'=>'找不到訂單交易編號 #%s','Unable to Query Order status before refund'=>'無法於退款前執行訂單交易狀態查詢','CloseStatus is not refundable. CloseStatus: %s'=>'請款狀態 (CloseStatrus) 非可退款狀態,當日付款訂單請於隔日再執行退款。 請款狀態:%s','Unable to Refund this Order. TradeStatus: %1$s, CloseStatus: %2$s'=>'訂單退款失敗。交易狀態:%1$s,請款狀態:%2$s','Unable to Refund this Order. TradeStatus:%s'=>'退款失敗。交易狀態:%s','PAYUNi payment refund success. Status: %1$s, Message: %2$s, Refund Amount: %3$s'=>'退款成功。狀態:%1$s,訊息:%2$s,退款金額:%3$s','PAYUNi query returned SUCCESS but no order result found.'=>'PAYUNi 查詢返回 SUCCESS,但沒有訂單結果。','PAYUNi query succeed. Query result: %s'=>'PAYUNi 查詢成功. 查詢結果: %s','PAYUNi query failed. Query result: %s'=>'PAYUNi 查詢失敗。 查詢結果: %s','PAYUNi Notify'=>'PAYUNi Notify','Status code:'=>'狀態代碼:','Transaction message:'=>'狀態訊息:','MerTradeNo:'=>'商店訂單編號:','UNi number:'=>'UNi 序號:','Payment type:'=>'付款方式:','PAYUNi Return'=>'PAYUNi Return','AFTEEPay No'=>'交易 ID','Pay Time'=>'付款時間','Auth Type'=>'授權類型','Auth Date'=>'授權日期','Auth Time'=>'授權時間','ATMPay No'=>'付款帳號','Bank Code'=>'銀行代碼','Account 5 No'=>'帳號後5碼','PAYUNi Installment Payment (12 Installments)'=>'PAYUNi 分期付款 (12期)','PAYUNi Installment Payment (18 Installments)'=>'PAYUNi 分期付款 (18期)','PAYUNi Installment Payment (24 Installments)'=>'PAYUNi 分期付款 (24期)','PAYUNi Installment Payment (3 Installments)'=>'PAYUNi 分期付款 (3期)','PAYUNi Installment Payment (30 Installments)'=>'PAYUNi 分期付款 (30期)','PAYUNi Installment Payment (6 Installments)'=>'PAYUNi 分期付款 (6期)','PAYUNi Installment Payment (9 Installments)'=>'PAYUNi 分期付款 (9期)','CVSPay No'=>'超商代碼','CVS Store'=>'付款超商','Proceed to PAYUNi'=>'前往統一金流付款','If the payment detail is not displayed. Please wait for a moment and reload the page.'=>'如果未顯示付款詳細資訊。請稍等片刻,再重新載入頁面。','E-Invoice Detail'=>'電子發票資訊','%1$s is a payment gateway provided by %2$s'=>'%1$s 是由 %2$s 所提供的付款方式','PAYUNi'=>'PAYUNi','We have received your order, but the payment is incompleted.'=>'我們已經收到您的訂單,但是付款尚未完成,請儘速付款,若有問題請聯繫商店管理員。','PAYUNi LINE Pay'=>'PAYUNi LINE Pay','LINE PayPay No'=>'LINE Pay 交易編號','PAYUNi Samsung Pay'=>'PAYUNi Samsung Pay','PAYUNi Installment Payment (%s Installments)'=>'PAYUNi 分期付款 (%s期)','Card Last 4 No'=>'信用卡後4碼','Installments'=>'分期付款期數','First Amount'=>'第一期金額','Each Amount'=>'每期','Trade No'=>'UNi序號','Trade Amount'=>'訂單金額','Trade Status'=>'訂單狀態','Message'=>'訊息','General Settings'=>'一般設定','Payment Settings'=>'付款方式設定','Unsecure AJAX call'=>'不安全的 AJAX 呼叫','No such order id'=>'沒有這個訂單編號','PAYUNi Query Successfully'=>'PAYUNi 查詢成功','PAYUNi query failed. Please check the order notes for details.'=>'PAYUNi 查詢失敗。請查看訂單備註了解詳情。','PAYUNi Query Failed!'=>'PAYUNi 查詢失敗!','Debug Log'=>'除錯紀錄','Log PAYUNi payment message'=>'記錄 PAYUNi 交易資訊','You Can find logs with source name <strong>wpbr-payuni-payment</strong> at <strong>WooCommerce -> Status -> Logs</strong>. %s'=>'你可以在 <strong>WooCommerce -> 狀態 -> 日誌紀錄</strong> 中找到來源名稱為 <strong>wpbr-payuni-payment</strong> 的日誌紀錄。 %s','Number of Payments'=>'欲啟用的分期付款期數','The number of payments display on Payments section, after setting you still need to eanble each payment in Payments section. %s'=>'顯示在後台付款方式設定中的分期付款期數,設定完成仍需至付款方式設定中個別啟用指定期數的付款方式。%s','Language'=>'語系','Traditional Chinese'=>'繁體中文','English'=>'英文','The language of the PAYUNi checkout page.'=>'統一金流支付頁的語系設定。','E-Invoice'=>'電子發票','Enable E-Invoice'=>'啟用電子發票功能','You need to register Amego e-invoice and enable e-invoice feature at PAYUNi website.'=>'需於統一金流後台註冊光貿電子發票並啟用電子發票功能。','API Settings'=>'API 設定','Enter your PAYUNi API credentials'=>'請輸入 PAYUNi 串接資料','Test Mode'=>'測試模式','When enabled, you need to use the test-only data below.'=>'當啟用測試模式時,請填入測試環境的串接資料。','Test MerchantID'=>'測試商店代號 (MerID)','This is the test MerchantID when you apply PAYUNi API'=>'PAYUNi 測試環境的商店代號','Test Hash Key'=>'測試 Hash Key','This is the test Hash Key when you apply PAYUNi API'=>'PAYUNi 測試環境的 Hash Key','Test Hash IV'=>'測試 Hash IV','This is the test Hash IV when you apply PAYUNi API'=>'PAYUNi 測試環境的 Hash IV','MerchantID'=>'商店代號 (MerID)','This is the MerchantID when you apply PAYUNi API'=>'這是您申請 PAYUNi 時的商店代號','Hash Key'=>'Hash Key','This is the Hash Key when you apply PAYUNi API'=>'這是PAYUNi 提供的商店專屬 Hash Key','Hash IV'=>'Hash IV','This is the Hash IV when you apply PAYUNi API'=>'這是 PAYUNi 提供的商店專屬 HashIV','View logs'=>'檢視除錯紀錄','Go to Payment Settings'=>'設定付款方式','Taiwan Bank'=>'臺灣銀行','CTBC Bank'=>'中國信託','Cathay Bank'=>'國泰世華','Unknown Bank'=>'未知的銀行','Credit Card'=>'信用卡','ATM'=>'ATM 轉帳','CVS Code'=>'超商代碼','C2C'=>'超商取貨付款','ICash'=>'ICash','AFTEE'=>'AFTEE','LINE Pay'=>'LINE Pay','Delivery'=>'宅配到付','Unknown Payment Type'=>'未知的付款方式','Trade StatusPayment Number Taken'=>'取號成功','Trade StatusCredit Valid'=>'信用審查成功','Trade StatusCredit Valid or Get Number Success'=>'信用審查成功或取號成功','Trade StatusPaid'=>'已付款','Trade StatusPayment Fail'=>'付款失敗','Trade StatusPayment Cancel'=>'付款取消','Trade StatusTransaction Expired'=>'交易過期','Trade StatusTo be Confirmed'=>'待確認','Trade StatusUnpaid'=>'未付款','Trade StatusUnknown Trade Status'=>'未知的交易狀態','PAYUNi Payment needs WooCommerce, please intall and activate WooCommerce first!'=>'PAYUNi 統一金流需要 WooCommerce 才能正常使用,請先安裝 WooCommerce!','Pay with PAYUNi'=>'Pay with PAYUNi','https://wpbrewer.com/product/wpbr-payuni-payment'=>'https://wpbrewer.com/product/wpbr-payuni-payment','Provides PAYUNi UPP(UNiPaypage) Payment for WooCommerce.'=>'使用PAYUNi 統一金流提供的整合式收款頁 (UNiPaypage/UPP) 為你的 WooCommerce 商店提供多元的付款方式。','WPBrewer'=>'WPBrewer','https://wpbrewer.com/'=>'https://wpbrewer.com/','Auto Cancel'=>'自動取消','Auto-cancellation schedule removed.'=>'已移除自動取消排程。','Scheduled auto-cancellation at %s if payment is not completed.'=>'自動取消排程已建立於 %s,若屆時尚未付款將自動取消訂單。','Auto-cancel feature is not enabled.'=>'自動取消功能未啟用。','This order does not support auto-cancellation.'=>'此訂單不支援自動取消。','No expire date found for this order.'=>'此訂單沒有付款到期日。','Failed to parse expire date: %s'=>'無法解析付款到期日:%s','Auto-cancellation scheduled at %s.'=>'自動取消排程已建立於 %s。','Order auto-cancelled: payment has expired.'=>'訂單已自動取消:付款已逾期。','Auto Cancel Expired ATM/CVS Orders'=>'自動取消逾期的ATM/超商代碼訂單','Enable auto-cancellation for expired ATM/CVS orders'=>'啟用自動取消','Automatically cancel ATM and CVS orders when the payment deadline has passed.'=>'當超過付款期限,系統會自動取消 ATM 和超商代碼訂單。']];
     2return ['domain'=>NULL,'plural-forms'=>'nplurals=1; plural=0;','language'=>'zh_TW','project-id-version'=>'PAYUNi Payment for WooCommerce','pot-creation-date'=>'2025-07-23 15:16+0800','po-revision-date'=>'2025-07-23 15:56+0800','x-generator'=>'Poedit 3.6','messages'=>['Enable/Disable'=>'啟用/關閉','Enable'=>'啟用','Title'=>'付款方式名稱','This controls the title which the user sees during checkout.'=>'控制使用者在結帳時所看到的標題.','PAYUNi AFTEE Payment'=>'PAYUNi AFTEE 付款','Description'=>'說明','This controls the description which the user sees during checkout.'=>'這是使用者結帳時看到的付款方式說明。','Minimum Amount'=>'最低付款金額','Minimum amount to use this payment gateway.'=>'使用分期付款的最低訂單金額。','Incomplete Payment Message'=>'付款未完成提示訊息','This controls the message displayed on thank you page when the payment is incomplated.'=>'當付款未完成或付款失敗時在訂單感謝頁面上顯示的訊息。','PAYUNi Apple Pay Payment'=>'PAYUNi Apple Pay','PAYUNi ATM Payment'=>'PAYUNi 虛擬帳號 (ATM) 付款','Expire Date'=>'付款到期日','This controls the expire date of the payment.'=>'付款到期天數(對小值為0,最大值為7)','PAYUNi Installment Payment'=>'PAYUNi Installment Payment','PAYUNi Credit Card Payment'=>'PAYUNi 信用卡付款','PAYUNi UnionPay'=>'PAYUNi 銀聯卡','PAYUNi CVS Payment'=>'PAYUNi 超商代碼付款','PAYUNi Google Pay Payment'=>'PAYUNi Google Pay','PAYUNi LINE Pay Payment'=>'PAYUNi LINE Pay','PAYUNi  Samsung Pay Payment'=>'PAYUNi Samsung Pay','Invoice No'=>'發票編號','Unissue'=>'未開立','PAYUNi Payment Detail'=>'PAYUNi 付款資訊','Order No'=>'訂單編號','E-Invoice No'=>'發票編號','E-Invoice Amount'=>'發票金額','E-Invoice Time'=>'開立時間','Issue TypeIssue'=>'開立發票','Issue TypeVoid'=>'作廢發票','Issue TypeUnknown Issue Type'=>'未知的發票類別','E-Invoice Type'=>'發票類別','Mobile Code'=>'手機條碼','CDC Code'=>'自然人憑證','Amego Member'=>'光貿會員載具','Donation'=>'捐贈','Company'=>'公司發票','Unknown Issue Info'=>'未知的開立方式','Issue Info'=>'開立方式','Issued'=>'已開立','Failed'=>'失敗','Voided'=>'已作廢','Unknown Issue Status'=>'未知的開立狀態','Issue Status'=>'開立狀態','Redirecting...'=>'重新導向中...','Unable to find order #%s'=>'找不到訂單編號 #%s','The refund amount for order #%s should be the same as the order total for installment payment.'=>'訂單#%s的退款金額應與分期付款的訂單總額相同。','Unable to find transaction id for order #%s'=>'找不到訂單交易編號 #%s','Unable to Query Order status before refund'=>'無法於退款前執行訂單交易狀態查詢','CloseStatus is not refundable. CloseStatus: %s'=>'請款狀態 (CloseStatrus) 非可退款狀態,當日付款訂單請於隔日再執行退款。 請款狀態:%s','Unable to Refund this Order. TradeStatus: %1$s, CloseStatus: %2$s'=>'訂單退款失敗。交易狀態:%1$s,請款狀態:%2$s','Unable to Refund this Order. TradeStatus:%s'=>'退款失敗。交易狀態:%s','PAYUNi payment refund success. Status: %1$s, Message: %2$s, Refund Amount: %3$s'=>'退款成功。狀態:%1$s,訊息:%2$s,退款金額:%3$s','PAYUNi query returned SUCCESS but no order result found.'=>'PAYUNi 查詢返回 SUCCESS,但沒有訂單結果。','PAYUNi query succeed. Query result: %s'=>'PAYUNi 查詢成功. 查詢結果: %s','PAYUNi query failed. Query result: %s'=>'PAYUNi 查詢失敗。 查詢結果: %s','PAYUNi Notify'=>'PAYUNi Notify','Status code:'=>'狀態代碼:','Transaction message:'=>'狀態訊息:','MerTradeNo:'=>'商店訂單編號:','UNi number:'=>'UNi 序號:','Payment type:'=>'付款方式:','PAYUNi Return'=>'PAYUNi Return','AFTEEPay No'=>'交易 ID','Pay Time'=>'付款時間','Auth Type'=>'授權類型','Auth Date'=>'授權日期','Auth Time'=>'授權時間','ATMPay No'=>'付款帳號','Bank Code'=>'銀行代碼','Account 5 No'=>'帳號後5碼','PAYUNi Installment Payment (12 Installments)'=>'PAYUNi 分期付款 (12期)','PAYUNi Installment Payment (18 Installments)'=>'PAYUNi 分期付款 (18期)','PAYUNi Installment Payment (24 Installments)'=>'PAYUNi 分期付款 (24期)','PAYUNi Installment Payment (3 Installments)'=>'PAYUNi 分期付款 (3期)','PAYUNi Installment Payment (30 Installments)'=>'PAYUNi 分期付款 (30期)','PAYUNi Installment Payment (6 Installments)'=>'PAYUNi 分期付款 (6期)','PAYUNi Installment Payment (9 Installments)'=>'PAYUNi 分期付款 (9期)','CVSPay No'=>'超商代碼','CVS Store'=>'付款超商','Proceed to PAYUNi'=>'前往統一金流付款','If the payment detail is not displayed. Please wait for a moment and reload the page.'=>'如果未顯示付款詳細資訊。請稍等片刻,再重新載入頁面。','E-Invoice Detail'=>'電子發票資訊','%1$s is a payment gateway provided by %2$s'=>'%1$s 是由 %2$s 所提供的付款方式','PAYUNi'=>'PAYUNi','We have received your order, but the payment is incompleted.'=>'我們已經收到您的訂單,但是付款尚未完成,請儘速付款,若有問題請聯繫商店管理員。','PAYUNi LINE Pay'=>'PAYUNi LINE Pay','LINE PayPay No'=>'LINE Pay 交易編號','PAYUNi Samsung Pay'=>'PAYUNi Samsung Pay','PAYUNi Installment Payment (%s Installments)'=>'PAYUNi 分期付款 (%s期)','Card Last 4 No'=>'信用卡後4碼','Installments'=>'分期付款期數','First Amount'=>'第一期金額','Each Amount'=>'每期','Trade No'=>'UNi序號','Trade Amount'=>'訂單金額','Trade Status'=>'訂單狀態','Message'=>'訊息','General Settings'=>'一般設定','Payment Settings'=>'付款方式設定','Unsecure AJAX call'=>'不安全的 AJAX 呼叫','No such order id'=>'沒有這個訂單編號','PAYUNi Query Successfully'=>'PAYUNi 查詢成功','PAYUNi query failed. Please check the order notes for details.'=>'PAYUNi 查詢失敗。請查看訂單備註了解詳情。','PAYUNi Query Failed!'=>'PAYUNi 查詢失敗!','Debug Log'=>'除錯紀錄','Log PAYUNi payment message'=>'記錄 PAYUNi 交易資訊','You Can find logs with source name <strong>wpbr-payuni-payment</strong> at <strong>WooCommerce -> Status -> Logs</strong>. %s'=>'你可以在 <strong>WooCommerce -> 狀態 -> 日誌紀錄</strong> 中找到來源名稱為 <strong>wpbr-payuni-payment</strong> 的日誌紀錄。 %s','Number of Payments'=>'欲啟用的分期付款期數','The number of payments display on Payments section, after setting you still need to eanble each payment in Payments section. %s'=>'顯示在後台付款方式設定中的分期付款期數,設定完成仍需至付款方式設定中個別啟用指定期數的付款方式。%s','Language'=>'語系','Traditional Chinese'=>'繁體中文','English'=>'英文','The language of the PAYUNi checkout page.'=>'統一金流支付頁的語系設定。','E-Invoice'=>'電子發票','Enable E-Invoice'=>'啟用電子發票功能','You need to register Amego e-invoice and enable e-invoice feature at PAYUNi website.'=>'需於統一金流後台註冊光貿電子發票並啟用電子發票功能。','API Settings'=>'API 設定','Enter your PAYUNi API credentials'=>'請輸入 PAYUNi 串接資料','Test Mode'=>'測試模式','When enabled, you need to use the test-only data below.'=>'當啟用測試模式時,請填入測試環境的串接資料。','Test MerchantID'=>'測試商店代號 (MerID)','This is the test MerchantID when you apply PAYUNi API'=>'PAYUNi 測試環境的商店代號','Test Hash Key'=>'測試 Hash Key','This is the test Hash Key when you apply PAYUNi API'=>'PAYUNi 測試環境的 Hash Key','Test Hash IV'=>'測試 Hash IV','This is the test Hash IV when you apply PAYUNi API'=>'PAYUNi 測試環境的 Hash IV','MerchantID'=>'商店代號 (MerID)','This is the MerchantID when you apply PAYUNi API'=>'這是您申請 PAYUNi 時的商店代號','Hash Key'=>'Hash Key','This is the Hash Key when you apply PAYUNi API'=>'這是PAYUNi 提供的商店專屬 Hash Key','Hash IV'=>'Hash IV','This is the Hash IV when you apply PAYUNi API'=>'這是 PAYUNi 提供的商店專屬 HashIV','View logs'=>'檢視除錯紀錄','Go to Payment Settings'=>'設定付款方式','Taiwan Bank'=>'臺灣銀行','CTBC Bank'=>'中國信託','Cathay Bank'=>'國泰世華','Unknown Bank'=>'未知的銀行','Credit Card'=>'信用卡','ATM'=>'ATM 轉帳','CVS Code'=>'超商代碼','C2C'=>'超商取貨付款','ICash'=>'ICash','AFTEE'=>'AFTEE','LINE Pay'=>'LINE Pay','Delivery'=>'宅配到付','Unknown Payment Type'=>'未知的付款方式','Trade StatusPayment Number Taken'=>'取號成功','Trade StatusCredit Valid'=>'信用審查成功','Trade StatusCredit Valid or Get Number Success'=>'信用審查成功或取號成功','Trade StatusPaid'=>'已付款','Trade StatusPayment Fail'=>'付款失敗','Trade StatusPayment Cancel'=>'付款取消','Trade StatusTransaction Expired'=>'交易過期','Trade StatusTo be Confirmed'=>'待確認','Trade StatusUnpaid'=>'未付款','Trade StatusUnknown Trade Status'=>'未知的交易狀態','PAYUNi Payment needs WooCommerce, please intall and activate WooCommerce first!'=>'PAYUNi 統一金流需要 WooCommerce 才能正常使用,請先安裝 WooCommerce!','Pay with PAYUNi'=>'Pay with PAYUNi','https://wpbrewer.com/product/wpbr-payuni-payment'=>'https://wpbrewer.com/product/wpbr-payuni-payment','Provides PAYUNi UPP(UNiPaypage) Payment for WooCommerce.'=>'使用PAYUNi 統一金流提供的整合式收款頁 (UNiPaypage/UPP) 為你的 WooCommerce 商店提供多元的付款方式。','WPBrewer'=>'WPBrewer','https://wpbrewer.com/'=>'https://wpbrewer.com/','Auto Cancel'=>'自動取消','Auto-cancellation schedule removed.'=>'已移除自動取消排程。','Scheduled auto-cancellation at %s if payment is not completed.'=>'自動取消排程已建立於 %s,若屆時尚未付款將自動取消訂單。','Auto-cancel feature is not enabled.'=>'自動取消功能未啟用。','This order does not support auto-cancellation.'=>'此訂單不支援自動取消。','No expire date found for this order.'=>'此訂單沒有付款到期日。','Failed to parse expire date: %s'=>'無法解析付款到期日:%s','Auto-cancellation scheduled at %s.'=>'自動取消排程已建立於 %s。','Auto Cancel Expired ATM/CVS Orders'=>'自動取消逾期的ATM/超商代碼訂單','Enable auto-cancellation for expired ATM/CVS orders'=>'啟用自動取消','Automatically cancel ATM and CVS orders when the payment deadline has passed.'=>'當超過付款期限,系統會自動取消 ATM 和超商代碼訂單。','Auto Cancel Delay (minutes)'=>'自動取消延遲時間(分鐘)','Delay in minutes after the payment deadline before auto-cancelling the order.'=>'超過付款期限後,延遲多少分鐘再自動取消訂單。','Auto-cancel aborted: failed to query PAYUNi transaction status. Please check manually.'=>'自動取消中止:無法查詢 PAYUNi 交易狀態,請至統一激流後台確認交易狀態。','Auto-cancel aborted: PAYUNi query confirmed payment received. Order marked as paid. (TradeStatus: %s)'=>'自動取消中止:PAYUNi 查詢確認交易已付款,訂單已標記為已付款。(TradeStatus: %s)','Auto-cancel aborted: PAYUNi query error: %s. Please check manually.'=>'自動取消中止:PAYUNi 查詢錯誤:%s,請自行至統一金流後台確認交易狀態。','Order auto-cancelled: payment has expired. (TradeStatus: %s)'=>'訂單已自動取消:付款已逾期。(TradeStatus: %s)']];
  • wpbr-payuni-payment/tags/1.8.1/languages/wpbr-payuni-payment-zh_TW.po

    r3470721 r3470782  
    373373
    374374#. translators:  %s is the decrypted result
    375 #: src/Api/PaymentRequest.php:348
     375#: src/Api/PaymentRequest.php:366
    376376#, php-format
    377377msgid "PAYUNi query succeed. Query result: %s"
     
    379379
    380380#. translators:  %s is the decrypted result
    381 #: src/Api/PaymentRequest.php:355
     381#: src/Api/PaymentRequest.php:373
    382382#, php-format
    383383msgid "PAYUNi query failed. Query result: %s"
    384384msgstr "PAYUNi 查詢失敗。 查詢結果: %s"
    385385
    386 #: src/Api/PaymentResponse.php:68
     386#: src/Api/PaymentResponse.php:71
    387387msgid "PAYUNi Notify"
    388388msgstr "PAYUNi Notify"
    389389
    390 #: src/Api/PaymentResponse.php:69
    391 #: src/Api/PaymentResponse.php:130
     390#: src/Api/PaymentResponse.php:72
     391#: src/Api/PaymentResponse.php:133
    392392msgid "Status code:"
    393393msgstr "狀態代碼:"
    394394
    395 #: src/Api/PaymentResponse.php:70
    396 #: src/Api/PaymentResponse.php:131
     395#: src/Api/PaymentResponse.php:73
     396#: src/Api/PaymentResponse.php:134
    397397msgid "Transaction message:"
    398398msgstr "狀態訊息:"
    399399
    400 #: src/Api/PaymentResponse.php:71
    401 #: src/Api/PaymentResponse.php:132
     400#: src/Api/PaymentResponse.php:74
     401#: src/Api/PaymentResponse.php:135
    402402msgid "MerTradeNo:"
    403403msgstr "商店訂單編號:"
    404404
    405 #: src/Api/PaymentResponse.php:72
    406 #: src/Api/PaymentResponse.php:133
     405#: src/Api/PaymentResponse.php:75
     406#: src/Api/PaymentResponse.php:136
    407407msgid "UNi number:"
    408408msgstr "UNi 序號:"
    409409
    410 #: src/Api/PaymentResponse.php:73
    411 #: src/Api/PaymentResponse.php:134
     410#: src/Api/PaymentResponse.php:76
     411#: src/Api/PaymentResponse.php:137
    412412msgid "Payment type:"
    413413msgstr "付款方式:"
    414414
    415 #: src/Api/PaymentResponse.php:129
     415#: src/Api/PaymentResponse.php:132
    416416msgid "PAYUNi Return"
    417417msgstr "PAYUNi Return"
     
    424424#: src/Gateways/Aftee.php:88
    425425#: src/Gateways/Atm.php:88
     426#: src/Gateways/Cvs.php:89
    426427msgid "Pay Time"
    427428msgstr "付款時間"
     
    534535msgstr "PAYUNi"
    535536
    536 #: src/Gateways/GatewayBase.php:278
     537#: src/Gateways/GatewayBase.php:285
    537538msgid "We have received your order, but the payment is incompleted."
    538539msgstr "我們已經收到您的訂單,但是付款尚未完成,請儘速付款,若有問題請聯繫商店管理員。"
     
    602603
    603604#: src/PayuniPayment.php:269
    604 #: src/PayuniPayment.php:623
     605#: src/PayuniPayment.php:625
    605606msgid "Unsecure AJAX call"
    606607msgstr "不安全的 AJAX 呼叫"
    607608
    608609#: src/PayuniPayment.php:280
    609 #: src/PayuniPayment.php:644
     610#: src/PayuniPayment.php:646
    610611msgid "No such order id"
    611612msgstr "沒有這個訂單編號"
     
    675676msgstr "需於統一金流後台註冊光貿電子發票並啟用電子發票功能。"
    676677
    677 #: src/Settings/SettingsTab.php:137
     678#: src/Settings/SettingsTab.php:149
    678679msgid "API Settings"
    679680msgstr "API 設定"
    680681
    681 #: src/Settings/SettingsTab.php:139
     682#: src/Settings/SettingsTab.php:151
    682683msgid "Enter your PAYUNi API credentials"
    683684msgstr "請輸入 PAYUNi 串接資料"
    684685
    685 #: src/Settings/SettingsTab.php:143
     686#: src/Settings/SettingsTab.php:155
    686687msgid "Test Mode"
    687688msgstr "測試模式"
    688689
    689 #: src/Settings/SettingsTab.php:146
     690#: src/Settings/SettingsTab.php:158
    690691msgid "When enabled, you need to use the test-only data below."
    691692msgstr "當啟用測試模式時,請填入測試環境的串接資料。"
    692693
    693 #: src/Settings/SettingsTab.php:150
     694#: src/Settings/SettingsTab.php:162
    694695msgid "Test MerchantID"
    695696msgstr "測試商店代號 (MerID)"
    696697
    697 #: src/Settings/SettingsTab.php:152
     698#: src/Settings/SettingsTab.php:164
    698699msgid "This is the test MerchantID when you apply PAYUNi API"
    699700msgstr "PAYUNi 測試環境的商店代號"
    700701
    701 #: src/Settings/SettingsTab.php:157
     702#: src/Settings/SettingsTab.php:169
    702703msgid "Test Hash Key"
    703704msgstr "測試 Hash Key"
    704705
    705 #: src/Settings/SettingsTab.php:159
     706#: src/Settings/SettingsTab.php:171
    706707msgid "This is the test Hash Key when you apply PAYUNi API"
    707708msgstr "PAYUNi 測試環境的 Hash Key"
    708709
    709 #: src/Settings/SettingsTab.php:164
     710#: src/Settings/SettingsTab.php:176
    710711msgid "Test Hash IV"
    711712msgstr "測試 Hash IV"
    712713
    713 #: src/Settings/SettingsTab.php:166
     714#: src/Settings/SettingsTab.php:178
    714715msgid "This is the test Hash IV when you apply PAYUNi API"
    715716msgstr "PAYUNi 測試環境的 Hash IV"
    716717
    717 #: src/Settings/SettingsTab.php:171
     718#: src/Settings/SettingsTab.php:183
    718719msgid "MerchantID"
    719720msgstr "商店代號 (MerID)"
    720721
    721 #: src/Settings/SettingsTab.php:173
     722#: src/Settings/SettingsTab.php:185
    722723msgid "This is the MerchantID when you apply PAYUNi API"
    723724msgstr "這是您申請 PAYUNi 時的商店代號"
    724725
    725 #: src/Settings/SettingsTab.php:178
     726#: src/Settings/SettingsTab.php:190
    726727msgid "Hash Key"
    727728msgstr "Hash Key"
    728729
    729 #: src/Settings/SettingsTab.php:180
     730#: src/Settings/SettingsTab.php:192
    730731msgid "This is the Hash Key when you apply PAYUNi API"
    731732msgstr "這是PAYUNi 提供的商店專屬 Hash Key"
    732733
    733 #: src/Settings/SettingsTab.php:185
     734#: src/Settings/SettingsTab.php:197
    734735msgid "Hash IV"
    735736msgstr "Hash IV"
    736737
    737 #: src/Settings/SettingsTab.php:187
     738#: src/Settings/SettingsTab.php:199
    738739msgid "This is the Hash IV when you apply PAYUNi API"
    739740msgstr "這是 PAYUNi 提供的商店專屬 HashIV"
    740741
    741 #: src/Settings/SettingsTab.php:264
     742#: src/Settings/SettingsTab.php:276
    742743msgid "View logs"
    743744msgstr "檢視除錯紀錄"
    744745
    745 #: src/Settings/SettingsTab.php:271
     746#: src/Settings/SettingsTab.php:283
    746747msgid "Go to Payment Settings"
    747748msgstr "設定付款方式"
     
    883884
    884885#: src/PayuniPayment.php:540
    885 #: src/PayuniPayment.php:607
     886#: src/PayuniPayment.php:609
    886887msgid "Auto-cancellation schedule removed."
    887888msgstr "已移除自動取消排程。"
    888889
    889 #: src/PayuniPayment.php:578
    890 #: src/PayuniPayment.php:701
     890#: src/PayuniPayment.php:580
     891#: src/PayuniPayment.php:705
    891892msgid "Scheduled auto-cancellation at %s if payment is not completed."
    892893msgstr "自動取消排程已建立於 %s,若屆時尚未付款將自動取消訂單。"
    893894
    894 #: src/PayuniPayment.php:632
     895#: src/PayuniPayment.php:634
    895896msgid "Auto-cancel feature is not enabled."
    896897msgstr "自動取消功能未啟用。"
    897898
    898 #: src/PayuniPayment.php:654
     899#: src/PayuniPayment.php:656
    899900msgid "This order does not support auto-cancellation."
    900901msgstr "此訂單不支援自動取消。"
    901902
    902 #: src/PayuniPayment.php:671
     903#: src/PayuniPayment.php:673
    903904msgid "No expire date found for this order."
    904905msgstr "此訂單沒有付款到期日。"
    905906
    906 #: src/PayuniPayment.php:686
     907#: src/PayuniPayment.php:688
    907908msgid "Failed to parse expire date: %s"
    908909msgstr "無法解析付款到期日:%s"
    909910
    910 #: src/PayuniPayment.php:707
     911#: src/PayuniPayment.php:711
    911912msgid "Auto-cancellation scheduled at %s."
    912913msgstr "自動取消排程已建立於 %s。"
    913 
    914 #: src/PayuniPayment.php:743
    915 msgid "Order auto-cancelled: payment has expired."
    916 msgstr "訂單已自動取消:付款已逾期。"
    917914
    918915#: src/Settings/SettingsTab.php:125
     
    927924msgid "Automatically cancel ATM and CVS orders when the payment deadline has passed."
    928925msgstr "當超過付款期限,系統會自動取消 ATM 和超商代碼訂單。"
     926
     927#: src/Settings/SettingsTab.php:133
     928msgid "Auto Cancel Delay (minutes)"
     929msgstr "自動取消延遲時間(分鐘)"
     930
     931#: src/Settings/SettingsTab.php:136
     932msgid "Delay in minutes after the payment deadline before auto-cancelling the order."
     933msgstr "超過付款期限後,延遲多少分鐘再自動取消訂單。"
     934
     935#: src/PayuniPayment.php:803
     936msgid "Auto-cancel aborted: failed to query PAYUNi transaction status. Please check manually."
     937msgstr "自動取消中止:無法查詢 PAYUNi 交易狀態,請至統一激流後台確認交易狀態。"
     938
     939#. translators: %s is the PAYUNi trade status code
     940#: src/PayuniPayment.php:814
     941msgid "Auto-cancel aborted: PAYUNi query confirmed payment received. Order marked as paid. (TradeStatus: %s)"
     942msgstr "自動取消中止:PAYUNi 查詢確認交易已付款,訂單已標記為已付款。(TradeStatus: %s)"
     943
     944#: src/PayuniPayment.php:819
     945msgid "Auto-cancel aborted: PAYUNi query error: %s. Please check manually."
     946msgstr "自動取消中止:PAYUNi 查詢錯誤:%s,請自行至統一金流後台確認交易狀態。"
     947
     948#. translators: %s is the PAYUNi trade status code
     949#: src/PayuniPayment.php:825
     950msgid "Order auto-cancelled: payment has expired. (TradeStatus: %s)"
     951msgstr "訂單已自動取消:付款已逾期。(TradeStatus: %s)"
  • wpbr-payuni-payment/tags/1.8.1/languages/wpbr-payuni-payment.pot

    r3470721 r3470782  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Pay with PAYUNi 1.7.1\n"
     5"Project-Id-Version: Pay with PAYUNi 1.8.0\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpbr-payuni-payment\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-02-26T21:35:08+00:00\n"
     12"POT-Creation-Date: 2026-02-27T00:39:36+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.11.0\n"
     
    388388
    389389#. translators:  %s is the decrypted result
    390 #: src/Api/PaymentRequest.php:348
     390#: src/Api/PaymentRequest.php:366
    391391msgid "PAYUNi query succeed. Query result: %s"
    392392msgstr ""
    393393
    394394#. translators:  %s is the decrypted result
    395 #: src/Api/PaymentRequest.php:355
     395#: src/Api/PaymentRequest.php:373
    396396msgid "PAYUNi query failed. Query result: %s"
    397397msgstr ""
    398398
    399 #: src/Api/PaymentResponse.php:68
     399#: src/Api/PaymentResponse.php:71
    400400msgid "PAYUNi Notify"
    401 msgstr ""
    402 
    403 #: src/Api/PaymentResponse.php:69
    404 #: src/Api/PaymentResponse.php:130
    405 msgid "Status code:"
    406 msgstr ""
    407 
    408 #: src/Api/PaymentResponse.php:70
    409 #: src/Api/PaymentResponse.php:131
    410 msgid "Transaction message:"
    411 msgstr ""
    412 
    413 #: src/Api/PaymentResponse.php:71
    414 #: src/Api/PaymentResponse.php:132
    415 msgid "MerTradeNo:"
    416401msgstr ""
    417402
    418403#: src/Api/PaymentResponse.php:72
    419404#: src/Api/PaymentResponse.php:133
    420 msgid "UNi number:"
     405msgid "Status code:"
    421406msgstr ""
    422407
    423408#: src/Api/PaymentResponse.php:73
    424409#: src/Api/PaymentResponse.php:134
     410msgid "Transaction message:"
     411msgstr ""
     412
     413#: src/Api/PaymentResponse.php:74
     414#: src/Api/PaymentResponse.php:135
     415msgid "MerTradeNo:"
     416msgstr ""
     417
     418#: src/Api/PaymentResponse.php:75
     419#: src/Api/PaymentResponse.php:136
     420msgid "UNi number:"
     421msgstr ""
     422
     423#: src/Api/PaymentResponse.php:76
     424#: src/Api/PaymentResponse.php:137
    425425msgid "Payment type:"
    426426msgstr ""
    427427
    428 #: src/Api/PaymentResponse.php:129
     428#: src/Api/PaymentResponse.php:132
    429429msgid "PAYUNi Return"
    430430msgstr ""
     
    437437#: src/Gateways/Aftee.php:88
    438438#: src/Gateways/Atm.php:88
     439#: src/Gateways/Cvs.php:89
    439440msgid "Pay Time"
    440441msgstr ""
     
    546547msgstr ""
    547548
    548 #: src/Gateways/GatewayBase.php:278
     549#: src/Gateways/GatewayBase.php:285
    549550msgid "We have received your order, but the payment is incompleted."
    550551msgstr ""
     
    613614
    614615#: src/PayuniPayment.php:269
    615 #: src/PayuniPayment.php:623
     616#: src/PayuniPayment.php:625
    616617msgid "Unsecure AJAX call"
    617618msgstr ""
    618619
    619620#: src/PayuniPayment.php:280
    620 #: src/PayuniPayment.php:644
     621#: src/PayuniPayment.php:646
    621622msgid "No such order id"
    622623msgstr ""
     
    635636
    636637#: src/PayuniPayment.php:540
    637 #: src/PayuniPayment.php:607
     638#: src/PayuniPayment.php:609
    638639msgid "Auto-cancellation schedule removed."
    639640msgstr ""
    640641
    641 #: src/PayuniPayment.php:578
    642 #: src/PayuniPayment.php:701
     642#: src/PayuniPayment.php:580
     643#: src/PayuniPayment.php:705
    643644msgid "Scheduled auto-cancellation at %s if payment is not completed."
    644645msgstr ""
    645646
    646 #: src/PayuniPayment.php:632
     647#: src/PayuniPayment.php:634
    647648msgid "Auto-cancel feature is not enabled."
    648649msgstr ""
    649650
    650 #: src/PayuniPayment.php:654
     651#: src/PayuniPayment.php:656
    651652msgid "This order does not support auto-cancellation."
    652653msgstr ""
    653654
    654 #: src/PayuniPayment.php:671
     655#: src/PayuniPayment.php:673
    655656msgid "No expire date found for this order."
    656657msgstr ""
    657658
    658 #: src/PayuniPayment.php:686
     659#: src/PayuniPayment.php:688
    659660msgid "Failed to parse expire date: %s"
    660661msgstr ""
    661662
    662 #: src/PayuniPayment.php:707
     663#: src/PayuniPayment.php:711
    663664msgid "Auto-cancellation scheduled at %s."
    664665msgstr ""
    665666
    666 #: src/PayuniPayment.php:743
    667 msgid "Order auto-cancelled: payment has expired."
     667#: src/PayuniPayment.php:803
     668msgid "Auto-cancel aborted: failed to query PAYUNi transaction status. Please check manually."
     669msgstr ""
     670
     671#. translators: %s is the PAYUNi trade status code
     672#: src/PayuniPayment.php:814
     673msgid "Auto-cancel aborted: PAYUNi query confirmed payment received. Order marked as paid. (TradeStatus: %s)"
     674msgstr ""
     675
     676#: src/PayuniPayment.php:819
     677msgid "Auto-cancel aborted: PAYUNi query error: %s. Please check manually."
     678msgstr ""
     679
     680#. translators: %s is the PAYUNi trade status code
     681#: src/PayuniPayment.php:825
     682msgid "Order auto-cancelled: payment has expired. (TradeStatus: %s)"
    668683msgstr ""
    669684
     
    730745msgstr ""
    731746
    732 #: src/Settings/SettingsTab.php:137
     747#: src/Settings/SettingsTab.php:133
     748msgid "Auto Cancel Delay (minutes)"
     749msgstr ""
     750
     751#: src/Settings/SettingsTab.php:136
     752msgid "Delay in minutes after the payment deadline before auto-cancelling the order."
     753msgstr ""
     754
     755#: src/Settings/SettingsTab.php:149
    733756msgid "API Settings"
    734757msgstr ""
    735758
    736 #: src/Settings/SettingsTab.php:139
     759#: src/Settings/SettingsTab.php:151
    737760msgid "Enter your PAYUNi API credentials"
    738761msgstr ""
    739762
    740 #: src/Settings/SettingsTab.php:143
     763#: src/Settings/SettingsTab.php:155
    741764msgid "Test Mode"
    742765msgstr ""
    743766
    744 #: src/Settings/SettingsTab.php:146
     767#: src/Settings/SettingsTab.php:158
    745768msgid "When enabled, you need to use the test-only data below."
    746769msgstr ""
    747770
    748 #: src/Settings/SettingsTab.php:150
     771#: src/Settings/SettingsTab.php:162
    749772msgid "Test MerchantID"
    750773msgstr ""
    751774
    752 #: src/Settings/SettingsTab.php:152
     775#: src/Settings/SettingsTab.php:164
    753776msgid "This is the test MerchantID when you apply PAYUNi API"
    754777msgstr ""
    755778
    756 #: src/Settings/SettingsTab.php:157
     779#: src/Settings/SettingsTab.php:169
    757780msgid "Test Hash Key"
    758781msgstr ""
    759782
    760 #: src/Settings/SettingsTab.php:159
     783#: src/Settings/SettingsTab.php:171
    761784msgid "This is the test Hash Key when you apply PAYUNi API"
    762785msgstr ""
    763786
    764 #: src/Settings/SettingsTab.php:164
     787#: src/Settings/SettingsTab.php:176
    765788msgid "Test Hash IV"
    766789msgstr ""
    767790
    768 #: src/Settings/SettingsTab.php:166
     791#: src/Settings/SettingsTab.php:178
    769792msgid "This is the test Hash IV when you apply PAYUNi API"
    770793msgstr ""
    771794
    772 #: src/Settings/SettingsTab.php:171
     795#: src/Settings/SettingsTab.php:183
    773796msgid "MerchantID"
    774797msgstr ""
    775798
    776 #: src/Settings/SettingsTab.php:173
     799#: src/Settings/SettingsTab.php:185
    777800msgid "This is the MerchantID when you apply PAYUNi API"
    778801msgstr ""
    779802
    780 #: src/Settings/SettingsTab.php:178
     803#: src/Settings/SettingsTab.php:190
    781804msgid "Hash Key"
    782805msgstr ""
    783806
    784 #: src/Settings/SettingsTab.php:180
     807#: src/Settings/SettingsTab.php:192
    785808msgid "This is the Hash Key when you apply PAYUNi API"
    786809msgstr ""
    787810
    788 #: src/Settings/SettingsTab.php:185
     811#: src/Settings/SettingsTab.php:197
    789812msgid "Hash IV"
    790813msgstr ""
    791814
    792 #: src/Settings/SettingsTab.php:187
     815#: src/Settings/SettingsTab.php:199
    793816msgid "This is the Hash IV when you apply PAYUNi API"
    794817msgstr ""
    795818
    796 #: src/Settings/SettingsTab.php:264
     819#: src/Settings/SettingsTab.php:276
    797820msgid "View logs"
    798821msgstr ""
    799822
    800 #: src/Settings/SettingsTab.php:271
     823#: src/Settings/SettingsTab.php:283
    801824msgid "Go to Payment Settings"
    802825msgstr ""
  • wpbr-payuni-payment/tags/1.8.1/readme.txt

    r3470721 r3470782  
    55Tested up to: 6.8
    66Requires PHP: 7.4
    7 Stable tag: 1.8.0
     7Stable tag: 1.8.1
    88License: GPLv2 or later.
    99License URI: http://www.gnu.org/licenses/gpl-2.0.txt
     
    6060
    6161== Changelog ==
     62
     63= 1.8.1 - 2026/02/27
     64
     65* ADD - Query order before auto-cancelling.
     66* ADD - Auto-cancelling delay setting.
     67* UPDATE - Add Pay Time meta for CVS Order.
    6268
    6369= 1.8.0 - 2026/02/27
  • wpbr-payuni-payment/tags/1.8.1/src/Api/PaymentRequest.php

    r3332679 r3470782  
    335335            $query_result['CreateDay']   = $decrypted['Result'][0]['CreateDay'];
    336336            $query_result['PaymentType'] = $decrypted['Result'][0]['PaymentType'];
     337           
     338            if ( isset( $decrypted['Result'][0]['TradeAmt'] ) ) {
     339                $query_result['TradeAmt'] = $decrypted['Result'][0]['TradeAmt'];
     340            }
    337341
    338342            // 信用卡.
    339343            if ( '1' === $query_result['PaymentType'] ) {
    340344                $query_result['CloseStatus'] = $decrypted['Result'][0]['CloseStatus'];
     345            }
     346
     347            // 線下交易 (ATM, CVS 等).
     348            if ( isset( $decrypted['Result'][0]['OffChannel'] ) ) {
     349                $query_result['OffChannel'] = $decrypted['Result'][0]['OffChannel'];
     350            }
     351            if ( isset( $decrypted['Result'][0]['OffPayChannel'] ) ) {
     352                $query_result['OffPayChannel'] = $decrypted['Result'][0]['OffPayChannel'];
     353            }
     354            if ( isset( $decrypted['Result'][0]['OffPayNo'] ) ) {
     355                $query_result['OffPayNo'] = $decrypted['Result'][0]['OffPayNo'];
     356            }
     357            if ( isset( $decrypted['Result'][0]['OffExpireTime'] ) ) {
     358                $query_result['OffExpireTime'] = $decrypted['Result'][0]['OffExpireTime'];
    341359            }
    342360
  • wpbr-payuni-payment/tags/1.8.1/src/Api/PaymentResponse.php

    r3470721 r3470782  
    207207            self::update_order_meta( $order, $decrypted_info, OrderMeta::CVS_STORE, 'Store' );
    208208            self::update_order_meta( $order, $decrypted_info, OrderMeta::CVS_EXPIRE_DATE, 'ExpireDate' );
     209            self::update_order_meta( $order, $decrypted_info, OrderMeta::CVS_PAY_TIME, 'PayTime' );
    209210
    210211        } elseif ( '7' === $pay_type ) {
  • wpbr-payuni-payment/tags/1.8.1/src/Gateways/Cvs.php

    r3131276 r3470782  
    8787            OrderMeta::CVS_STORE       => __( 'CVS Store', 'wpbr-payuni-payment' ),
    8888            OrderMeta::CVS_EXPIRE_DATE => __( 'Expire Date', 'wpbr-payuni-payment' ),
     89            OrderMeta::CVS_PAY_TIME    => __( 'Pay Time', 'wpbr-payuni-payment' ),
    8990        );
    9091
  • wpbr-payuni-payment/tags/1.8.1/src/PayuniPayment.php

    r3470721 r3470782  
    567567        }
    568568
    569         // Schedule cancellation at 00:10 the day after expire date.
     569        // Schedule cancellation after expire date + delay.
     570        $delay_minutes = absint( get_option( 'payuni_payment_auto_cancel_delay_minutes', 10 ) );
    570571        $dt->modify( '+1 day' );
    571         $dt->setTime( 0, 10, 0 );
     572        $dt->setTime( 0, 0, 0 );
     573        $dt->modify( '+' . $delay_minutes . ' minutes' );
    572574        $timestamp = $dt->getTimestamp();
    573575
     
    689691        }
    690692
     693        $delay_minutes = absint( get_option( 'payuni_payment_auto_cancel_delay_minutes', 10 ) );
    691694        $dt->modify( '+1 day' );
    692695        $dt->setTime( 0, 0, 0 );
     696        $dt->modify( '+' . $delay_minutes . ' minutes' );
    693697        $timestamp = $dt->getTimestamp();
    694698
     
    711715
    712716    /**
     717     * Update order meta from PAYUNi query result.
     718     *
     719     * @param \WC_Order $order        The order object.
     720     * @param array     $query_result The query result from PAYUNi.
     721     *
     722     * @return void
     723     */
     724    private static function update_order_meta_from_query( $order, $query_result ) {
     725        $order->update_meta_data( OrderMeta::TRADE_STATUS, $query_result['TradeStatus'] );
     726        $order->update_meta_data( OrderMeta::UNI_NO, $query_result['TradeNo'] );
     727        $order->update_meta_data( OrderMeta::PAYUNI_ORDER_NO, $query_result['MerTradeNo'] );
     728        $order->update_meta_data( OrderMeta::TRADE_AMOUNT, $query_result['TradeAmt'] );
     729        $order->update_meta_data( OrderMeta::PAY_TYPE, $query_result['PaymentType'] );
     730
     731        $pay_type = $query_result['PaymentType'];
     732
     733        if ( '2' === $pay_type ) {
     734            // ATM.
     735            if ( ! empty( $query_result['OffPayNo'] ) ) {
     736                $order->update_meta_data( OrderMeta::AMT_PAY_NO, $query_result['OffPayNo'] );
     737            }
     738            if ( ! empty( $query_result['OffChannel'] ) ) {
     739                $order->update_meta_data( OrderMeta::AMT_BANK_TYPE, $query_result['OffChannel'] );
     740            }
     741            if ( ! empty( $query_result['OffExpireTime'] ) ) {
     742                $order->update_meta_data( OrderMeta::AMT_EXPIRE_DATE, $query_result['OffExpireTime'] );
     743            }
     744            if ( ! empty( $query_result['PaymentDay'] ) && '0000-00-00 00:00:00' !== $query_result['PaymentDay'] ) {
     745                $order->update_meta_data( OrderMeta::AMT_PAY_TIME, $query_result['PaymentDay'] );
     746            }
     747        } elseif ( '3' === $pay_type ) {
     748            // CVS.
     749            if ( ! empty( $query_result['OffPayNo'] ) ) {
     750                $order->update_meta_data( OrderMeta::CVS_PAY_NO, $query_result['OffPayNo'] );
     751            }
     752            if ( ! empty( $query_result['OffChannel'] ) ) {
     753                $store = ( 'SEVEN' === $query_result['OffChannel'] ) ? '7-11' : $query_result['OffChannel'];
     754                $order->update_meta_data( OrderMeta::CVS_STORE, $store );
     755            }
     756            if ( ! empty( $query_result['OffExpireTime'] ) ) {
     757                $order->update_meta_data( OrderMeta::CVS_EXPIRE_DATE, $query_result['OffExpireTime'] );
     758            }
     759            if ( ! empty( $query_result['PaymentDay'] ) && '0000-00-00 00:00:00' !== $query_result['PaymentDay'] ) {
     760                $order->update_meta_data( OrderMeta::CVS_PAY_TIME, $query_result['PaymentDay'] );
     761            }
     762        }
     763
     764        $order->save();
     765    }
     766
     767    /**
    713768     * Handle cancellation of expired ATM/CVS orders.
    714769     *
     
    741796        }
    742797
    743         $order->update_status( 'cancelled', __( 'Order auto-cancelled: payment has expired.', 'wpbr-payuni-payment' ) );
    744         self::log( sprintf( 'Order %d auto-cancelled due to expired %s payment.', $order_id, $payment_method ) );
     798        // 取消前先查詢交易狀態,避免誤取消已付款訂單.
     799        try {
     800            $query_result = PaymentRequest::query( $order_id );
     801
     802            if ( false === $query_result ) {
     803                $order->add_order_note( __( 'Auto-cancel aborted: failed to query PAYUNi transaction status. Please check manually.', 'wpbr-payuni-payment' ) );
     804                self::log( sprintf( 'Auto-cancel aborted for order %d: PAYUNi query failed.', $order_id ), 'warning' );
     805                return;
     806            }
     807
     808            // 更新 PAYUNi order meta(查詢結果).
     809            self::update_order_meta_from_query( $order, $query_result );
     810
     811            if ( TradeStatus::PAID === $query_result['TradeStatus'] ) {
     812                $order->payment_complete( $query_result['TradeNo'] );
     813                /* translators: %s is the PAYUNi trade status code */
     814                $order->add_order_note( sprintf( __( 'Auto-cancel aborted: PAYUNi query confirmed payment received. Order marked as paid. (TradeStatus: %s)', 'wpbr-payuni-payment' ), $query_result['TradeStatus'] ) );
     815                self::log( sprintf( 'Order %d confirmed paid via PAYUNi query during auto-cancel.', $order_id ) );
     816                return;
     817            }
     818        } catch ( \Exception $e ) {
     819            $order->add_order_note( sprintf( __( 'Auto-cancel aborted: PAYUNi query error: %s. Please check manually.', 'wpbr-payuni-payment' ), $e->getMessage() ) );
     820            self::log( sprintf( 'Auto-cancel aborted for order %d: query exception: %s', $order_id, $e->getMessage() ), 'error' );
     821            return;
     822        }
     823
     824        /* translators: %s is the PAYUNi trade status code */
     825        $order->update_status( 'cancelled', sprintf( __( 'Order auto-cancelled: payment has expired. (TradeStatus: %s)', 'wpbr-payuni-payment' ), $query_result['TradeStatus'] ) );
     826        self::log( sprintf( 'Order %d auto-cancelled due to expired %s payment. TradeStatus: %s', $order_id, $payment_method, $query_result['TradeStatus'] ) );
    745827    }
    746828
  • wpbr-payuni-payment/tags/1.8.1/src/Settings/SettingsTab.php

    r3470721 r3470782  
    131131                ),
    132132                array(
     133                    'title'             => __( 'Auto Cancel Delay (minutes)', 'wpbr-payuni-payment' ),
     134                    'type'              => 'number',
     135                    'default'           => '10',
     136                    'desc'              => __( 'Delay in minutes after the payment deadline before auto-cancelling the order.', 'wpbr-payuni-payment' ),
     137                    'id'                => 'payuni_payment_auto_cancel_delay_minutes',
     138                    'css'               => 'width: 80px;',
     139                    'custom_attributes' => array(
     140                        'min'  => '0',
     141                        'step' => '1',
     142                    ),
     143                ),
     144                array(
    133145                    'type' => 'sectionend',
    134146                    'id'   => 'payment_general_setting',
  • wpbr-payuni-payment/tags/1.8.1/src/Utils/OrderMeta.php

    r3166905 r3470782  
    3939    const CVS_STORE            = '_wpbr_payuni_upp_cvs_store'; // 付款超商.
    4040    const CVS_EXPIRE_DATE      = '_wpbr_payuni_upp_cvs_expiredate'; // 到期日.
     41    const CVS_PAY_TIME         = '_wpbr_payuni_upp_cvs_paytime'; // 付款時間.
    4142    const AFTEE_PAY_NO         = '_wpbr_payuni_upp_aftee_payno'; // 付款序號.
    4243    const AFTEE_PAY_TIME       = '_wpbr_payuni_upp_aftee_paytime'; // 付款時間.
  • wpbr-payuni-payment/tags/1.8.1/vendor/composer/installed.php

    r3470721 r3470782  
    22    'root' => array(
    33        'name' => 'wpbrewer/wpbr-payuni-payment',
    4         'pretty_version' => '1.8.0',
    5         'version' => '1.8.0.0',
    6         'reference' => '6c86b1c19ce23d38adc7eecf086c865331b9fd75',
     4        'pretty_version' => '1.8.1',
     5        'version' => '1.8.1.0',
     6        'reference' => '5095643dd195574a22bd75eae685c121d20f2031',
    77        'type' => 'library',
    88        'install_path' => __DIR__ . '/../../',
     
    1212    'versions' => array(
    1313        'wpbrewer/wpbr-payuni-payment' => array(
    14             'pretty_version' => '1.8.0',
    15             'version' => '1.8.0.0',
    16             'reference' => '6c86b1c19ce23d38adc7eecf086c865331b9fd75',
     14            'pretty_version' => '1.8.1',
     15            'version' => '1.8.1.0',
     16            'reference' => '5095643dd195574a22bd75eae685c121d20f2031',
    1717            'type' => 'library',
    1818            'install_path' => __DIR__ . '/../../',
  • wpbr-payuni-payment/tags/1.8.1/wpbr-payuni-payment.php

    r3470721 r3470782  
    99 * Description:       Provides PAYUNi UPP(UNiPaypage) Payment for WooCommerce.
    1010 * Plugin URI:        https://wpbrewer.com/product/wpbr-payuni-payment
    11  * Version:           1.8.0
     11 * Version:           1.8.1
    1212 * Author:            WPBrewer
    1313 * Author URI:        https://wpbrewer.com/
     
    2828define( 'WPBR_PAYUNI_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
    2929define( 'WPBR_PAYUNI_BASENAME', plugin_basename( __FILE__ ) );
    30 define( 'WPBR_PAYUNI_PAYMENT_VERSION', '1.8.0' );
     30define( 'WPBR_PAYUNI_PAYMENT_VERSION', '1.8.1' );
    3131
    3232require_once WPBR_PAYUNI_PLUGIN_DIR . 'vendor/autoload.php';
  • wpbr-payuni-payment/trunk/languages/wpbr-payuni-payment-zh_TW.l10n.php

    r3470721 r3470782  
    11<?php
    2 return ['domain'=>NULL,'plural-forms'=>'nplurals=1; plural=0;','language'=>'zh_TW','project-id-version'=>'PAYUNi Payment for WooCommerce','pot-creation-date'=>'2025-07-23 15:16+0800','po-revision-date'=>'2025-07-23 15:56+0800','x-generator'=>'Poedit 3.6','messages'=>['Enable/Disable'=>'啟用/關閉','Enable'=>'啟用','Title'=>'付款方式名稱','This controls the title which the user sees during checkout.'=>'控制使用者在結帳時所看到的標題.','PAYUNi AFTEE Payment'=>'PAYUNi AFTEE 付款','Description'=>'說明','This controls the description which the user sees during checkout.'=>'這是使用者結帳時看到的付款方式說明。','Minimum Amount'=>'最低付款金額','Minimum amount to use this payment gateway.'=>'使用分期付款的最低訂單金額。','Incomplete Payment Message'=>'付款未完成提示訊息','This controls the message displayed on thank you page when the payment is incomplated.'=>'當付款未完成或付款失敗時在訂單感謝頁面上顯示的訊息。','PAYUNi Apple Pay Payment'=>'PAYUNi Apple Pay','PAYUNi ATM Payment'=>'PAYUNi 虛擬帳號 (ATM) 付款','Expire Date'=>'付款到期日','This controls the expire date of the payment.'=>'付款到期天數(對小值為0,最大值為7)','PAYUNi Installment Payment'=>'PAYUNi Installment Payment','PAYUNi Credit Card Payment'=>'PAYUNi 信用卡付款','PAYUNi UnionPay'=>'PAYUNi 銀聯卡','PAYUNi CVS Payment'=>'PAYUNi 超商代碼付款','PAYUNi Google Pay Payment'=>'PAYUNi Google Pay','PAYUNi LINE Pay Payment'=>'PAYUNi LINE Pay','PAYUNi  Samsung Pay Payment'=>'PAYUNi Samsung Pay','Invoice No'=>'發票編號','Unissue'=>'未開立','PAYUNi Payment Detail'=>'PAYUNi 付款資訊','Order No'=>'訂單編號','E-Invoice No'=>'發票編號','E-Invoice Amount'=>'發票金額','E-Invoice Time'=>'開立時間','Issue TypeIssue'=>'開立發票','Issue TypeVoid'=>'作廢發票','Issue TypeUnknown Issue Type'=>'未知的發票類別','E-Invoice Type'=>'發票類別','Mobile Code'=>'手機條碼','CDC Code'=>'自然人憑證','Amego Member'=>'光貿會員載具','Donation'=>'捐贈','Company'=>'公司發票','Unknown Issue Info'=>'未知的開立方式','Issue Info'=>'開立方式','Issued'=>'已開立','Failed'=>'失敗','Voided'=>'已作廢','Unknown Issue Status'=>'未知的開立狀態','Issue Status'=>'開立狀態','Redirecting...'=>'重新導向中...','Unable to find order #%s'=>'找不到訂單編號 #%s','The refund amount for order #%s should be the same as the order total for installment payment.'=>'訂單#%s的退款金額應與分期付款的訂單總額相同。','Unable to find transaction id for order #%s'=>'找不到訂單交易編號 #%s','Unable to Query Order status before refund'=>'無法於退款前執行訂單交易狀態查詢','CloseStatus is not refundable. CloseStatus: %s'=>'請款狀態 (CloseStatrus) 非可退款狀態,當日付款訂單請於隔日再執行退款。 請款狀態:%s','Unable to Refund this Order. TradeStatus: %1$s, CloseStatus: %2$s'=>'訂單退款失敗。交易狀態:%1$s,請款狀態:%2$s','Unable to Refund this Order. TradeStatus:%s'=>'退款失敗。交易狀態:%s','PAYUNi payment refund success. Status: %1$s, Message: %2$s, Refund Amount: %3$s'=>'退款成功。狀態:%1$s,訊息:%2$s,退款金額:%3$s','PAYUNi query returned SUCCESS but no order result found.'=>'PAYUNi 查詢返回 SUCCESS,但沒有訂單結果。','PAYUNi query succeed. Query result: %s'=>'PAYUNi 查詢成功. 查詢結果: %s','PAYUNi query failed. Query result: %s'=>'PAYUNi 查詢失敗。 查詢結果: %s','PAYUNi Notify'=>'PAYUNi Notify','Status code:'=>'狀態代碼:','Transaction message:'=>'狀態訊息:','MerTradeNo:'=>'商店訂單編號:','UNi number:'=>'UNi 序號:','Payment type:'=>'付款方式:','PAYUNi Return'=>'PAYUNi Return','AFTEEPay No'=>'交易 ID','Pay Time'=>'付款時間','Auth Type'=>'授權類型','Auth Date'=>'授權日期','Auth Time'=>'授權時間','ATMPay No'=>'付款帳號','Bank Code'=>'銀行代碼','Account 5 No'=>'帳號後5碼','PAYUNi Installment Payment (12 Installments)'=>'PAYUNi 分期付款 (12期)','PAYUNi Installment Payment (18 Installments)'=>'PAYUNi 分期付款 (18期)','PAYUNi Installment Payment (24 Installments)'=>'PAYUNi 分期付款 (24期)','PAYUNi Installment Payment (3 Installments)'=>'PAYUNi 分期付款 (3期)','PAYUNi Installment Payment (30 Installments)'=>'PAYUNi 分期付款 (30期)','PAYUNi Installment Payment (6 Installments)'=>'PAYUNi 分期付款 (6期)','PAYUNi Installment Payment (9 Installments)'=>'PAYUNi 分期付款 (9期)','CVSPay No'=>'超商代碼','CVS Store'=>'付款超商','Proceed to PAYUNi'=>'前往統一金流付款','If the payment detail is not displayed. Please wait for a moment and reload the page.'=>'如果未顯示付款詳細資訊。請稍等片刻,再重新載入頁面。','E-Invoice Detail'=>'電子發票資訊','%1$s is a payment gateway provided by %2$s'=>'%1$s 是由 %2$s 所提供的付款方式','PAYUNi'=>'PAYUNi','We have received your order, but the payment is incompleted.'=>'我們已經收到您的訂單,但是付款尚未完成,請儘速付款,若有問題請聯繫商店管理員。','PAYUNi LINE Pay'=>'PAYUNi LINE Pay','LINE PayPay No'=>'LINE Pay 交易編號','PAYUNi Samsung Pay'=>'PAYUNi Samsung Pay','PAYUNi Installment Payment (%s Installments)'=>'PAYUNi 分期付款 (%s期)','Card Last 4 No'=>'信用卡後4碼','Installments'=>'分期付款期數','First Amount'=>'第一期金額','Each Amount'=>'每期','Trade No'=>'UNi序號','Trade Amount'=>'訂單金額','Trade Status'=>'訂單狀態','Message'=>'訊息','General Settings'=>'一般設定','Payment Settings'=>'付款方式設定','Unsecure AJAX call'=>'不安全的 AJAX 呼叫','No such order id'=>'沒有這個訂單編號','PAYUNi Query Successfully'=>'PAYUNi 查詢成功','PAYUNi query failed. Please check the order notes for details.'=>'PAYUNi 查詢失敗。請查看訂單備註了解詳情。','PAYUNi Query Failed!'=>'PAYUNi 查詢失敗!','Debug Log'=>'除錯紀錄','Log PAYUNi payment message'=>'記錄 PAYUNi 交易資訊','You Can find logs with source name <strong>wpbr-payuni-payment</strong> at <strong>WooCommerce -> Status -> Logs</strong>. %s'=>'你可以在 <strong>WooCommerce -> 狀態 -> 日誌紀錄</strong> 中找到來源名稱為 <strong>wpbr-payuni-payment</strong> 的日誌紀錄。 %s','Number of Payments'=>'欲啟用的分期付款期數','The number of payments display on Payments section, after setting you still need to eanble each payment in Payments section. %s'=>'顯示在後台付款方式設定中的分期付款期數,設定完成仍需至付款方式設定中個別啟用指定期數的付款方式。%s','Language'=>'語系','Traditional Chinese'=>'繁體中文','English'=>'英文','The language of the PAYUNi checkout page.'=>'統一金流支付頁的語系設定。','E-Invoice'=>'電子發票','Enable E-Invoice'=>'啟用電子發票功能','You need to register Amego e-invoice and enable e-invoice feature at PAYUNi website.'=>'需於統一金流後台註冊光貿電子發票並啟用電子發票功能。','API Settings'=>'API 設定','Enter your PAYUNi API credentials'=>'請輸入 PAYUNi 串接資料','Test Mode'=>'測試模式','When enabled, you need to use the test-only data below.'=>'當啟用測試模式時,請填入測試環境的串接資料。','Test MerchantID'=>'測試商店代號 (MerID)','This is the test MerchantID when you apply PAYUNi API'=>'PAYUNi 測試環境的商店代號','Test Hash Key'=>'測試 Hash Key','This is the test Hash Key when you apply PAYUNi API'=>'PAYUNi 測試環境的 Hash Key','Test Hash IV'=>'測試 Hash IV','This is the test Hash IV when you apply PAYUNi API'=>'PAYUNi 測試環境的 Hash IV','MerchantID'=>'商店代號 (MerID)','This is the MerchantID when you apply PAYUNi API'=>'這是您申請 PAYUNi 時的商店代號','Hash Key'=>'Hash Key','This is the Hash Key when you apply PAYUNi API'=>'這是PAYUNi 提供的商店專屬 Hash Key','Hash IV'=>'Hash IV','This is the Hash IV when you apply PAYUNi API'=>'這是 PAYUNi 提供的商店專屬 HashIV','View logs'=>'檢視除錯紀錄','Go to Payment Settings'=>'設定付款方式','Taiwan Bank'=>'臺灣銀行','CTBC Bank'=>'中國信託','Cathay Bank'=>'國泰世華','Unknown Bank'=>'未知的銀行','Credit Card'=>'信用卡','ATM'=>'ATM 轉帳','CVS Code'=>'超商代碼','C2C'=>'超商取貨付款','ICash'=>'ICash','AFTEE'=>'AFTEE','LINE Pay'=>'LINE Pay','Delivery'=>'宅配到付','Unknown Payment Type'=>'未知的付款方式','Trade StatusPayment Number Taken'=>'取號成功','Trade StatusCredit Valid'=>'信用審查成功','Trade StatusCredit Valid or Get Number Success'=>'信用審查成功或取號成功','Trade StatusPaid'=>'已付款','Trade StatusPayment Fail'=>'付款失敗','Trade StatusPayment Cancel'=>'付款取消','Trade StatusTransaction Expired'=>'交易過期','Trade StatusTo be Confirmed'=>'待確認','Trade StatusUnpaid'=>'未付款','Trade StatusUnknown Trade Status'=>'未知的交易狀態','PAYUNi Payment needs WooCommerce, please intall and activate WooCommerce first!'=>'PAYUNi 統一金流需要 WooCommerce 才能正常使用,請先安裝 WooCommerce!','Pay with PAYUNi'=>'Pay with PAYUNi','https://wpbrewer.com/product/wpbr-payuni-payment'=>'https://wpbrewer.com/product/wpbr-payuni-payment','Provides PAYUNi UPP(UNiPaypage) Payment for WooCommerce.'=>'使用PAYUNi 統一金流提供的整合式收款頁 (UNiPaypage/UPP) 為你的 WooCommerce 商店提供多元的付款方式。','WPBrewer'=>'WPBrewer','https://wpbrewer.com/'=>'https://wpbrewer.com/','Auto Cancel'=>'自動取消','Auto-cancellation schedule removed.'=>'已移除自動取消排程。','Scheduled auto-cancellation at %s if payment is not completed.'=>'自動取消排程已建立於 %s,若屆時尚未付款將自動取消訂單。','Auto-cancel feature is not enabled.'=>'自動取消功能未啟用。','This order does not support auto-cancellation.'=>'此訂單不支援自動取消。','No expire date found for this order.'=>'此訂單沒有付款到期日。','Failed to parse expire date: %s'=>'無法解析付款到期日:%s','Auto-cancellation scheduled at %s.'=>'自動取消排程已建立於 %s。','Order auto-cancelled: payment has expired.'=>'訂單已自動取消:付款已逾期。','Auto Cancel Expired ATM/CVS Orders'=>'自動取消逾期的ATM/超商代碼訂單','Enable auto-cancellation for expired ATM/CVS orders'=>'啟用自動取消','Automatically cancel ATM and CVS orders when the payment deadline has passed.'=>'當超過付款期限,系統會自動取消 ATM 和超商代碼訂單。']];
     2return ['domain'=>NULL,'plural-forms'=>'nplurals=1; plural=0;','language'=>'zh_TW','project-id-version'=>'PAYUNi Payment for WooCommerce','pot-creation-date'=>'2025-07-23 15:16+0800','po-revision-date'=>'2025-07-23 15:56+0800','x-generator'=>'Poedit 3.6','messages'=>['Enable/Disable'=>'啟用/關閉','Enable'=>'啟用','Title'=>'付款方式名稱','This controls the title which the user sees during checkout.'=>'控制使用者在結帳時所看到的標題.','PAYUNi AFTEE Payment'=>'PAYUNi AFTEE 付款','Description'=>'說明','This controls the description which the user sees during checkout.'=>'這是使用者結帳時看到的付款方式說明。','Minimum Amount'=>'最低付款金額','Minimum amount to use this payment gateway.'=>'使用分期付款的最低訂單金額。','Incomplete Payment Message'=>'付款未完成提示訊息','This controls the message displayed on thank you page when the payment is incomplated.'=>'當付款未完成或付款失敗時在訂單感謝頁面上顯示的訊息。','PAYUNi Apple Pay Payment'=>'PAYUNi Apple Pay','PAYUNi ATM Payment'=>'PAYUNi 虛擬帳號 (ATM) 付款','Expire Date'=>'付款到期日','This controls the expire date of the payment.'=>'付款到期天數(對小值為0,最大值為7)','PAYUNi Installment Payment'=>'PAYUNi Installment Payment','PAYUNi Credit Card Payment'=>'PAYUNi 信用卡付款','PAYUNi UnionPay'=>'PAYUNi 銀聯卡','PAYUNi CVS Payment'=>'PAYUNi 超商代碼付款','PAYUNi Google Pay Payment'=>'PAYUNi Google Pay','PAYUNi LINE Pay Payment'=>'PAYUNi LINE Pay','PAYUNi  Samsung Pay Payment'=>'PAYUNi Samsung Pay','Invoice No'=>'發票編號','Unissue'=>'未開立','PAYUNi Payment Detail'=>'PAYUNi 付款資訊','Order No'=>'訂單編號','E-Invoice No'=>'發票編號','E-Invoice Amount'=>'發票金額','E-Invoice Time'=>'開立時間','Issue TypeIssue'=>'開立發票','Issue TypeVoid'=>'作廢發票','Issue TypeUnknown Issue Type'=>'未知的發票類別','E-Invoice Type'=>'發票類別','Mobile Code'=>'手機條碼','CDC Code'=>'自然人憑證','Amego Member'=>'光貿會員載具','Donation'=>'捐贈','Company'=>'公司發票','Unknown Issue Info'=>'未知的開立方式','Issue Info'=>'開立方式','Issued'=>'已開立','Failed'=>'失敗','Voided'=>'已作廢','Unknown Issue Status'=>'未知的開立狀態','Issue Status'=>'開立狀態','Redirecting...'=>'重新導向中...','Unable to find order #%s'=>'找不到訂單編號 #%s','The refund amount for order #%s should be the same as the order total for installment payment.'=>'訂單#%s的退款金額應與分期付款的訂單總額相同。','Unable to find transaction id for order #%s'=>'找不到訂單交易編號 #%s','Unable to Query Order status before refund'=>'無法於退款前執行訂單交易狀態查詢','CloseStatus is not refundable. CloseStatus: %s'=>'請款狀態 (CloseStatrus) 非可退款狀態,當日付款訂單請於隔日再執行退款。 請款狀態:%s','Unable to Refund this Order. TradeStatus: %1$s, CloseStatus: %2$s'=>'訂單退款失敗。交易狀態:%1$s,請款狀態:%2$s','Unable to Refund this Order. TradeStatus:%s'=>'退款失敗。交易狀態:%s','PAYUNi payment refund success. Status: %1$s, Message: %2$s, Refund Amount: %3$s'=>'退款成功。狀態:%1$s,訊息:%2$s,退款金額:%3$s','PAYUNi query returned SUCCESS but no order result found.'=>'PAYUNi 查詢返回 SUCCESS,但沒有訂單結果。','PAYUNi query succeed. Query result: %s'=>'PAYUNi 查詢成功. 查詢結果: %s','PAYUNi query failed. Query result: %s'=>'PAYUNi 查詢失敗。 查詢結果: %s','PAYUNi Notify'=>'PAYUNi Notify','Status code:'=>'狀態代碼:','Transaction message:'=>'狀態訊息:','MerTradeNo:'=>'商店訂單編號:','UNi number:'=>'UNi 序號:','Payment type:'=>'付款方式:','PAYUNi Return'=>'PAYUNi Return','AFTEEPay No'=>'交易 ID','Pay Time'=>'付款時間','Auth Type'=>'授權類型','Auth Date'=>'授權日期','Auth Time'=>'授權時間','ATMPay No'=>'付款帳號','Bank Code'=>'銀行代碼','Account 5 No'=>'帳號後5碼','PAYUNi Installment Payment (12 Installments)'=>'PAYUNi 分期付款 (12期)','PAYUNi Installment Payment (18 Installments)'=>'PAYUNi 分期付款 (18期)','PAYUNi Installment Payment (24 Installments)'=>'PAYUNi 分期付款 (24期)','PAYUNi Installment Payment (3 Installments)'=>'PAYUNi 分期付款 (3期)','PAYUNi Installment Payment (30 Installments)'=>'PAYUNi 分期付款 (30期)','PAYUNi Installment Payment (6 Installments)'=>'PAYUNi 分期付款 (6期)','PAYUNi Installment Payment (9 Installments)'=>'PAYUNi 分期付款 (9期)','CVSPay No'=>'超商代碼','CVS Store'=>'付款超商','Proceed to PAYUNi'=>'前往統一金流付款','If the payment detail is not displayed. Please wait for a moment and reload the page.'=>'如果未顯示付款詳細資訊。請稍等片刻,再重新載入頁面。','E-Invoice Detail'=>'電子發票資訊','%1$s is a payment gateway provided by %2$s'=>'%1$s 是由 %2$s 所提供的付款方式','PAYUNi'=>'PAYUNi','We have received your order, but the payment is incompleted.'=>'我們已經收到您的訂單,但是付款尚未完成,請儘速付款,若有問題請聯繫商店管理員。','PAYUNi LINE Pay'=>'PAYUNi LINE Pay','LINE PayPay No'=>'LINE Pay 交易編號','PAYUNi Samsung Pay'=>'PAYUNi Samsung Pay','PAYUNi Installment Payment (%s Installments)'=>'PAYUNi 分期付款 (%s期)','Card Last 4 No'=>'信用卡後4碼','Installments'=>'分期付款期數','First Amount'=>'第一期金額','Each Amount'=>'每期','Trade No'=>'UNi序號','Trade Amount'=>'訂單金額','Trade Status'=>'訂單狀態','Message'=>'訊息','General Settings'=>'一般設定','Payment Settings'=>'付款方式設定','Unsecure AJAX call'=>'不安全的 AJAX 呼叫','No such order id'=>'沒有這個訂單編號','PAYUNi Query Successfully'=>'PAYUNi 查詢成功','PAYUNi query failed. Please check the order notes for details.'=>'PAYUNi 查詢失敗。請查看訂單備註了解詳情。','PAYUNi Query Failed!'=>'PAYUNi 查詢失敗!','Debug Log'=>'除錯紀錄','Log PAYUNi payment message'=>'記錄 PAYUNi 交易資訊','You Can find logs with source name <strong>wpbr-payuni-payment</strong> at <strong>WooCommerce -> Status -> Logs</strong>. %s'=>'你可以在 <strong>WooCommerce -> 狀態 -> 日誌紀錄</strong> 中找到來源名稱為 <strong>wpbr-payuni-payment</strong> 的日誌紀錄。 %s','Number of Payments'=>'欲啟用的分期付款期數','The number of payments display on Payments section, after setting you still need to eanble each payment in Payments section. %s'=>'顯示在後台付款方式設定中的分期付款期數,設定完成仍需至付款方式設定中個別啟用指定期數的付款方式。%s','Language'=>'語系','Traditional Chinese'=>'繁體中文','English'=>'英文','The language of the PAYUNi checkout page.'=>'統一金流支付頁的語系設定。','E-Invoice'=>'電子發票','Enable E-Invoice'=>'啟用電子發票功能','You need to register Amego e-invoice and enable e-invoice feature at PAYUNi website.'=>'需於統一金流後台註冊光貿電子發票並啟用電子發票功能。','API Settings'=>'API 設定','Enter your PAYUNi API credentials'=>'請輸入 PAYUNi 串接資料','Test Mode'=>'測試模式','When enabled, you need to use the test-only data below.'=>'當啟用測試模式時,請填入測試環境的串接資料。','Test MerchantID'=>'測試商店代號 (MerID)','This is the test MerchantID when you apply PAYUNi API'=>'PAYUNi 測試環境的商店代號','Test Hash Key'=>'測試 Hash Key','This is the test Hash Key when you apply PAYUNi API'=>'PAYUNi 測試環境的 Hash Key','Test Hash IV'=>'測試 Hash IV','This is the test Hash IV when you apply PAYUNi API'=>'PAYUNi 測試環境的 Hash IV','MerchantID'=>'商店代號 (MerID)','This is the MerchantID when you apply PAYUNi API'=>'這是您申請 PAYUNi 時的商店代號','Hash Key'=>'Hash Key','This is the Hash Key when you apply PAYUNi API'=>'這是PAYUNi 提供的商店專屬 Hash Key','Hash IV'=>'Hash IV','This is the Hash IV when you apply PAYUNi API'=>'這是 PAYUNi 提供的商店專屬 HashIV','View logs'=>'檢視除錯紀錄','Go to Payment Settings'=>'設定付款方式','Taiwan Bank'=>'臺灣銀行','CTBC Bank'=>'中國信託','Cathay Bank'=>'國泰世華','Unknown Bank'=>'未知的銀行','Credit Card'=>'信用卡','ATM'=>'ATM 轉帳','CVS Code'=>'超商代碼','C2C'=>'超商取貨付款','ICash'=>'ICash','AFTEE'=>'AFTEE','LINE Pay'=>'LINE Pay','Delivery'=>'宅配到付','Unknown Payment Type'=>'未知的付款方式','Trade StatusPayment Number Taken'=>'取號成功','Trade StatusCredit Valid'=>'信用審查成功','Trade StatusCredit Valid or Get Number Success'=>'信用審查成功或取號成功','Trade StatusPaid'=>'已付款','Trade StatusPayment Fail'=>'付款失敗','Trade StatusPayment Cancel'=>'付款取消','Trade StatusTransaction Expired'=>'交易過期','Trade StatusTo be Confirmed'=>'待確認','Trade StatusUnpaid'=>'未付款','Trade StatusUnknown Trade Status'=>'未知的交易狀態','PAYUNi Payment needs WooCommerce, please intall and activate WooCommerce first!'=>'PAYUNi 統一金流需要 WooCommerce 才能正常使用,請先安裝 WooCommerce!','Pay with PAYUNi'=>'Pay with PAYUNi','https://wpbrewer.com/product/wpbr-payuni-payment'=>'https://wpbrewer.com/product/wpbr-payuni-payment','Provides PAYUNi UPP(UNiPaypage) Payment for WooCommerce.'=>'使用PAYUNi 統一金流提供的整合式收款頁 (UNiPaypage/UPP) 為你的 WooCommerce 商店提供多元的付款方式。','WPBrewer'=>'WPBrewer','https://wpbrewer.com/'=>'https://wpbrewer.com/','Auto Cancel'=>'自動取消','Auto-cancellation schedule removed.'=>'已移除自動取消排程。','Scheduled auto-cancellation at %s if payment is not completed.'=>'自動取消排程已建立於 %s,若屆時尚未付款將自動取消訂單。','Auto-cancel feature is not enabled.'=>'自動取消功能未啟用。','This order does not support auto-cancellation.'=>'此訂單不支援自動取消。','No expire date found for this order.'=>'此訂單沒有付款到期日。','Failed to parse expire date: %s'=>'無法解析付款到期日:%s','Auto-cancellation scheduled at %s.'=>'自動取消排程已建立於 %s。','Auto Cancel Expired ATM/CVS Orders'=>'自動取消逾期的ATM/超商代碼訂單','Enable auto-cancellation for expired ATM/CVS orders'=>'啟用自動取消','Automatically cancel ATM and CVS orders when the payment deadline has passed.'=>'當超過付款期限,系統會自動取消 ATM 和超商代碼訂單。','Auto Cancel Delay (minutes)'=>'自動取消延遲時間(分鐘)','Delay in minutes after the payment deadline before auto-cancelling the order.'=>'超過付款期限後,延遲多少分鐘再自動取消訂單。','Auto-cancel aborted: failed to query PAYUNi transaction status. Please check manually.'=>'自動取消中止:無法查詢 PAYUNi 交易狀態,請至統一激流後台確認交易狀態。','Auto-cancel aborted: PAYUNi query confirmed payment received. Order marked as paid. (TradeStatus: %s)'=>'自動取消中止:PAYUNi 查詢確認交易已付款,訂單已標記為已付款。(TradeStatus: %s)','Auto-cancel aborted: PAYUNi query error: %s. Please check manually.'=>'自動取消中止:PAYUNi 查詢錯誤:%s,請自行至統一金流後台確認交易狀態。','Order auto-cancelled: payment has expired. (TradeStatus: %s)'=>'訂單已自動取消:付款已逾期。(TradeStatus: %s)']];
  • wpbr-payuni-payment/trunk/languages/wpbr-payuni-payment-zh_TW.po

    r3470721 r3470782  
    373373
    374374#. translators:  %s is the decrypted result
    375 #: src/Api/PaymentRequest.php:348
     375#: src/Api/PaymentRequest.php:366
    376376#, php-format
    377377msgid "PAYUNi query succeed. Query result: %s"
     
    379379
    380380#. translators:  %s is the decrypted result
    381 #: src/Api/PaymentRequest.php:355
     381#: src/Api/PaymentRequest.php:373
    382382#, php-format
    383383msgid "PAYUNi query failed. Query result: %s"
    384384msgstr "PAYUNi 查詢失敗。 查詢結果: %s"
    385385
    386 #: src/Api/PaymentResponse.php:68
     386#: src/Api/PaymentResponse.php:71
    387387msgid "PAYUNi Notify"
    388388msgstr "PAYUNi Notify"
    389389
    390 #: src/Api/PaymentResponse.php:69
    391 #: src/Api/PaymentResponse.php:130
     390#: src/Api/PaymentResponse.php:72
     391#: src/Api/PaymentResponse.php:133
    392392msgid "Status code:"
    393393msgstr "狀態代碼:"
    394394
    395 #: src/Api/PaymentResponse.php:70
    396 #: src/Api/PaymentResponse.php:131
     395#: src/Api/PaymentResponse.php:73
     396#: src/Api/PaymentResponse.php:134
    397397msgid "Transaction message:"
    398398msgstr "狀態訊息:"
    399399
    400 #: src/Api/PaymentResponse.php:71
    401 #: src/Api/PaymentResponse.php:132
     400#: src/Api/PaymentResponse.php:74
     401#: src/Api/PaymentResponse.php:135
    402402msgid "MerTradeNo:"
    403403msgstr "商店訂單編號:"
    404404
    405 #: src/Api/PaymentResponse.php:72
    406 #: src/Api/PaymentResponse.php:133
     405#: src/Api/PaymentResponse.php:75
     406#: src/Api/PaymentResponse.php:136
    407407msgid "UNi number:"
    408408msgstr "UNi 序號:"
    409409
    410 #: src/Api/PaymentResponse.php:73
    411 #: src/Api/PaymentResponse.php:134
     410#: src/Api/PaymentResponse.php:76
     411#: src/Api/PaymentResponse.php:137
    412412msgid "Payment type:"
    413413msgstr "付款方式:"
    414414
    415 #: src/Api/PaymentResponse.php:129
     415#: src/Api/PaymentResponse.php:132
    416416msgid "PAYUNi Return"
    417417msgstr "PAYUNi Return"
     
    424424#: src/Gateways/Aftee.php:88
    425425#: src/Gateways/Atm.php:88
     426#: src/Gateways/Cvs.php:89
    426427msgid "Pay Time"
    427428msgstr "付款時間"
     
    534535msgstr "PAYUNi"
    535536
    536 #: src/Gateways/GatewayBase.php:278
     537#: src/Gateways/GatewayBase.php:285
    537538msgid "We have received your order, but the payment is incompleted."
    538539msgstr "我們已經收到您的訂單,但是付款尚未完成,請儘速付款,若有問題請聯繫商店管理員。"
     
    602603
    603604#: src/PayuniPayment.php:269
    604 #: src/PayuniPayment.php:623
     605#: src/PayuniPayment.php:625
    605606msgid "Unsecure AJAX call"
    606607msgstr "不安全的 AJAX 呼叫"
    607608
    608609#: src/PayuniPayment.php:280
    609 #: src/PayuniPayment.php:644
     610#: src/PayuniPayment.php:646
    610611msgid "No such order id"
    611612msgstr "沒有這個訂單編號"
     
    675676msgstr "需於統一金流後台註冊光貿電子發票並啟用電子發票功能。"
    676677
    677 #: src/Settings/SettingsTab.php:137
     678#: src/Settings/SettingsTab.php:149
    678679msgid "API Settings"
    679680msgstr "API 設定"
    680681
    681 #: src/Settings/SettingsTab.php:139
     682#: src/Settings/SettingsTab.php:151
    682683msgid "Enter your PAYUNi API credentials"
    683684msgstr "請輸入 PAYUNi 串接資料"
    684685
    685 #: src/Settings/SettingsTab.php:143
     686#: src/Settings/SettingsTab.php:155
    686687msgid "Test Mode"
    687688msgstr "測試模式"
    688689
    689 #: src/Settings/SettingsTab.php:146
     690#: src/Settings/SettingsTab.php:158
    690691msgid "When enabled, you need to use the test-only data below."
    691692msgstr "當啟用測試模式時,請填入測試環境的串接資料。"
    692693
    693 #: src/Settings/SettingsTab.php:150
     694#: src/Settings/SettingsTab.php:162
    694695msgid "Test MerchantID"
    695696msgstr "測試商店代號 (MerID)"
    696697
    697 #: src/Settings/SettingsTab.php:152
     698#: src/Settings/SettingsTab.php:164
    698699msgid "This is the test MerchantID when you apply PAYUNi API"
    699700msgstr "PAYUNi 測試環境的商店代號"
    700701
    701 #: src/Settings/SettingsTab.php:157
     702#: src/Settings/SettingsTab.php:169
    702703msgid "Test Hash Key"
    703704msgstr "測試 Hash Key"
    704705
    705 #: src/Settings/SettingsTab.php:159
     706#: src/Settings/SettingsTab.php:171
    706707msgid "This is the test Hash Key when you apply PAYUNi API"
    707708msgstr "PAYUNi 測試環境的 Hash Key"
    708709
    709 #: src/Settings/SettingsTab.php:164
     710#: src/Settings/SettingsTab.php:176
    710711msgid "Test Hash IV"
    711712msgstr "測試 Hash IV"
    712713
    713 #: src/Settings/SettingsTab.php:166
     714#: src/Settings/SettingsTab.php:178
    714715msgid "This is the test Hash IV when you apply PAYUNi API"
    715716msgstr "PAYUNi 測試環境的 Hash IV"
    716717
    717 #: src/Settings/SettingsTab.php:171
     718#: src/Settings/SettingsTab.php:183
    718719msgid "MerchantID"
    719720msgstr "商店代號 (MerID)"
    720721
    721 #: src/Settings/SettingsTab.php:173
     722#: src/Settings/SettingsTab.php:185
    722723msgid "This is the MerchantID when you apply PAYUNi API"
    723724msgstr "這是您申請 PAYUNi 時的商店代號"
    724725
    725 #: src/Settings/SettingsTab.php:178
     726#: src/Settings/SettingsTab.php:190
    726727msgid "Hash Key"
    727728msgstr "Hash Key"
    728729
    729 #: src/Settings/SettingsTab.php:180
     730#: src/Settings/SettingsTab.php:192
    730731msgid "This is the Hash Key when you apply PAYUNi API"
    731732msgstr "這是PAYUNi 提供的商店專屬 Hash Key"
    732733
    733 #: src/Settings/SettingsTab.php:185
     734#: src/Settings/SettingsTab.php:197
    734735msgid "Hash IV"
    735736msgstr "Hash IV"
    736737
    737 #: src/Settings/SettingsTab.php:187
     738#: src/Settings/SettingsTab.php:199
    738739msgid "This is the Hash IV when you apply PAYUNi API"
    739740msgstr "這是 PAYUNi 提供的商店專屬 HashIV"
    740741
    741 #: src/Settings/SettingsTab.php:264
     742#: src/Settings/SettingsTab.php:276
    742743msgid "View logs"
    743744msgstr "檢視除錯紀錄"
    744745
    745 #: src/Settings/SettingsTab.php:271
     746#: src/Settings/SettingsTab.php:283
    746747msgid "Go to Payment Settings"
    747748msgstr "設定付款方式"
     
    883884
    884885#: src/PayuniPayment.php:540
    885 #: src/PayuniPayment.php:607
     886#: src/PayuniPayment.php:609
    886887msgid "Auto-cancellation schedule removed."
    887888msgstr "已移除自動取消排程。"
    888889
    889 #: src/PayuniPayment.php:578
    890 #: src/PayuniPayment.php:701
     890#: src/PayuniPayment.php:580
     891#: src/PayuniPayment.php:705
    891892msgid "Scheduled auto-cancellation at %s if payment is not completed."
    892893msgstr "自動取消排程已建立於 %s,若屆時尚未付款將自動取消訂單。"
    893894
    894 #: src/PayuniPayment.php:632
     895#: src/PayuniPayment.php:634
    895896msgid "Auto-cancel feature is not enabled."
    896897msgstr "自動取消功能未啟用。"
    897898
    898 #: src/PayuniPayment.php:654
     899#: src/PayuniPayment.php:656
    899900msgid "This order does not support auto-cancellation."
    900901msgstr "此訂單不支援自動取消。"
    901902
    902 #: src/PayuniPayment.php:671
     903#: src/PayuniPayment.php:673
    903904msgid "No expire date found for this order."
    904905msgstr "此訂單沒有付款到期日。"
    905906
    906 #: src/PayuniPayment.php:686
     907#: src/PayuniPayment.php:688
    907908msgid "Failed to parse expire date: %s"
    908909msgstr "無法解析付款到期日:%s"
    909910
    910 #: src/PayuniPayment.php:707
     911#: src/PayuniPayment.php:711
    911912msgid "Auto-cancellation scheduled at %s."
    912913msgstr "自動取消排程已建立於 %s。"
    913 
    914 #: src/PayuniPayment.php:743
    915 msgid "Order auto-cancelled: payment has expired."
    916 msgstr "訂單已自動取消:付款已逾期。"
    917914
    918915#: src/Settings/SettingsTab.php:125
     
    927924msgid "Automatically cancel ATM and CVS orders when the payment deadline has passed."
    928925msgstr "當超過付款期限,系統會自動取消 ATM 和超商代碼訂單。"
     926
     927#: src/Settings/SettingsTab.php:133
     928msgid "Auto Cancel Delay (minutes)"
     929msgstr "自動取消延遲時間(分鐘)"
     930
     931#: src/Settings/SettingsTab.php:136
     932msgid "Delay in minutes after the payment deadline before auto-cancelling the order."
     933msgstr "超過付款期限後,延遲多少分鐘再自動取消訂單。"
     934
     935#: src/PayuniPayment.php:803
     936msgid "Auto-cancel aborted: failed to query PAYUNi transaction status. Please check manually."
     937msgstr "自動取消中止:無法查詢 PAYUNi 交易狀態,請至統一激流後台確認交易狀態。"
     938
     939#. translators: %s is the PAYUNi trade status code
     940#: src/PayuniPayment.php:814
     941msgid "Auto-cancel aborted: PAYUNi query confirmed payment received. Order marked as paid. (TradeStatus: %s)"
     942msgstr "自動取消中止:PAYUNi 查詢確認交易已付款,訂單已標記為已付款。(TradeStatus: %s)"
     943
     944#: src/PayuniPayment.php:819
     945msgid "Auto-cancel aborted: PAYUNi query error: %s. Please check manually."
     946msgstr "自動取消中止:PAYUNi 查詢錯誤:%s,請自行至統一金流後台確認交易狀態。"
     947
     948#. translators: %s is the PAYUNi trade status code
     949#: src/PayuniPayment.php:825
     950msgid "Order auto-cancelled: payment has expired. (TradeStatus: %s)"
     951msgstr "訂單已自動取消:付款已逾期。(TradeStatus: %s)"
  • wpbr-payuni-payment/trunk/languages/wpbr-payuni-payment.pot

    r3470721 r3470782  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Pay with PAYUNi 1.7.1\n"
     5"Project-Id-Version: Pay with PAYUNi 1.8.0\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpbr-payuni-payment\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-02-26T21:35:08+00:00\n"
     12"POT-Creation-Date: 2026-02-27T00:39:36+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.11.0\n"
     
    388388
    389389#. translators:  %s is the decrypted result
    390 #: src/Api/PaymentRequest.php:348
     390#: src/Api/PaymentRequest.php:366
    391391msgid "PAYUNi query succeed. Query result: %s"
    392392msgstr ""
    393393
    394394#. translators:  %s is the decrypted result
    395 #: src/Api/PaymentRequest.php:355
     395#: src/Api/PaymentRequest.php:373
    396396msgid "PAYUNi query failed. Query result: %s"
    397397msgstr ""
    398398
    399 #: src/Api/PaymentResponse.php:68
     399#: src/Api/PaymentResponse.php:71
    400400msgid "PAYUNi Notify"
    401 msgstr ""
    402 
    403 #: src/Api/PaymentResponse.php:69
    404 #: src/Api/PaymentResponse.php:130
    405 msgid "Status code:"
    406 msgstr ""
    407 
    408 #: src/Api/PaymentResponse.php:70
    409 #: src/Api/PaymentResponse.php:131
    410 msgid "Transaction message:"
    411 msgstr ""
    412 
    413 #: src/Api/PaymentResponse.php:71
    414 #: src/Api/PaymentResponse.php:132
    415 msgid "MerTradeNo:"
    416401msgstr ""
    417402
    418403#: src/Api/PaymentResponse.php:72
    419404#: src/Api/PaymentResponse.php:133
    420 msgid "UNi number:"
     405msgid "Status code:"
    421406msgstr ""
    422407
    423408#: src/Api/PaymentResponse.php:73
    424409#: src/Api/PaymentResponse.php:134
     410msgid "Transaction message:"
     411msgstr ""
     412
     413#: src/Api/PaymentResponse.php:74
     414#: src/Api/PaymentResponse.php:135
     415msgid "MerTradeNo:"
     416msgstr ""
     417
     418#: src/Api/PaymentResponse.php:75
     419#: src/Api/PaymentResponse.php:136
     420msgid "UNi number:"
     421msgstr ""
     422
     423#: src/Api/PaymentResponse.php:76
     424#: src/Api/PaymentResponse.php:137
    425425msgid "Payment type:"
    426426msgstr ""
    427427
    428 #: src/Api/PaymentResponse.php:129
     428#: src/Api/PaymentResponse.php:132
    429429msgid "PAYUNi Return"
    430430msgstr ""
     
    437437#: src/Gateways/Aftee.php:88
    438438#: src/Gateways/Atm.php:88
     439#: src/Gateways/Cvs.php:89
    439440msgid "Pay Time"
    440441msgstr ""
     
    546547msgstr ""
    547548
    548 #: src/Gateways/GatewayBase.php:278
     549#: src/Gateways/GatewayBase.php:285
    549550msgid "We have received your order, but the payment is incompleted."
    550551msgstr ""
     
    613614
    614615#: src/PayuniPayment.php:269
    615 #: src/PayuniPayment.php:623
     616#: src/PayuniPayment.php:625
    616617msgid "Unsecure AJAX call"
    617618msgstr ""
    618619
    619620#: src/PayuniPayment.php:280
    620 #: src/PayuniPayment.php:644
     621#: src/PayuniPayment.php:646
    621622msgid "No such order id"
    622623msgstr ""
     
    635636
    636637#: src/PayuniPayment.php:540
    637 #: src/PayuniPayment.php:607
     638#: src/PayuniPayment.php:609
    638639msgid "Auto-cancellation schedule removed."
    639640msgstr ""
    640641
    641 #: src/PayuniPayment.php:578
    642 #: src/PayuniPayment.php:701
     642#: src/PayuniPayment.php:580
     643#: src/PayuniPayment.php:705
    643644msgid "Scheduled auto-cancellation at %s if payment is not completed."
    644645msgstr ""
    645646
    646 #: src/PayuniPayment.php:632
     647#: src/PayuniPayment.php:634
    647648msgid "Auto-cancel feature is not enabled."
    648649msgstr ""
    649650
    650 #: src/PayuniPayment.php:654
     651#: src/PayuniPayment.php:656
    651652msgid "This order does not support auto-cancellation."
    652653msgstr ""
    653654
    654 #: src/PayuniPayment.php:671
     655#: src/PayuniPayment.php:673
    655656msgid "No expire date found for this order."
    656657msgstr ""
    657658
    658 #: src/PayuniPayment.php:686
     659#: src/PayuniPayment.php:688
    659660msgid "Failed to parse expire date: %s"
    660661msgstr ""
    661662
    662 #: src/PayuniPayment.php:707
     663#: src/PayuniPayment.php:711
    663664msgid "Auto-cancellation scheduled at %s."
    664665msgstr ""
    665666
    666 #: src/PayuniPayment.php:743
    667 msgid "Order auto-cancelled: payment has expired."
     667#: src/PayuniPayment.php:803
     668msgid "Auto-cancel aborted: failed to query PAYUNi transaction status. Please check manually."
     669msgstr ""
     670
     671#. translators: %s is the PAYUNi trade status code
     672#: src/PayuniPayment.php:814
     673msgid "Auto-cancel aborted: PAYUNi query confirmed payment received. Order marked as paid. (TradeStatus: %s)"
     674msgstr ""
     675
     676#: src/PayuniPayment.php:819
     677msgid "Auto-cancel aborted: PAYUNi query error: %s. Please check manually."
     678msgstr ""
     679
     680#. translators: %s is the PAYUNi trade status code
     681#: src/PayuniPayment.php:825
     682msgid "Order auto-cancelled: payment has expired. (TradeStatus: %s)"
    668683msgstr ""
    669684
     
    730745msgstr ""
    731746
    732 #: src/Settings/SettingsTab.php:137
     747#: src/Settings/SettingsTab.php:133
     748msgid "Auto Cancel Delay (minutes)"
     749msgstr ""
     750
     751#: src/Settings/SettingsTab.php:136
     752msgid "Delay in minutes after the payment deadline before auto-cancelling the order."
     753msgstr ""
     754
     755#: src/Settings/SettingsTab.php:149
    733756msgid "API Settings"
    734757msgstr ""
    735758
    736 #: src/Settings/SettingsTab.php:139
     759#: src/Settings/SettingsTab.php:151
    737760msgid "Enter your PAYUNi API credentials"
    738761msgstr ""
    739762
    740 #: src/Settings/SettingsTab.php:143
     763#: src/Settings/SettingsTab.php:155
    741764msgid "Test Mode"
    742765msgstr ""
    743766
    744 #: src/Settings/SettingsTab.php:146
     767#: src/Settings/SettingsTab.php:158
    745768msgid "When enabled, you need to use the test-only data below."
    746769msgstr ""
    747770
    748 #: src/Settings/SettingsTab.php:150
     771#: src/Settings/SettingsTab.php:162
    749772msgid "Test MerchantID"
    750773msgstr ""
    751774
    752 #: src/Settings/SettingsTab.php:152
     775#: src/Settings/SettingsTab.php:164
    753776msgid "This is the test MerchantID when you apply PAYUNi API"
    754777msgstr ""
    755778
    756 #: src/Settings/SettingsTab.php:157
     779#: src/Settings/SettingsTab.php:169
    757780msgid "Test Hash Key"
    758781msgstr ""
    759782
    760 #: src/Settings/SettingsTab.php:159
     783#: src/Settings/SettingsTab.php:171
    761784msgid "This is the test Hash Key when you apply PAYUNi API"
    762785msgstr ""
    763786
    764 #: src/Settings/SettingsTab.php:164
     787#: src/Settings/SettingsTab.php:176
    765788msgid "Test Hash IV"
    766789msgstr ""
    767790
    768 #: src/Settings/SettingsTab.php:166
     791#: src/Settings/SettingsTab.php:178
    769792msgid "This is the test Hash IV when you apply PAYUNi API"
    770793msgstr ""
    771794
    772 #: src/Settings/SettingsTab.php:171
     795#: src/Settings/SettingsTab.php:183
    773796msgid "MerchantID"
    774797msgstr ""
    775798
    776 #: src/Settings/SettingsTab.php:173
     799#: src/Settings/SettingsTab.php:185
    777800msgid "This is the MerchantID when you apply PAYUNi API"
    778801msgstr ""
    779802
    780 #: src/Settings/SettingsTab.php:178
     803#: src/Settings/SettingsTab.php:190
    781804msgid "Hash Key"
    782805msgstr ""
    783806
    784 #: src/Settings/SettingsTab.php:180
     807#: src/Settings/SettingsTab.php:192
    785808msgid "This is the Hash Key when you apply PAYUNi API"
    786809msgstr ""
    787810
    788 #: src/Settings/SettingsTab.php:185
     811#: src/Settings/SettingsTab.php:197
    789812msgid "Hash IV"
    790813msgstr ""
    791814
    792 #: src/Settings/SettingsTab.php:187
     815#: src/Settings/SettingsTab.php:199
    793816msgid "This is the Hash IV when you apply PAYUNi API"
    794817msgstr ""
    795818
    796 #: src/Settings/SettingsTab.php:264
     819#: src/Settings/SettingsTab.php:276
    797820msgid "View logs"
    798821msgstr ""
    799822
    800 #: src/Settings/SettingsTab.php:271
     823#: src/Settings/SettingsTab.php:283
    801824msgid "Go to Payment Settings"
    802825msgstr ""
  • wpbr-payuni-payment/trunk/readme.txt

    r3470721 r3470782  
    55Tested up to: 6.8
    66Requires PHP: 7.4
    7 Stable tag: 1.8.0
     7Stable tag: 1.8.1
    88License: GPLv2 or later.
    99License URI: http://www.gnu.org/licenses/gpl-2.0.txt
     
    6060
    6161== Changelog ==
     62
     63= 1.8.1 - 2026/02/27
     64
     65* ADD - Query order before auto-cancelling.
     66* ADD - Auto-cancelling delay setting.
     67* UPDATE - Add Pay Time meta for CVS Order.
    6268
    6369= 1.8.0 - 2026/02/27
  • wpbr-payuni-payment/trunk/src/Api/PaymentRequest.php

    r3332679 r3470782  
    335335            $query_result['CreateDay']   = $decrypted['Result'][0]['CreateDay'];
    336336            $query_result['PaymentType'] = $decrypted['Result'][0]['PaymentType'];
     337           
     338            if ( isset( $decrypted['Result'][0]['TradeAmt'] ) ) {
     339                $query_result['TradeAmt'] = $decrypted['Result'][0]['TradeAmt'];
     340            }
    337341
    338342            // 信用卡.
    339343            if ( '1' === $query_result['PaymentType'] ) {
    340344                $query_result['CloseStatus'] = $decrypted['Result'][0]['CloseStatus'];
     345            }
     346
     347            // 線下交易 (ATM, CVS 等).
     348            if ( isset( $decrypted['Result'][0]['OffChannel'] ) ) {
     349                $query_result['OffChannel'] = $decrypted['Result'][0]['OffChannel'];
     350            }
     351            if ( isset( $decrypted['Result'][0]['OffPayChannel'] ) ) {
     352                $query_result['OffPayChannel'] = $decrypted['Result'][0]['OffPayChannel'];
     353            }
     354            if ( isset( $decrypted['Result'][0]['OffPayNo'] ) ) {
     355                $query_result['OffPayNo'] = $decrypted['Result'][0]['OffPayNo'];
     356            }
     357            if ( isset( $decrypted['Result'][0]['OffExpireTime'] ) ) {
     358                $query_result['OffExpireTime'] = $decrypted['Result'][0]['OffExpireTime'];
    341359            }
    342360
  • wpbr-payuni-payment/trunk/src/Api/PaymentResponse.php

    r3470721 r3470782  
    207207            self::update_order_meta( $order, $decrypted_info, OrderMeta::CVS_STORE, 'Store' );
    208208            self::update_order_meta( $order, $decrypted_info, OrderMeta::CVS_EXPIRE_DATE, 'ExpireDate' );
     209            self::update_order_meta( $order, $decrypted_info, OrderMeta::CVS_PAY_TIME, 'PayTime' );
    209210
    210211        } elseif ( '7' === $pay_type ) {
  • wpbr-payuni-payment/trunk/src/Gateways/Cvs.php

    r3131276 r3470782  
    8787            OrderMeta::CVS_STORE       => __( 'CVS Store', 'wpbr-payuni-payment' ),
    8888            OrderMeta::CVS_EXPIRE_DATE => __( 'Expire Date', 'wpbr-payuni-payment' ),
     89            OrderMeta::CVS_PAY_TIME    => __( 'Pay Time', 'wpbr-payuni-payment' ),
    8990        );
    9091
  • wpbr-payuni-payment/trunk/src/PayuniPayment.php

    r3470721 r3470782  
    567567        }
    568568
    569         // Schedule cancellation at 00:10 the day after expire date.
     569        // Schedule cancellation after expire date + delay.
     570        $delay_minutes = absint( get_option( 'payuni_payment_auto_cancel_delay_minutes', 10 ) );
    570571        $dt->modify( '+1 day' );
    571         $dt->setTime( 0, 10, 0 );
     572        $dt->setTime( 0, 0, 0 );
     573        $dt->modify( '+' . $delay_minutes . ' minutes' );
    572574        $timestamp = $dt->getTimestamp();
    573575
     
    689691        }
    690692
     693        $delay_minutes = absint( get_option( 'payuni_payment_auto_cancel_delay_minutes', 10 ) );
    691694        $dt->modify( '+1 day' );
    692695        $dt->setTime( 0, 0, 0 );
     696        $dt->modify( '+' . $delay_minutes . ' minutes' );
    693697        $timestamp = $dt->getTimestamp();
    694698
     
    711715
    712716    /**
     717     * Update order meta from PAYUNi query result.
     718     *
     719     * @param \WC_Order $order        The order object.
     720     * @param array     $query_result The query result from PAYUNi.
     721     *
     722     * @return void
     723     */
     724    private static function update_order_meta_from_query( $order, $query_result ) {
     725        $order->update_meta_data( OrderMeta::TRADE_STATUS, $query_result['TradeStatus'] );
     726        $order->update_meta_data( OrderMeta::UNI_NO, $query_result['TradeNo'] );
     727        $order->update_meta_data( OrderMeta::PAYUNI_ORDER_NO, $query_result['MerTradeNo'] );
     728        $order->update_meta_data( OrderMeta::TRADE_AMOUNT, $query_result['TradeAmt'] );
     729        $order->update_meta_data( OrderMeta::PAY_TYPE, $query_result['PaymentType'] );
     730
     731        $pay_type = $query_result['PaymentType'];
     732
     733        if ( '2' === $pay_type ) {
     734            // ATM.
     735            if ( ! empty( $query_result['OffPayNo'] ) ) {
     736                $order->update_meta_data( OrderMeta::AMT_PAY_NO, $query_result['OffPayNo'] );
     737            }
     738            if ( ! empty( $query_result['OffChannel'] ) ) {
     739                $order->update_meta_data( OrderMeta::AMT_BANK_TYPE, $query_result['OffChannel'] );
     740            }
     741            if ( ! empty( $query_result['OffExpireTime'] ) ) {
     742                $order->update_meta_data( OrderMeta::AMT_EXPIRE_DATE, $query_result['OffExpireTime'] );
     743            }
     744            if ( ! empty( $query_result['PaymentDay'] ) && '0000-00-00 00:00:00' !== $query_result['PaymentDay'] ) {
     745                $order->update_meta_data( OrderMeta::AMT_PAY_TIME, $query_result['PaymentDay'] );
     746            }
     747        } elseif ( '3' === $pay_type ) {
     748            // CVS.
     749            if ( ! empty( $query_result['OffPayNo'] ) ) {
     750                $order->update_meta_data( OrderMeta::CVS_PAY_NO, $query_result['OffPayNo'] );
     751            }
     752            if ( ! empty( $query_result['OffChannel'] ) ) {
     753                $store = ( 'SEVEN' === $query_result['OffChannel'] ) ? '7-11' : $query_result['OffChannel'];
     754                $order->update_meta_data( OrderMeta::CVS_STORE, $store );
     755            }
     756            if ( ! empty( $query_result['OffExpireTime'] ) ) {
     757                $order->update_meta_data( OrderMeta::CVS_EXPIRE_DATE, $query_result['OffExpireTime'] );
     758            }
     759            if ( ! empty( $query_result['PaymentDay'] ) && '0000-00-00 00:00:00' !== $query_result['PaymentDay'] ) {
     760                $order->update_meta_data( OrderMeta::CVS_PAY_TIME, $query_result['PaymentDay'] );
     761            }
     762        }
     763
     764        $order->save();
     765    }
     766
     767    /**
    713768     * Handle cancellation of expired ATM/CVS orders.
    714769     *
     
    741796        }
    742797
    743         $order->update_status( 'cancelled', __( 'Order auto-cancelled: payment has expired.', 'wpbr-payuni-payment' ) );
    744         self::log( sprintf( 'Order %d auto-cancelled due to expired %s payment.', $order_id, $payment_method ) );
     798        // 取消前先查詢交易狀態,避免誤取消已付款訂單.
     799        try {
     800            $query_result = PaymentRequest::query( $order_id );
     801
     802            if ( false === $query_result ) {
     803                $order->add_order_note( __( 'Auto-cancel aborted: failed to query PAYUNi transaction status. Please check manually.', 'wpbr-payuni-payment' ) );
     804                self::log( sprintf( 'Auto-cancel aborted for order %d: PAYUNi query failed.', $order_id ), 'warning' );
     805                return;
     806            }
     807
     808            // 更新 PAYUNi order meta(查詢結果).
     809            self::update_order_meta_from_query( $order, $query_result );
     810
     811            if ( TradeStatus::PAID === $query_result['TradeStatus'] ) {
     812                $order->payment_complete( $query_result['TradeNo'] );
     813                /* translators: %s is the PAYUNi trade status code */
     814                $order->add_order_note( sprintf( __( 'Auto-cancel aborted: PAYUNi query confirmed payment received. Order marked as paid. (TradeStatus: %s)', 'wpbr-payuni-payment' ), $query_result['TradeStatus'] ) );
     815                self::log( sprintf( 'Order %d confirmed paid via PAYUNi query during auto-cancel.', $order_id ) );
     816                return;
     817            }
     818        } catch ( \Exception $e ) {
     819            $order->add_order_note( sprintf( __( 'Auto-cancel aborted: PAYUNi query error: %s. Please check manually.', 'wpbr-payuni-payment' ), $e->getMessage() ) );
     820            self::log( sprintf( 'Auto-cancel aborted for order %d: query exception: %s', $order_id, $e->getMessage() ), 'error' );
     821            return;
     822        }
     823
     824        /* translators: %s is the PAYUNi trade status code */
     825        $order->update_status( 'cancelled', sprintf( __( 'Order auto-cancelled: payment has expired. (TradeStatus: %s)', 'wpbr-payuni-payment' ), $query_result['TradeStatus'] ) );
     826        self::log( sprintf( 'Order %d auto-cancelled due to expired %s payment. TradeStatus: %s', $order_id, $payment_method, $query_result['TradeStatus'] ) );
    745827    }
    746828
  • wpbr-payuni-payment/trunk/src/Settings/SettingsTab.php

    r3470721 r3470782  
    131131                ),
    132132                array(
     133                    'title'             => __( 'Auto Cancel Delay (minutes)', 'wpbr-payuni-payment' ),
     134                    'type'              => 'number',
     135                    'default'           => '10',
     136                    'desc'              => __( 'Delay in minutes after the payment deadline before auto-cancelling the order.', 'wpbr-payuni-payment' ),
     137                    'id'                => 'payuni_payment_auto_cancel_delay_minutes',
     138                    'css'               => 'width: 80px;',
     139                    'custom_attributes' => array(
     140                        'min'  => '0',
     141                        'step' => '1',
     142                    ),
     143                ),
     144                array(
    133145                    'type' => 'sectionend',
    134146                    'id'   => 'payment_general_setting',
  • wpbr-payuni-payment/trunk/src/Utils/OrderMeta.php

    r3166905 r3470782  
    3939    const CVS_STORE            = '_wpbr_payuni_upp_cvs_store'; // 付款超商.
    4040    const CVS_EXPIRE_DATE      = '_wpbr_payuni_upp_cvs_expiredate'; // 到期日.
     41    const CVS_PAY_TIME         = '_wpbr_payuni_upp_cvs_paytime'; // 付款時間.
    4142    const AFTEE_PAY_NO         = '_wpbr_payuni_upp_aftee_payno'; // 付款序號.
    4243    const AFTEE_PAY_TIME       = '_wpbr_payuni_upp_aftee_paytime'; // 付款時間.
  • wpbr-payuni-payment/trunk/vendor/composer/installed.php

    r3470721 r3470782  
    22    'root' => array(
    33        'name' => 'wpbrewer/wpbr-payuni-payment',
    4         'pretty_version' => '1.8.0',
    5         'version' => '1.8.0.0',
    6         'reference' => '6c86b1c19ce23d38adc7eecf086c865331b9fd75',
     4        'pretty_version' => '1.8.1',
     5        'version' => '1.8.1.0',
     6        'reference' => '5095643dd195574a22bd75eae685c121d20f2031',
    77        'type' => 'library',
    88        'install_path' => __DIR__ . '/../../',
     
    1212    'versions' => array(
    1313        'wpbrewer/wpbr-payuni-payment' => array(
    14             'pretty_version' => '1.8.0',
    15             'version' => '1.8.0.0',
    16             'reference' => '6c86b1c19ce23d38adc7eecf086c865331b9fd75',
     14            'pretty_version' => '1.8.1',
     15            'version' => '1.8.1.0',
     16            'reference' => '5095643dd195574a22bd75eae685c121d20f2031',
    1717            'type' => 'library',
    1818            'install_path' => __DIR__ . '/../../',
  • wpbr-payuni-payment/trunk/wpbr-payuni-payment.php

    r3470721 r3470782  
    99 * Description:       Provides PAYUNi UPP(UNiPaypage) Payment for WooCommerce.
    1010 * Plugin URI:        https://wpbrewer.com/product/wpbr-payuni-payment
    11  * Version:           1.8.0
     11 * Version:           1.8.1
    1212 * Author:            WPBrewer
    1313 * Author URI:        https://wpbrewer.com/
     
    2828define( 'WPBR_PAYUNI_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
    2929define( 'WPBR_PAYUNI_BASENAME', plugin_basename( __FILE__ ) );
    30 define( 'WPBR_PAYUNI_PAYMENT_VERSION', '1.8.0' );
     30define( 'WPBR_PAYUNI_PAYMENT_VERSION', '1.8.1' );
    3131
    3232require_once WPBR_PAYUNI_PLUGIN_DIR . 'vendor/autoload.php';
Note: See TracChangeset for help on using the changeset viewer.