先說清顧客同意支付的金額

商品價格若只寫數字與「$」,顧客無從知道是港元、美元還是其他元。每個可購買價格都應配上明確貨幣代碼;真正要核對的是付款服務要求顧客授權的貨幣和總額。商戶收款銀行帳戶使用的結算貨幣屬另一件事。Stripe 的文件分開列出支付工具貨幣、實際扣款貨幣及商戶結算貨幣,三者可以不同。即使商戶最後收取港元,顧客仍可能先以另一貨幣付款,所以在顧客確認前必須說清扣款貨幣。

先把商店政策寫成一句可核實的說明,例如「所有訂單均以港元扣款,其他貨幣僅供參考」,或「顧客可從指定、可用的扣款貨幣選擇」。切換英文與中文只改變介面語言,不應暗中改變扣款貨幣。外地發行的卡亦不代表發卡機構會以網頁所示貨幣入帳。支付服務文件指出,支付工具與扣款貨幣不同時,發卡機構可能收取外匯費;跨境付款也可能另有費用。網店應說明自身會扣甚麼貨幣,不應保證顧客月結單的最終金額。

沿購物流程追蹤同一個價格

選一件真實商品,從搜尋結果、商品頁、規格選擇、購物籃、送貨選項、訂單覆核、支付服務畫面,直到確認頁,逐步記下數字、貨幣代碼及所包含費用。手機頁頂的貨幣標記未必跟著購買按鈕或電郵中的購物籃連結出現,因此關鍵項目及最後總額旁仍須清楚標示。運費或優惠令總額改變時,也要以同一扣款貨幣更新,並在付款動作前再次列明。覆核表可逐屏記錄金額來源、扣款貨幣與顧客實際看見的文字。

假設一件貨品售港幣四百八十元、運費三十元、已核准折扣二十元,示例總額便是港幣四百九十元。這只是算術例子,並非實際售價或匯率報價。商品頁、購物籃及支付請求應一致指向 HKD 490;若付款畫面變成 USD 490,問題出在扣款請求或資料對應,不能靠改字體格式補救。若同時顯示美元參考價,須明確標作估算,並與真正以港元扣款的金額分開。商店若提供估算,亦應交代換算來源與計算時間。

讓顧客有意識地轉換貨幣

貨幣選擇器必須有清楚作用:它究竟只改參考顯示,還是改變實際扣款?若只是參考換算,應註明約數,並持續顯示真正扣款貨幣。若選擇會改變扣款,先確認商戶帳戶和該付款方式支援所選貨幣。Stripe 的貨幣文件指出,可用的扣款貨幣取決於付款方式,部分本地付款方式只支援單一貨幣。不可用的選項應在付款前解釋,切勿等顧客進入支付畫面才無聲轉換,或在未重新展示總額下改以別種貨幣扣款。

轉換扣款貨幣等同重新作價格決定,並非純粹改變顯示樣式。應按商店公布的價目表或換算規則,重新計算商品、運費、折扣及最低付款額,再讓顧客覆核新總額。部分商店為不同貨幣維持固定價目表,而不是每次按即時匯率轉換;只要清楚說明適用哪份價目表,並在付款過程保持一致,便可採用。不要把固定價目表稱作即時換算。若購物籃保留上次到訪的舊價格,應按現行政策處理,並在顧客授權前指出應付金額有何變動。

按語言排版,勿改變金額

系統應把金額及貨幣代碼作為原始資料,再按介面語言排版。MDN 說明 Intl.NumberFormat 可指定貨幣及顯示方式,協助處理分隔符號和貨幣標記;它不會替商店決定收甚麼貨幣,也不會自動進行外匯換算。當「$」有歧義時,宜使用 HKD、USD 等三字母代碼。英文與繁體中文介面均要檢查商品卡、總額、窄屏手機及屏幕閱讀器讀法。排版可因語言而異,但除非顧客主動轉換,原始扣款金額與代碼不可變。

計算最後總額時,須按支付服務要求處理金額單位;完成計算後才作畫面排版。Stripe 指出,多數貨幣有兩位小數,但亦有不同最小單位規則。開發人員應先核對實際使用的貨幣與付款方式,再把內部金額轉成支付請求所需格式。畫面上的「490.00」不能假定在每種貨幣都對應相同的 API 整數。測試應涵蓋四捨五入邊界,並對照支付服務回傳的金額與貨幣。截圖看起來正確,仍不足以證明扣款請求的單位和代碼正確。

讓訂單紀錄可供核對

建立訂單時,應保留扣款貨幣、授權金額、商品與運費組成,以及產生價格的規則或價目表版本。顧客確認頁須說明已送交支付服務的金額;若展示授權、實際收款及退款狀態,也要分清各階段。財務部門之後收到的結算金額可以另行記錄,但不可覆寫當時顧客所見的扣款貨幣。若顧客問月結單為何不同,客服可指出商店的扣款貨幣,並建議向發卡機構查詢換算或費用;不能假裝知道個別卡片的匯率。

退款通知亦要同樣清楚:列出商店發起退款的貨幣和金額,並與持卡人經發卡機構換算後可能看到的數字分開。若多件商品的訂單只退部分款項,應指明涉及哪些商品或費用,方便客服核對。每種支援的扣款貨幣都應測試,包括取消付款、延遲確認及部分退款。目的是留下可追溯紀錄,而非保證匯率變動或銀行費用會完全逆轉。支付服務或商店政策改變時,亦須重查相關文字。

驗收顧客實際看到的金額

驗收表應涵蓋介面語言、裝置、支援貨幣與付款方式。先用新購物籃,再測試舊購物籃、改送貨方式及使用折扣。逐條流程比較商品頁、訂單覆核、支付服務畫面、回傳資料、儲存訂單與顧客通知;要同時記錄數字和貨幣代碼,單看數字會漏掉最嚴重的錯誤。也要刻意選不可支援的組合,確認系統在授權前清楚解釋並停止。使用屏幕閱讀器重試,確保貨幣代碼與總額一起被讀出,不會與付款動作脫節。

發佈前的判斷很直接:只要顧客所見總額與支付服務扣款請求不一致,便應暫停該貨幣流程並修正對應。若參考換算價使人混淆,可以先移除估算,同時保留已核實的扣款價。請一位未設定價格的同事只看畫面,說明顧客以甚麼貨幣付款,以及銀行可能換算哪個金額;這是文字清晰度檢查,不是成效數據。記錄已測流程與核准用語,日後促銷或新增付款方式時才有依據重查。

進行前先確認

  • 每個關鍵總額是否都標示真正扣款貨幣?
  • 支付請求及訂單紀錄的金額與貨幣,是否跟覆核畫面一致?
  • 參考換算價是否與應付金額清楚分開?

資料來源及延伸閱讀