付款 / 付款結果通知

應用場景

Server端方式(POST)(ReturnURL)
當消費者付款完成後,特店接受綠界的付款結果訊息,並回應接收訊息

  • Step1.綠界:以ServerPost方式傳送付款結果訊息至特店的Server網址(ReturnURL)
  • Step2.特店:收到綠界的付款結果訊息,並判斷檢查碼是否相符
  • Step3.特店:檢查碼相符後,回應1|OK
❗ 注意事項:
  • 超商繳費條碼(BARCODE)因超商端作業時間關係會於消費者付款完成兩天後回傳。
  • ATMCVSBARCODE可透過廠商管理後台的『模擬付款』,來確認ReturnURL是否正確接收付款結果通知。
  • 付款結果通知常見付款狀態未更新原因說明。
  • 1|OK僅是廠商回應綠界是否收到通知,並不會改變付款狀態。
  • 若因授權時間過久未收到付款結果通知訊息時,請使用查詢訂單API查詢後再顯示付款結果。

Client端方式(POST)(OrderResultURL)
當消費者付款完成後,綠界一次性反饋付款結果通知,並將頁面導至特店自製頁面

  • Step1.綠界:傳送付款結果並將頁面導至特店的自製頁面網址(OrderResultURL)
  • Step2.特店:收到綠界的付款結果訊息,並判斷檢查碼是否相符

❗ 注意事項:

  1. 若要將付款結果頁顯示於特店自製頁面,請設定[OrderResultURL]。反之,未設定則會停留於綠界付款成功頁面。
  2. 若[OrderResultURL]與[ClientBackURL]同時設定,將會以[OrderResultURL]為主。
  3. 部分銀行WebATM在交易成功後,會停留在銀行的頁面,並不會導回給綠界,因此綠界也不會將頁面導回到[OrderResultURL]的頁面
  4. 銀聯卡及非即時交易(ATMCVSBARCODE)不支援此參數。
  5. 建議在測試階段時先不要設定此參數,可將畫面停留在綠界,看見綠界所提供的錯誤訊息,便可有效除錯。
  6. 若有設定此參數,請務必根據回傳的交易狀態來判斷顯示付款成功與否的頁面。
  7. 因各家銀行授權時間不同,若因授權時間過久未收到反饋訊息,請使用查詢訂單API查詢後再顯示付款結果。
  8. 若此參數設定網址未使用https時,部份瀏覽器可能會出現警告訊息提醒。

HTTPS 傳輸協定

  • Accept :text/html
  • Content Type :application/x-www-form-urlencoded
  • HTTP Method :POST

綠界回傳參數說明

MerchantID String(10) 
特店編號

MerchantTradeNo String(20)
特店交易編號

訂單產生時傳送給綠界的特店交易編號。

StoreID String(20)
特店旗下店舖代號

RtnCode Int
交易狀態

  • 若回傳值為1時,為付款成功
  • 其餘代碼皆為交易異常,請至廠商管理後台確認後再出貨。

❗ 注意事項:

  1. 若RtnCode為”10300066″ 時,代表交易付款結果待確認中,請勿出貨,請至廠商管理後台確認已付款完成再出貨。

RtnMsg String(200)
交易訊息

TradeNo String(20)
綠界的交易編號

請保存綠界的交易編號與特店交易編號[MerchantTradeNo]的關連。

TradeAmt Int
交易金額

PaymentDate String(20)
付款時間

格式為yyyy/MM/dd HH:mm:ss

PaymentType String(20)
特店選擇的付款方式

PaymentTypeChargeFee Number 
交易手續費金額

TradeDate String(20)
訂單成立時間

格式為yyyy/MM/dd HH:mm:ss

SimulatePaid Int
是否為模擬付款

  • 是否為模擬付款
  • 0:代表此交易非模擬付款。
  • 1:代表此交易為模擬付款,RtnCode也為1。並非是由消費者實際真的付款,所以綠界也不會撥款給廠商,請勿對該筆交易做出貨等動作,以避免損失。

❗ 注意事項:

  1. 特店可透過廠商後台來針對單筆訂單模擬綠界回傳付款通知,以方便介接API。
  2. 此功能僅只是用於測試ReturnURL是否能成功接收,不會改變付款狀態。
  3. 只有透過廠商後台的定期定額查詢功能發動的模擬付款通知,綠界才會傳送此參數,正常由定期定額排程所發送的付款通知,不會傳送此參數。

CustomField1 String(50)
自訂名稱欄位1

提供合作廠商使用記錄用客製化使用欄位

CustomField2 String(50)
自訂名稱欄位2

提供合作廠商使用記錄用客製化使用欄位

CustomField3 String(50)
自訂名稱欄位3

提供合作廠商使用記錄用客製化使用欄位

CustomField4 String(50)
自訂名稱欄位4

提供合作廠商使用記錄用客製化使用欄位

CheckMacValue String
檢查碼

特店必須檢查檢查碼 [CheckMacValue] 來驗證,請參考附錄檢查碼機制。 

綠界回傳參數範例

