1. 程式人生 > >銀聯支付api相關文件

銀聯支付api相關文件

銀聯商務全民付移動支付

APP綜合支付

商戶接入介面規範

V1.0.1

銀聯商務有限公司

2017.07

版本控制資訊

版本

日期

修改人

說明

V1.0.0

2017/7/14

xxx

初版

V1.0.1

2017/8/1

xxx

增加支付寶APP支付

本文件中的所有內容為銀聯商務有限公司專屬所有。未經銀聯商務有限公司的明確書面許可,任何組織或個人不得以任何目的、任何形式及任何手段複製或傳播本文件部分或全部內容。

目 錄

2

1. 4

1.1. 概述4

1.2. 適用範圍4

2. 引數規範說明4

2.1. 序號4

2.2. 資料項4

2.3. 型別5

2.4. 長度5

2.5. 輸入/選擇5

2.6. 備註6

3. 平臺下單介面6

3.1. 介面介紹6

3.2. 引數配置6

3.3. 介面引數說明6

3.4. 賬單號生成規範6

3.5. 下單請求7

3.6. 下單請求示例報文9

3.7. 下單請求響應9

3.8. 下單響應示例報文10

4. 支付請求介面11

4.1. Android綜合支付介面11

4.1.1. SDK包說明11

4.1.2.

快速整合11

4.1.3. 介面說明12

4.2. iOS綜合支付介面14

4.2.1. 快速整合14

4.2.2. 介面說明14

4.3. 綜合支付引數說明15

4.3.1. 支付渠道15

4.3.2. 支付結果資訊15

4.3.3. 結果碼16

5 支付結果查詢介面16

5.1 介面介紹16

5.2 引數配置17

5.3 查詢請求17

5.4 查詢請求示例報文17

5.5 查詢響應18

6 訂單退款介面19

6.1 介面介紹19

6.2 引數配置19

6.3 訂單退款請求20

6.4 訂單退款請求示例報文20

6.5 訂單退款響應21

7 支付結果通知

22

8 簽名規則23

9 errCode取值說明24

10 status取值說明26

11 targetSys取值說明27

1. 

1.1. 概述

本介面定義第三方接入銀聯商務全民付移動支付APP綜合支付的介面標準。

1.2. 適用範圍

此介面適用第三方接入銀聯商務全民付移動支付APP綜合支付的開發。

1. 引數規範說明

1.1. 序號

報文中每個欄位的順序

1.2. 資料項

報文中此欄位所代表的屬性

1.3. 型別

報文中此欄位的型別

字元

含義

A

字母字元,A至Z,a至z

N

數值,0至9,右靠,首位有效數字前填零。若表示人民幣金額,則最右二位為角、分。

P

填充字元,如空格。

S

特殊符號。

C

字元型別

An

字母和數字字元

As

字母和特殊字元

Ns

數字和特殊字元

Ans

字母、數字和特殊字元。

MM

月份,01至12。

DD

日期,01至31。

YY

年份,00至99。

hh

時,00至23。

mm

分,00至59。

ss

秒,00至59。

1.4. 長度

報文中此欄位允許的最大長度報文中此欄位允許的長度。

如A3:3位元組定長字母字元,AN1…9 長度為1~9位元組的變長字母和/或數字字元

1.4. 輸入/選擇

報文中此欄位輸入要求:

M 此欄位必須出現,且不能為空

O  此欄位可選

C  在特定環境下,此欄位必須出現,且不為空

1.5. 備註

對欄位的一些解釋

3. 平臺下單介面

3.1. 介面介紹

本介面為商戶的賬單H5頁面向銀商網路支付前置系統發起的支付跳轉

3.2. 引數配置

Server端傳送HTTP POST請求到下列介面地址:

測試環境介面地址:http://umspay.izhong.me/netpay-route-server/api/

生產環境介面地址:https://qr.chinaums.com/netpay-route-server/api/

3.3. 介面引數說明

 訊息來源、MD5金鑰、系統編號需銀商根據不同的對接系統進行分配。訊息型別需根據業務不同進行分配。銀商會在商戶接入時安排工作人員進行相關支援。

3.4. 賬單號生成規範

