iOS APP SDK / 取得付款畫面

產生站內付2.0功能畫面

產生付款功能畫面。待使用者完成付款後,等待 callback 回傳付款結果即可。

❗ 注意事項:如需使用Apple Pay付款方式,請參考自訂Apple Pay付款功能。使用createPayment()產生畫面,將有上架APP不通過的可能。

				
					ECPayPaymentGatewayManager.sharedInstance().createPayment(token, language, useResultPage, appStoreName)

				
			

帶入參數

Token String
廠商驗證碼 必填

初始化站內付2.0畫面代碼,此參數具30分鐘時效性

Language String
多語系 必填

可使用以下方式設定使用語系

  • zh-TW : 繁中
  • en-US : 英文

UseResultPage Int
是否顯示付款結果 必填

是否由綠界顯示付款結果通知或超商/ATM取號結果通知頁面

  • 0:否
  • 1:是

AppStoreName String
APP商店名稱 必填

APP商店名稱,顯示於付款畫面的APP商店名稱,特店可自行定義顯示的名稱

callBack接口調用說明

當付款畫面完成後,將callBack付款結果。付款結果內容如下:

callbackStateStatus CallbackStateStatusType
Callback狀態 

❗ 注意事項:當狀態為Cancel時,建議利用查詢訂單API反查訂單狀態。

callbackStateMessage String
回應訊息 

RtnCode Int
交易狀態 

1 代表 API 執行成功,其餘代碼均為失敗,失敗代碼請參考交易訊息代碼表

RtnMsg String(200)
回應訊息 

PaymentType PaymentType
付款方式 

付款方式可參考enum PaymentType

PlatformID String(10)
平台商編號 

特約合作平台商特店編號

MerchantID String(10)
特店編號 

OrderInfo Object
訂單資訊 

MerchantTradeNo String(20)
特店交易編號 

TradeNo String(20)
綠界交易編號 

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

TradeAmt Int
交易金額 

TradeDate String(20)
訂單成立時間 

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

PaymentType String(20)
付款方式 

PaymentDate String(20)
付款時間 

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

ChargeFee Number
手續費 

TradeStatus String(8)
交易狀態 

  • 0 :代表交易訂單成立未付款
  • 1 : 代表交易訂單成立已付款

CardInfo Object
信用卡授權資訊 

付款方式為信用卡或銀聯卡時,回傳CardInfo

AuthCode String(6)
銀行授權碼 

Gwsr Int
銀行授權碼 

ProcessDate String(20)
交易時間 

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

Amount Int
金額 

Stage Int
分期期數 

Stast Int
首期金額 

Staed Int
各期金額 

Eci Int
3D(VBV) 回傳值 

Eci=5,6,2,1 代表該筆交易為3D交易,且付款方式為銀聯卡時不回傳

Card6No String(6)
信用卡卡號前六碼 

付款方式為銀聯卡時不回傳

Card4No String(4)
信用卡卡號末四碼 

付款方式為銀聯卡時不回傳

RedDan Int
紅利扣點 

使用信用卡紅利時回傳

RedOkAmt Int
實際扣款金額 

使用信用卡紅利時回傳

RedYet Int
紅利剩餘點數 

使用信用卡紅利時回傳

RedDeAmt Int
紅利折抵金額 

使用信用卡紅利時回傳

PeriodType String(1)
週期種類 

定期定額時回傳,訂單建立時所設定的週期種類

Frequency Int
執行頻率 

定期定額時回傳,訂單建立時所設定的執行頻率

ExecTimes Int
執行次數 

定期定額時回傳,訂單建立時所設定的執行次數

PeriodAmount Int
訂單建立時的每次要授權金額 

定期定額時回傳

TotalSuccessTimes Int
目前已成功授權的次數 

定期定額時回傳,目前已成功授權的次數

TotalSuccessAmount Int
目前已成功授權的金額合計 

定期定額時回傳

IssuingBank String(30)
銀行名稱 

IssuingBankCode String(10)
銀行代碼 

ATMInfo Object
ATM資訊 