付款結果通知會以「form data」格式直接回傳參數,回傳格式「參數=值」表示,參數與參數之間以&隔開 

				
					CustomField1=&CustomField2=&CustomField3=&CustomField4=&MerchantID=3002607
&MerchantTradeNo=Test1510056539&PaymentDate=2017/11/02 16:22:18
&PaymentType=Credit_CreditCard&PaymentTypeChargeFee=1&RtnCode=1&RtnMsg=交易成功&SimulatePaid=0&StoreID=&TradeAmt=100&TradeDate=2017/11/07 20:08:59&TradeNo=17110720085960236789
&CheckMacValue=F6C47E0EFDFD81139E3B1AA1D27DC2BDFF6CD569202B4BCCBCD939C0DA60A5DE

				
			

特店回覆參數說明

回傳值為純字串並無參數名稱。
若收到綠界回傳結果通知,請回傳1|OK,此訊息僅代表特店回應是否已收到綠界回傳通知,並不會影響訂單的狀態。

				
					1|OK

				
			

❗ 注意事項:

  1. 特店務必判斷檢查碼[CheckMacValue]是否正確,以及是否已經對該筆訂單的付款通知,做過相對應的處理,以免造成交易狀態無法同步的損失。
  2. 若未正確回應1|OK,系統會隔5~15分鐘後重發訊息給特店,當天重複發送次。
  3. 若特店持續收到綠界回傳付款資訊,此時請檢查是否未正確回應1|OK給綠界,常見錯誤回傳值為(“1|OK”、1|ok、_OK 、1\OK、空白 )。
  4. 若遇消費者已付款,但未收到綠界回傳付款完成資訊,此時請檢查接收回傳參數的伺服器是否服務正常,導致無法接收。請參考:無法收到綠界回傳的付款結果通知
  5. 當模擬付款[SimulatePaid]的值為1時,表示此筆訂單資訊是由綠界廠商後台模擬付款按鈕所發送的回傳付款通知測試資訊,並非是由消費者實際真的付款,所以綠界也不會撥款給特店,請勿對該筆交易做出貨等動作,以避免損失。
  6. 特店務必判斷交易狀態[RtnCode]是否為1,若非1時請勿對該筆交易做出貨動作,並取得交易訊息[RtnMsg] 記錄失敗原因。

YAML

提供的 YAML 文件用於定義 API 的配置、結構、操作和基礎設施管理等資訊,方便開發人員理解和使用 API。

				
					openapi: 3.1.0
info:
  title: ECPay Payment Result Notification API
  version: 1.0.0
servers:
  - url: ReturnUrl
    description: Production Environment
  - url: ReturnUrl
    description: Testing Environment
paths:
  /payment/Result:
    post:
      summary: Payment Result Notification
      description: Notify the merchant of the payment result.
      requestBody:
        required: true
        content:
          html/text:
            schema:
              type: object
              required:
                - MerchantID
                - MerchantTradeNo
                - RtnCode
              properties:
                  MerchantID:
                    type: string
                    maxLength: 10
                    description: Merchant ID
                  MerchantTradeNo:
                    type: string
                    maxLength: 20
                    description: Merchant trade number, sent to ECPay when the order is created
                  StoreID:
                    type: string
                    maxLength: 20
                    description: Store ID under the merchant
                  RtnCode:
                    type: integer
                    description: Transaction status. If the return value is 1, it indicates successful payment. Other codes indicate transaction abnormalities. Please check in the merchant management backend before shipping.
                  RtnMsg:
                    type: string
                    maxLength: 200
                    description: Transaction message
                  TradeNo:
                    type: string
                    maxLength: 20
                    description: ECPay's transaction number. Please keep the relationship between ECPay's transaction number and the merchant trade number
                  TradeAmt:
                    type: integer
                    description: Transaction amount
                  PaymentDate:
                    type: string
                    maxLength: 20
                    format: date-time
                    description: Payment time
                  PaymentType:
                    type: string
                    maxLength: 20
                    description: Payment method selected by the merchant. Please refer to the list of payment methods returned
                  PaymentTypeChargeFee:
                    type: number
                    description: Transaction handling fee amount
                  TradeDate:
                    type: string
                    maxLength: 20
                    format: date-time
                    description: Order creation time
                  SimulatePaid:
                    type: integer
                    enum: [0, 1]
                    description: Whether it is a simulated payment.
                  CustomField1:
                    type: string
                    maxLength: 50
                    description: Custom field 1, provided for cooperative partners for custom use
                  CustomField2:
                    type: string
                    maxLength: 50
                    description: Custom field 2, provided for cooperative partners for custom use
                  CustomField3:
                    type: string
                    maxLength: 50
                    description: Custom field 3, provided for cooperative partners for custom use
                  CustomField4:
                    type: string
                    maxLength: 50
                    description: Custom field 4, provided for cooperative partners for custom use
                  CheckMacValue:
                    type: string
                    description: Check code. Merchants must check the check code to verify
                 
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                type: string
                example: 1|OK
        '400':
          description: Invalid request
        '500':
          description: Server error

				
			

Copyright © Green World FinTech Service Co., Ltd. All rights reserved.

綠界官方網站