商戶需自行生成merOrderId。此時merOrderId需要符合銀商規範,以銀商分配的4位系統編號作為賬單號的前4位,且在商戶系統中此賬單號保證唯一。總長度需大於6位,小於32位。

3.5. 下單請求

引數欄位

引數說明

型別

範圍

必傳

備註

msgId

訊息ID,原樣返回

String

max =64

false

msgSrc

訊息來源

String

min = 1

max = 32

true

求來源:PCARD, NETPAY, TPOS, ULINK, MOBILE, MARKET, NEIMENG

msgType

訊息型別

String

min = 1

max = 64

true

微信

:wx.unifiedOrder

支付寶:

trade.precreate

全民付:

qmf.order

requestTimestamp

報文請求時間,格式yyyy-MM-dd HH:mm:ss

Date

true

yyyy-MM-dd HH:mm:ss

merOrderId

商戶訂單號

String

min = 6

max = 32

true

商戶自行生成

srcReserve

請求系統預留欄位

String

max = 255

false

mid

商戶號

String

min = 8

max = 32

true

tid

終端號

String

min = 2

max = 32

true

instMid

機構商戶號

String

min = 8

max = 32

true

APPDEFAULT

goods

discount

Long

max=1024

false

unit

String

max = 32

goodsId

商品ID

String

max = 64

goodsName

商品名稱

String

max = 256

quantity

商品數量

Long

max = 20

price

商品單價(分)

Long

max = 20

goodsCategory

商品分類

String

max = 64

body

商品說明

String

max= 1024

attachedData

商戶附加資料

String

max = 255

false

expireTime

訂單過期時間

Date

false

訂單過期時間,為空則使用系統預設過期時間(30分鐘),格式yyyy-MM-dd HH:mm:ss

goodsTag

商品標記,用於優惠活

String

max = 32

fasle

goodsTradeNo

商品交易單號

String

false

跟goods欄位二選一,商品資訊通過goods.add介面提前上送

orderDesc

訂單描述

String

max = 255

false

originalAmount

訂單原始金額,單位分,用於記錄前端系統打折前的金額

Long

min = 1

max = 100000000

false

productId

商品ID

String

false

totalAmount

支付總金額,單位分

Number

min = 1

max = 100000000

true

openId

使用者標識

String

使用者標識

false

notifyUrl

支付結果通知地址

String

max=255

false

returnUrl

網頁跳轉地址

String

max=255

false

showUrl

訂單展示頁面

String

max = 255

false

signType

簽名演算法

String

false

MD5,SHA1,RSA

subOpenId

使用者子標識

String

false

tradeType

交易型別

String

false

微信必傳:APP

merchantUserId

商戶使用者號

String

max = 32

false

全民付必傳

mobile

手機號

String

max = 11

false

全民付必傳

sign

簽名

String

true

簽名規則

1.6. 下單請求示例報文

{

    "tid":"88880001",

    "msgSrc":"ERP_SCANPAY",

    "requestTimestamp":"2017-04-25 19:38:16",

    "merOrderId":"3028201704251133163636273122",

    "sign":"C646FC8AA7EB6EA52F846AAE2D9E577E",

    "totalAmount":"1",

    "mid":"123456789054321",

    "msgType":"wx.unifiedOrder",

    "instMid":"APPDEFAULT",

    "tradeType":"APP"

}

3.6. 下單請求響應

引數欄位

引數說明

型別

範圍

必傳

備註

errCode

平臺錯誤碼

String

max = 64

true

errMsg

平臺錯誤資訊

String

max = 255

false

msgId

訊息ID

String

max = 64

false

msgType

訊息型別

String

false

msgSrc

訊息來源

String

max = 32

true

srcReserve

請求系統預留欄位

String

max = 255

false

responseTimestamp

報文響應時間,格式yyyy-MM-dd HH:mm:ss

Date

true

merName

商戶名稱

String

false

merOrderId

商戶訂單號

String

false

mid

商戶號

String

true

tid

終端號

String

true

seqId

平臺流水號,類似檢索參考號

String

false

settleRefId

清分ID,如果來源方傳了bankRefId就等於bankRefId,否則等於seqId

String

false

Status

交易狀態

String

false

取值說明

totalAmount

支付總金額

Number

false