付款方式為ATM時,回傳ATMInfo

BankCode String(3)
繳費銀行代碼 

vAccount String(16)
繳費虛擬帳號 

ExpireDate String(10)
繳費期限 

格式為yyyy/MM/dd

CVSInfo Object
超商代碼資訊 

付款方式為CVS時,回傳CVSInfo

PaymentNo String(14)
繳費代碼 

ExpireDate String(14)
繳費超商 

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

PaymentURL String(100)
繳費連結 

由綠界科技提供手機上顯示的三段式繳費條碼網頁

BarcodeInfo Object
超商條碼資訊 

回傳只有三段號碼,並不會回傳條碼圖,需自行轉換成 code39的三段條碼

ExpireDate String(20)
繳費期限 

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

Barcode1 String(20)
條碼第一段號碼 

格式為9碼數字

Barcode2 String(20)
條碼第二段號碼 

格式為16碼數字

Barcode3 String(20)
條碼第三段號碼 

格式為15碼數字

CustomField String(200)
自訂欄位 

提供特店使用客制化欄位

取得付款畫面使用範例

				
					ECPayPaymentGatewayManager.sharedInstance().createPayment(token: token, merchantID: "", useResultPage: use_resultPage_Switch.isOn ? 1 : 0, app"測試的商店(\(ECPayPaymentGatewayManager.sharedInstance().sdkEnvironmentString()))", language: use_enUS_Switch.isOn ? "en-US" : "zh-TW")
{ (state) in

    self.resultTextView.text = state.description
    if let callbackState = state as? CreatePaymentCallbackState {
        
        print("CreatePaymentCallbackState:")
        print("RtnCode = \(callbackState.RtnCode)")
        print("RtnMsg = \(callbackState.RtnMsg)")
        
        if let order = callbackState.OrderInfo {
            print("\(order)")
            print("\(order.MerchantTradeNo ?? "")")
            print("\(order.TradeNo ?? "")")
            print("\(order.TradeDate)")
            print("\(order.TradeStatus ?? 0)")
        }
        if let card = callbackState.CardInfo {
            print("\(card)")
            print("\(card.AuthCode ?? "")")
            print("\(card.Gwsr ?? "")")
            print("\(card.ProcessDate)")
            print("\(card.Stage ?? 0)")
            print("\(card.Stast ?? 0)")
            print("\(card.Staed ?? 0)")
            print("\(card.Amount ?? 0)")
            print("\(card.Eci ?? 0)")
            print("\(card.Card6No ?? "")")
            print("\(card.Card4No ?? "")")
            print("\(card.RedDan ?? 0)")
            print("\(card.RedDeAmt ?? 0)")
            print("\(card.RedOkAmt ?? 0)")
            print("\(card.RedYet ?? 0)")
        }
        if let atm = callbackState.ATMInfo {
            print("\(atm)")
            print("\(atm.BankCode ?? "")")
            print("\(atm.vAccount ?? "")")
            print("\(atm.ExpireDate)")
        }
        if let cvs = callbackState.CVSInfo {
            print("\(cvs)")
            print("\(cvs.PaymentNo ?? "")")
            print("\(cvs.ExpireDate)")
            print("\(cvs.PaymentURL ?? "")")
        }
        if let barcode = callbackState.BarcodeInfo {
            print("\(barcode)")
            print("\(barcode.ExpireDate)")
            print("\(barcode.Barcode1 ?? "")")
            print("\(barcode.Barcode2 ?? "")")
            print("\(barcode.Barcode3 ?? "")")
        }
        if let unionpay = callbackState.UnionPayInfo {
            print("\(unionpay.UnionPayURL ?? "")")
        }
    }
    
    let ac = UIAlertController(title: "提醒您", message: "已經 callback,請看 console!", preferredStyle: UIAlertController.Style.alert)
    let aa = UIAlertAction(title: "好", style: UIAlertAction.Style.default, handler: nil)
    ac.addAction(aa)
    self.present(ac, animated: true, completion: nil)
}
				
			

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

綠界官方網站