targetOrderId

第三方訂單號

String

false

targetSys

目標平臺程式碼

String

false

取值說明

targetStatus

目標平臺的狀態

String

false

jsPayRequest

JSAPI支付用的請求報文,帶有簽名信息

Map

false

appPayRequest

APP支付用的請求報文,帶有簽名信息

Map

false

prepayId

支付ID,用於APP支付和公眾號支付

String

max=64

false

qrCode

支付二維碼,內容為URL,由終端轉換成二維碼顯示

String

max=64

false

Sign

報文簽名,演算法參考文件

String

false

signType

簽名演算法

String

false

MD5,SHA1,RSA

targetMid

支付渠道商戶號,各渠道情況不同,酌情轉換。

String

false

1.8. 下單響應示例報文

{

  "msgType": "wx.unifiedOrder",

  "msgSrc": "ERP_SCANPAY",

  "merName": "仲晶晶測試",

  "mid": "123456789054321",

  "appPayRequest": {

    "package": "Sign=WXPay",

    "appid": "wxcf7c37f82cf75798",

    "sign": "8C4B63127BE65757C41369D21EB211B8",

    "partnerid": "102510208503",

    "prepayid": "wx20170425193304c92c9f33a10089330713",

    "noncestr": "MquuMZwYnACubCaXSqrTrxKkpINYtRPt",

    "timestamp": "20170425193304"

  },

  "settleRefId": "00221257500N",

  "tid": "88880001",

  "totalAmount": 1,

  "qrCode": "weixin://wxpay/bizpayurl?pr=GhOkBtP",

  "targetMid": "102510208503",

  "responseTimestamp": "2017-04-25 19:33:04",

  "errCode": "SUCCESS",

  "prepayId": "wx20170425193304c92c9f33a10089330713",

  "targetStatus": "SUCCESS|SUCCESS",

  "seqId": "00221257500N",

  "merOrderId": "3028201704251133163636273122",

  "status": "WAIT_BUYER_PAY",

  "targetSys": "WXPay",

  "sign": "49144C973BAE19B4336111539A65F2B9"

}

2. 支付請求介面

下單成功後,使用返回資料中的appPayRequest即可呼叫支付。

支付需要整合APP綜合支付SDK,以下章節介紹整合SDK及調起支付,處理支付請求結果等內容。

1.1. Android綜合支付介面

本小節涉及到銀聯商務全民付移動支付APP綜合支付SDK的介面說明、及其介面呼叫細節,需要讀者具有一定Android程式設計經驗。

1.1.1. SDK包說明

 APP綜合支付SDK的形式為aar格式,其中包含了所支援支付渠道的開發包(如:微信),商戶無需再手動新增。

1.1.2. 快速整合

1. 引入APP綜合支付開發包

由於APP綜合支付SDK為aar形式,因此需要在Gradle檔案中加入綜合支付SDK的引用。

2. 整合指導

不同的支付渠道在整合方式上會有不同的要求,以下內容描述了怎樣進行支付渠道相關的特殊設定

微信支付渠道

微信支付由於其返回支付結果的特殊性,需要將隨綜合支付SDK一起提供的WXPayEntryActivity.java檔案放入包名對應的路徑中,否則有可能會無法收到支付結果。

此外,還需遵從微信支付所要求的包名及簽名設定,否則無法調起微信支付。詳細請參考微信的開發者網站。

1.1.3. 介面說明

1. 新建支付外掛物件

在使用APP綜合支付SDK之前,首先需要建立支付請求物件。

/*

 * 新建統一支付SDK物件

 * 引數:Context

 * */

UnifyPayPlugin payPlugin = new UnifyPayPlugin(this);

/*

 * 新建統一支付請求類

 *  */

UnifyPayRequest payRequest = new UnifyPayRequest();

2. 初始化支付請求資料

商戶在完成下單之後,可以獲取到支付方式所對應的app資料。(詳細請參考下單介面)。使用該資料,完成支付請求的初始化。

/*

 * 初始化支付渠道(如:微信支付)

 * */

payRequest.payChannel = UnifyPayPlugin.WX_PAY;

/*

 * 設定下單介面中返回的資料(appRequestData)

 * */

payRequest.payData = appRequestData;

欄位名

變數名

型別

長度

輸入/選擇

備註

支付渠道

payChannel

N

2

M

指定的支付渠道 

支付資料

payData

C

M

下單成功後獲取的支付資料。

3. 設定支付結果監聽

通過APP綜合支付SDK的setPayListener介面,可以設定支付結果監聽。支付完成後,會通過onResult介面返回支付結果,支付成功則呼叫查詢介面獲取支付狀態再展示使用者實際支付結果。注意一定不能以外掛SDK返回作為使用者支付的結果,應以伺服器端的接收的支付通知或查詢API返回的結果為準。

注:支付寶渠道如果支付請求傳送成功,則會跳轉至支付寶APP,並且支付完成後會停留在支付寶,因此商戶 APP無法通過UnifyPayListener收到支付結果,請以後臺的支付結果為準。

/*

 * 設定支付結果監聽

 */

payPlugin.setPayListener(new UnifyPayListener() {

@Override

public void onResult(String resultCode, String resultMsg) {

/*

 * 根據返回的支付結果進行處理

 */

if (resultCode.equals(UnifyPayPlugin.UNIFY_PAY_SUCCESS)) {

} else {

}

}

});

支付結果資訊:

欄位名

變數名

型別

長度

輸入/選擇

備註

結果碼

resultCode

C

M

“0000”表示成功

商戶訂單是否成功支付應該以商戶後臺收到支付結果為準,此處返回的結果僅作為支付請求的傳送結果

結果資訊

resultMsg

C

M

介面返回的狀態描述,為JSON字串

4. 支付請求

設定完支付結果監聽介面之後,即可使用startPay介面調起相應的支付SDK進行支付

/*

 * 開始支付

 */

payPlugin.startPay(payRequest);

1.1. iOS綜合支付介面

1.1.3. 快速整合

整合iOSAPP綜合支付SDK時,請先匯入SDK所依賴的庫

1.1.4. 介面說明

引入UMSPPPayUnifyPayPlugin標頭檔案,呼叫UMSPPPayUnifyPayPlugin的類方法:

引數說明:

欄位名

變數名

型別

長度

輸入/選擇

備註

支付渠道

payChannel

N

2

M

指定的支付渠道 

支付資料

payData

C

M

下單成功後獲取的支付資料。

支付結果

callbackBlock

N

M

獲取支付結果的回撥

注:支付寶渠道如果支付請求傳送成功,則會跳轉至支付寶APP,並且支付完成後會停留在支付寶,因此商戶 APP無法通過callbackBlock收到支付結果,請以後臺的支付結果為準。

callbackBlock返回的支付結果資訊:

欄位名

變數名

型別

長度

輸入/選擇

備註

結果碼

resultCode

C

M

“0000”表示成功

商戶訂單是否成功支付應該以商戶後臺收到支付結果為準,此處返回的結果僅作為支付請求的傳送結果

結果資訊

resultInfo

C

M

介面返回的狀態描述,為JSON字串

1.1. 綜合支付引數說明

1.1.5. 支付渠道

在呼叫綜合支付外掛進行支付時,需要指定所想使用的支付渠道,渠道相關說明如下。

欄位名

編號

備註

支付渠道

00

銀商渠道支付 

01

Apple Pay

02

Sumsung Pay

03

微信支付

04

支付寶支付

1.1.2. 支付結果資訊

欄位名

變數名

型別

長度

輸入/選擇

備註

結果碼

resultCode

C

M

“0000”表示成功

商戶訂單是否成功支付應該以商戶後臺收到支付結果為準,此處返回的結果僅作為支付請求的傳送結果

結果資訊

C

M

介面返回的狀態描述,為JSON字串

結果描述

resultMsg

C

M

支付結果描述

附加資訊

extraMsg

C

M

支付結果附加的資訊

原始資訊

rawMsg

C

M

原始支付渠道返回的資訊

1.1.1. 結果碼

結果碼說明

欄位名

編號

備註

結果碼

0000

支付請求傳送成功。商戶訂單是否成功支付應該以商戶後臺收到支付結果。

1000

使用者取消支付

1001

引數錯誤

1002

網路連線錯誤

1003

支付客戶端未安裝

2001

訂單處理中,支付結果未知(有可能已經支付成功),請通過後臺介面查詢訂單狀態

2002

訂單號重複

2003

訂單支付失敗

9999

其他支付錯誤

5.1 口介紹

錢包支付時,因通訊故障、伺服器故障等原因,造成收銀機最終沒有收到支付結果通知,收銀員不確定該筆支付後臺處理結果,可以在收銀機上發起“查詢”交易,查詢該筆交易訂單在錢包後臺的支付結果,並將支付結果返回給收銀機

5.2 引數配置

Server端傳送HTTP POST請求到下列介面地址:

測試環境介面地址:http://umspay.izhong.me/netpay-route-server/api/

生產環境介面地址:https://qr.chinaums.com/netpay-route-server/api/

5.3 查詢請求

引數欄位

引數說明

型別

範圍

必傳

備註

msgId

訊息ID

String

max = 64

false

msgSrc

訊息來源

String

min = 1

max = 20

true

msgType

訊息型別

String

min = 1

max = 64

true

query

requestTimestamp

報文請求時間,格式yyyy-MM-dd HH:mm:ss

Date

true

srcReserve

請求系統預留欄位

String

max = 255

false

mid

商戶號

String

min = 8

max = 32

true

tid

終端號

String

min = 2

max = 32

true

instMid

機構商戶號

String

min = 8

max = 32

true

APPDEFAULT

merOrderId

商戶訂單號

String

min = 6

max = 64

false

targetOrderId

支付訂單號

String

min = 6

max = 64

false

sign

簽名

String

true

簽名規則

{

    "msgType": "query",

    "requestTimestamp": "2016-11-11 17:30:07",

    "msgSrc": "WWW.SUPERB-PAY.COM",

    "mid": "898310060514001",

    "tid": "0001",

    "merOrderId": "301599028982611111637001000",

    "instMid": "YUEDANDEFAULT"

}

5.5 查詢響應

引數欄位

引數說明

型別

範圍

必傳

備註

errCode

平臺錯誤碼

String

max = 64

true

errMsg

平臺錯誤資訊

String

max = 255

false

msgId

訊息ID

String

相關推薦

支付api相關

銀聯商務全民付移動支付 APP綜合支付 商戶接入介面規範 V1.0.1 銀聯商務有限公司 2017.07 版本控制資訊 版本 日期 修改人

淺析微信支付:開通社交立減金活動、建立立減金及領取使用的相關和原始碼

本文是【淺析微信支付】系列文章的第十七篇,主要講解在在微信平臺中,如何建立優惠券,開通社交立減金,併為使用者配置傳送立減金。 上篇文章已經為大家講解了如何在微信公眾平臺建立優惠券併為使用者發券,這片文章是優惠券的一個進階,講解微信平臺上的社交立減金用法,希望可以幫助到大家。 應用場景 小程

使用Mybatis-Generator自動生成Dao、Model、Mapping相關

select let 屬於 url img jdb uid enables 粘貼 Mybatis屬於半自動ORM,在使用這個框架中,工作量最大的就是書寫Mapping的映射文件,由於手動書寫很容易出錯,我們可以利用Mybatis-Generator來幫我們自動生成文件。

Moodle 中文 API管理API

reverse string bit /dev/ empty cte extra 回調函數 安全 File API 文件管理 文件夾 1. 概述 2. 文件域 2.1 命名文件域 3. 提供文件給用戶 4. 從用戶那獲取文件 5. 樣例

使用MyBatis-Gererator自動生成Dao.Model.Mapping相關

less .cn dbcc nat acc git reat logs ping 一。在MyEclipse中使用Maven項目下使用MyBatis-Gererator自動生成Dao.Model.Mapping相關文件   1.關於Mybatis-Generator的下載可以

Linux用戶相關之/etc/pssswd

理論 shel etc 開放 登錄 passwd 重復 login 由於 1.文件地址:   /etc/pssswd  -rw-r--r--. 1 root root 936 10月 6 12:50 /etc/passwd 2.文件內容:   xiaol_1:x:501

Linux用戶相關之組

linu 文件內容 刪除 應該 說明 信息 oot gid 通過 組信息文件:   1.文件地址:     /etc/group     -rw-r--r--. 1 root root 492 10月 6 21:56 /etc/group   2.文件內容:    

使用Mybatis-Generator自動生成Dao、Model、Mapping相關(轉)

rop root github mini -c back fig override creat https://github.com/astarring/mybatis-generator-gui 帶界面版:需要jdk 1.8以上 出處:http:

Hadoop NameNode元數據相關目錄解析

沒有 hadoop href dfs com 訪問控制 相關 itl 大量 在《Hadoop NameNode元數據相關文件目錄解析》文章中提到NameNode的$dfs.namenode.name.dir/current/文件夾的幾個文件: 1 current

新建用戶的相關

網絡 linux /etc/login.defs 針對文本內容我們進行簡要說明cat /etc/login.defs ##以下僅摘出部分字段進行分析 MAIL_DIR /var/spool/mail ##創建用戶時對應的郵箱路徑 PASS_MAX_DAYS 99999 #

spring_boot_pay支付寶,微信,支付詳細代碼案例

fan target 簽名加密 china 整合 提示 業務 rom sig spring-boot-pay 支付服務:支付寶,微信,銀聯詳細代碼案例(除銀聯支付可以測試以外,支付寶和微信支付測試均需要企業認證,個人無法完成測試),項目啟動前請仔細閱讀 註意事項 。 友情

mysql 日誌mysql-bin清除方法,和mysql-bin相關的配置

設置 row exp ted 基本 安全 ret 保留 span 默認情況下mysql會一直保留mysql-bin文件,這樣到一定時候,磁盤可能會被撐滿,這時候是否可以刪除這些文件呢,是否可以安全刪除,是個問題。 首先要說明一下,這些文件都是mysql的日誌文件,如果不做主

vue-cli腳手架npm相關說明-2、webpack.prod.conf.js

base upd esp dev 如何 resolve 壓縮 ont 緩存 下面介紹webpack.prod.conf.js中相關配置代碼和配置的說明,建議先查閱build/webpack.prod.conf.js /* * Webpack 生產環境配置文件,用於生

vue-cli腳手架npm相關說明(7)dev-server.js

修改 six 瀏覽器中 tsp pack 傳送門 don 種類 join 系列文章傳送門: 1、build/webpack.base.conf.js 2、build/webpack.prod.conf.js 3、build/webpack.dev.conf.js

vue-cli腳手架npm相關說明(5)vue-loader.conf.js

傳送門 env loader tar 文章 .html 系列 uil class 系列文章傳送門: 1、build/webpack.base.conf.js 2、build/webpack.prod.conf.js 3、build/webpack.dev.conf

vue-cli腳手架npm相關說明(8)check-versions.js

str target 指定 hal lean 插件 代碼 push should 系列文章傳送門: 1、build/webpack.base.conf.js 2、build/webpack.prod.conf.js 3、build/webpack.dev.conf

用戶賬戶和組賬戶的的相關權限介紹

用戶賬戶和組賬戶的的相關文件及文件權限介紹 與用戶賬戶和組賬戶相關的文件: /etc/passwd /etc/group /etc/shadow /etc/gshadow /etc/default/useradd /etc/login.defs /etc/skel(Directory) /etc

SourceTree設置忽略不相關

ima log 文件中 aid targe .com 相關 lan href 將下列文件中的內容粘貼後確認即可 網址 http://pan.baidu.com/s/1dE7Rm0pSourceTree設置忽略不相關文件

支付踩過的坑

images 技術分享 技術 表單 發現 銀聯支付 必須 銀聯 idt 第一個坑: 前端調接口的時候一直報這個錯,查看銀聯文檔才發現,銀聯是以分結算的。 第二個坑: 因為向銀聯提交表單的時候,字段必須按照順序傳遞給銀聯,開始後臺使用HashMap傳遞給前臺,然後前臺向銀

API操作編程-CreateFile、WriteFile、SetFilePointer

移動 turn 操作 .cpp 名稱 create 輸出 拷貝 null 1、說明  很多黑客工具的實現是通過對文件進行讀寫操作的,而文件讀寫操作實質也是對API函數的調用。 2、相關函數 CreateFile :  創建或打開文件或I/O設備。最常用的I/O設備如下:文件