什么是脱机交易联机交易

以下试题来自:
单项选择题联机功能按照交易类型不同分().
A、金融类交易和非金融类交易
B、脱机交易和非金融类交易
C、脱机功能和联机功能
D、金融类交易和联机交易
为您推荐的考试题库
您可能感兴趣的试卷
你可能感兴趣的试题
A、一次刷卡消费
B、执行撤销交易
C、执行签退操作
D、执行结算操
B、预授权完成
B、继续冻结
C、预授权完成
D、消费撤销
D、重打票据以下试题来自:
单项选择题联机功能按照交易类型不同分为()
A、金融类交易和非金融类交易
B、脱机交易和非金融类交易
C、脱机功能和联机功能
D、金融类交易和联机交易
为您推荐的考试题库
您可能感兴趣的试卷
你可能感兴趣的试题
A、金融功能和非金融功能
B、脱机功能和非金融功能
C、脱机功能和联机功能
D、金融功能和联机功能
A、***线方式和有线方式
B、GSM方式和GPRS方式
C、GSM短信息方式和GPRS方式
D、无线通讯方式和有线通讯方式
B、消费撤销
A、消费交易
B、预授权交易
C、预授权完成交易
D、消费撤销交易赵琦 | 夏浩波
版本更新记录
1. 更正退款交易响应字段及查询响应字段
2. 修改退款响应字段状态R的说明
3. 修改交易明细单下载接入说明
4. 修改文档对异步通知报文的说明
5. 修改异步通知的接入说明
机构在与民生银行完成线下协议签订后,由总行乐收银商务平台管理员在乐收银商务平台开立机构平台号,平台号唯一,机构真实进行交易的商户须在民生乐收银商务平台开通商户,开通商户后,会生成民生银行商户号,民生会为每一个机构平台发放用于订单加密加签和解密验签的的通信***。
通信协议采用SM2算法,商户订单信息采用机构私钥***签名,民生公钥***加密。商户收到民生银行返回的信息,用商户私钥***解密,民生公钥***验签,确保双方交互的信息加密传输,安全可靠防抵赖。
民生银行目前提供加密加签和解密验签demo,支持的语言有c#.net,php,和java,商户可以下载demo结合文档进行开发,测试***在民生银行开发平台直接下载。
专有名词解释
platformId
平台接入时,在乐收银商务平台添加平台后生成平台编号,民生向该平台发放***UAT测试环境填:cust0001生产环境填民生为接入机构开通的平台编号。
merchantNo
民生统一商户号
在乐收银商务平台开通商户后生成统一商户号,有民生银行分行商户录入时提供或者批量导给商户
民生UAT测试环境测试参数
cust0001.sm2
cmbcTest.cer
生产环境参数
生产环境平台需向民生银行申请平台号以及平台***,平台保留自己的私钥和密码,将生产环境平台公钥文件提供给民生银行,生产环境民生银行公钥为***文件cmbc.cer,由商户保留用作加密和验签。
民生支付网关地址
UAT测试环境服务器地址:
生产环境地址:
案例
线上:微信,支付宝,qq钱包。
线下:待补充。
场景介绍
步骤1:商户根据第三方支付的规则,为不同的商品生成不同的二维码(如图1.1),展示在各种场景,用于用户扫描购买。
步骤2:用户使用第三方支付“扫一扫”(如图1.2),扫描二维码后,获取商品支付信息,引导用户完成支付(如图1.3)。
1.1 支付二维码
1.2 打开微信扫一扫二维码
1.3 确认支付页面
步骤3:用户确认支付,输入支付密码(如图1.4)
步骤4:支付完成后会提示用户支付成功(如图1.5),商户后台得到支付成功的通知,进行后续处理,如发货。
1.4 用户确认支付,输入密码
1.5 支付成功提示
步骤1:商户根据支付宝的支付规则,为不同的商品生成不同的二维码(如图1.1),展示在各种场景,用于用户扫描购买。
步骤2:用户使用支付宝“扫一扫”(如图1.2),扫描二维码后,获取商品支付信息,引导用户完成支付(如图1.3)。
1.1 支付二维码
1.2 打开支付宝扫一扫二维码
1.3 确认支付页面
步骤3:用户确认支付,输入支付密码,支付完成后会提示用户支付成功(如图1.5),商户后台得到支付成功的通知,进行后续处理,如发货。
1.5 用户确认支付,输入密码后支付成功提示
时序图
业务流程说明:
(1)商户后台系统根据用户选购的商品生成订单。
(2)用户确认支付后调用乐收银 生成预支付交易;
(3)微信支付系统收到请求后生成预支付交易单,并返回交易会话的二维码链接code_url。
(4)商户后台系统根据返回的code_url生成二维码。
(5)用户打开微信“扫一扫”扫描二维码,微信客户端将扫码内容发送到微信支付系统。
(6)微信支付系统收到客户端请求,验证链接有效性后发起用户支付,要求用户授权。
(7)用户在微信客户端输入密码,确认支付后,微信客户端提交授权。
(8)微信支付系统根据用户授权完成支付交易。
(9)微信支付系统完成支付交易后给乐收银返回交易结果,并将交易结果通过短信、微信消息提示用户。微信客户端展示支付交易结果页面。
(10)微信支付系统通过发送异步消息通知商户后台系统支付结果。商户后台系统需回复接收情况,通知微信后台系统不再发送该单的支付通知。
(11)商户后台系统调用乐收银系统
(12)商户确认订单后可进行后续操作。
案例
线上:微信,支付宝,qq钱包。
线下:待补充。
场景介绍
以下的截图以微信作为第三方为例。
步骤1:商户根据第三方支付的规则,生成订单及支付信息(如图3.1);
步骤2:用户点开微信“钱包”点击“付款”(如图3.2);
步骤3:用户将“付款码”界面对准商户扫描设备,完成支付(若未开启免密情况,需要用户输入密码完成支付);
步骤4:支付完成后会提示用户支付成功,商户后台得到支付成功的通知;
步骤1:商户根据支付宝的支付规则,生成订单及支付信息;
步骤2:用户点开支付宝点击“付款”(如图3.1);
步骤3:用户将“付款码”界面对准商户扫描设备,完成支付;
步骤4:支付完成后会提示用户支付成功,商户后台得到支付成功的通知,用户也会得到支付成功的消息(如图3.2);
时序图
支付宝服务窗
案例
线上:支付宝服务窗。
线下:民生银行网络金融。
场景介绍
以下截图以民生银行网络金融支付宝服务窗为例。
步骤1:(图1)进入商户网页,用户选择物品,完成选购流程。
步骤2:(图2)调起微信支付控件,用户开始输入支付密码。
步骤3:(图3)密码验证通过,支付成功。用户得到支付宝支付成功的通知。
步骤4:(图4)返回商户页面,显示购买成功。该页面由商户自定义可以是静态页面。
时序图
商户系统和支付宝支付系统主要交互:
1、商户server调用乐收银统一下单接口请求订单,api参见公共api
2、商户server接收支付通知,api参见公共api【支付结果通知API】
3、商户server调用乐收查询支付结果,api参见公共api
统一下单API
应用场景
统一下单 API 支持微信正反扫和公众号、支付宝正反扫和公众号 API 下单。
请求地址
.cn/mobilePlatform/appserver/lcbpPay.do
.cn/appweb/appserver/lcbpPay.do
请求字段
接入平台号
platformId
民生银行为接入平台分配的平台编号,与平台***一一对应
民生商户号
merchantNo
实际交易商户的民生商户号
selectTradeType
API模式下支付类型:
H5_WXJSAPI 微信公众号跳转支付
API_WXQRCODE 微信正扫
API_WXSCAN 微信反扫
API_ZFBQRCODE 支付宝正扫
API_ZFBSCAN 支付宝反扫
H5_ZFBJSAPI 支付宝服务窗
交易金额,以分为单位
商户订单内容,商品信息
merchantSeq
商户流水号,商户须保证流水唯一,建议是商户平台号+8位日期+商户自定的订单号
yyyyMMddHHmmssSSS
商户实现的接收异步通知的url地址
反扫模式下该部分必输,填扫描客户二维码Base64后的值
子商户appId
subAppleId
公众号支付API下,该部分必输,填子商户appId
子商户openId
公众号支付API下,该部分必输,填子商户openId
返回字段
gateReturnType为S时,返回字段
tradeStatus
E 订单失败R 原订单成功,未支付(待支付)
微信/支付宝正扫下单返回的是base64二维码字符串公众号支付API下单返回的是prepay_id
merchantName
商户订单号
merchantSeq
商户订单号
传入商品信息等
在线调试
支付结果查询API
应用场景
民生提供给商户的微信支付结果查询接口,可查询刷卡,微信正扫、反扫、以及退款交易的结果,只可查询当日交易。
请求地址
.cn/mobilePlatform/appserver/paymentResultSelect.do
.cn/appweb/appserver/paymentResultSelect.do
接口有统一的报文头,商户将要查询的商户号订单等字段转换为JSON字符串加密加签后放入报文指定字段发送,返回报文同样是密文,请求和相应内容解密后字段组成的json加密加签到businessContext。
请求字段
接入平台号
platformId
民生银行为接入平台分配的平台编号,与平台***一一对应
民生统一商户号
merchantNo
实际交易商户的民生商户号
商户订单号
merchantSeq
原交易商户订单号
1.支付2.退款
原交易凭证号
orgvoucherNo
当查询类型为退款时必须输入
返回字段
gateReturnType为S时,返回字段
回显商户名
merchantName
商户用于回显商户收款的名字
商户订单号
merchantSeq
原交易商户订单号
传入商品信息等
收单凭证号
银行流水号
bankTradeNo
收单系统流水号
tradeStatus
S 订单交易成功
E 订单失败
R 原订单成功,未支付(待支付)
C 已撤销(理论上不存在) 已关闭
T 订单转入退款
所查询订单的状态
0借记卡 1贷记卡
前六后四中间*
发卡行行号
发卡行行名
交易手续费
银联终端号
设备序列号
centerInfo
微信订单号
centerSeqId
收单到微信下单编号
bankOrderNo
在线调试
应用场景
民生提供给商户的退款接口。
请求地址
.cn/mobilePlatform/appserver/cancelTrans.do
.cn/appweb/appserver/cancelTrans.do
接口有统一的报文头,商户将要退款的商户号订单号等字段转换为JSON字符串加密加签后放入报文指定字段发送,返回报文同样是密文,请求和相应内容解密后字段组成的json加密加签到businessContext。
请求字段
接入平台号
platformId
民生统一商户号
merchantNo
商户订单号
merchantSeq
原交易商户订单号
orderAmount
返回字段
gateReturnType为S时,返回字段
回显商户名
merchantName
商户用于回显商户收款的名字
商户订单号
merchantSeq
商户平台号+8位日期+商户自定的订单号
传入商品信息等
收单凭证号
银行流水号
bankTradeNo
tradeStatus
S 订单交易成功
E 订单失败
R 原订单成功,未支付(待支付)
在线调试
商户需开发实现订单结果接收接口,民生会向商户的notifyUrl地址发送HTTP
POST请求,内容为Json格式的报文(见如下示例),其中context密文解密解签后字段(见附录5)为通知的报文。
商户接收处理后,只需回复SUCCESS即可,民生以收到商户SUCCESS为准,收不到商户返回或者收到其他返回,皆会按策略再次尝试重新发送通知,发送8次都收不到回应,则不再发送。
异步通知示例报文:
OooMn9AW9x9gBmBPw7FOXFcvnZCNF4w9o/WCHodB78u0+3wk9CTLztg5CEvWUFWrdF7VqX2Q9ngW7zrSOzgfaHEPnwNdKrJq1VdygI/0wEQIHkTY2kTC40e316tYae3DnJa3SVF0qkI2xLfvJbSFNc8PO5BGxZ1EfmQ0tTB9x8OQfb9nCkdaLfKk8UYlq3ZAn2EohbB2g6WRL3wt7oRX00kJTLz7OYxficqlmefJLTWHRuEXvz3CdvvQA3HZCuyY2o6njeVkBSql5mIy9B0mz6lLBe6yQMh16TH4MhAe9ormJoDYXePfwdrf53OOgiMGzG3+qYiKSkk5uAh6X7PZ7oNXZ6tLUXVLNOF3MBjCBCwhDZmF9kb4cC+2ICcwA+/BV0xBRe5VPxuGYDGGH/rhI8Vfel88q2O/0ISaECXY2zsMMcPYQ/1Jl+DUGpgPhT8IK3mUqkCzzR+t66f4BfiGdCzz2iclRMNhe03Z5Yk9UDAuGzfoX2Un8O1fBcOlHYKHaQ2jJ4aUKoLnc0IpiGLZYeFsCdsjIYKk25fjqQ6dEN8zU42SAv7uiuP0v+GIQQTUq5y2kt2P1cD5TyZzRwJ8oBRmi0eICCzWtZaP1lT8bO8zwGhcSmD7YqgMYCt1el7eN5gNwVlQvSbh8VZqcrdjzDmG/LTBkjTPcD32STGlPie3wSENenam3WgMf4z0cxBWtA20JkAvVGHRLA/M3HwycB5l0ye77KeDWOg0gi+VaCRnvyhdAMKl3TWmZ71kG8A3647baLWImRZ1MIeKDeldd6AtO2YK8LV8okxK3v0eY9GDnk0nXe1AB6uc3inDJB7yNm8zP/Bt57Hk4MfGAfR2z2h2zBKZ5k+2LulyfnjksiuCOLjI9kiXJGnLKgSKjWzM2qof8ff36idiQMX6x85yYKPAhCMpjbx1LoZMjHd+5TDIzuzVX+TVybfRtwNRffT6lBqqEs9wfiXR1idARSTfjWaQhf6Pl1tv4/Xh66C1UlPfCBJSGkKodhgF8bluWhv0/9lZTHUxoxelvrFGzytQbO2e/PDZKRSaYHM03PZyeIuZQIfsCo6ZWMNnalOBYWbpoR+/xlEJWeY8SBnHg1oG5+3cmP0lG/vWGaVop4stq4T5SO+OLGmKucnOz53IOPjm8yCkFI0Ggkwg=="}
异步通知字段
merchantNo
商户订单号
原交易商户订单号
platformId
收单凭证号
银行流水号
bankTradeNo
收单系列流水号
tradeStatus
收单系统流水号 S 订单交易成功
>0借记卡 1贷记卡
前六后四中间*
发卡行行号
发卡行行名
交易手续费
银联终端号
设备序列号
centerInfo
微信:openid=ooEyIjvNwCKprHj_hwnayDWjy5Ks|is_subscribe=Y|bank_type=ICBC_DEBIT|time_end=55
buyer_logon_id=182****7122|buyer_id=2296|app_id=9170|seller_id=6201|seller_email=zfbtest25@|payeeSeq=
9948|tradeNo=9948|fund_bill_list=[{\"amount\":\"0.01\",\"fundChannel\":\"ALIPAYACCOUNT\"}]|
微信/支付宝订单号
centerSeqId
收单流水号
收单到微信/支付宝下单编号
bankOrderNo
交易明细单下载API
应用场景
民生银行每日会根据机构生成该机构的交易明细单文件。交易明细单文件采用http接口加密分块传输。商户循环/单笔请求文件块,并将接收到的文件块组合,拼成完整文件,商户可以将分块文件缓存后最后一次性写入文件,也可以每接收一块就将该块写入文件,注意使用字节流的方式写入文件,避免乱码,最后可以校验文件MD5值,确认文件的完整性。
接口有统一的报文头,商户将要请求的文件块参数加密加签后放入报文指定字段发送,返回报文同样是密文,请求和相应内容解密后字段(见附录6),商户初次请求分块0可以获取文件的总块数、文件的MD5等信息。以便确定发送请求的次数。
请求字段
接入平台号
platformId
民生银行为接入平台分配的平台编号,与平台***一一对应
交易明细单日期
slcTransDate
yyyyMMdd交易明细单文件日期,目前支持当前自然日T-1日到T-8,7天内的交易明细单文件下载
块文件索引
segmentIndex
0-N当前请求第几块文件,如果传0,则文件块内容和块MD5返空,其他信息齐全
文件类型:
WX-微信对账单
LSY-乐收银线下刷卡
ZFB-支付宝对账单
segmentSize
KB为单位,最大为1024KB
返回字段
gateReturnType为S时,返回字段
接入平台号
platformId
民生银行为接入平台分配的平台编号,与平台***一一对应
交易明细单日期
slcTransDate
yyyyMMdd交易明细单文件日期,目前支持当前自然日T-1日到T-8,7天内的交易明细单文件下载
块文件索引
segmentIndex
0-N当前请求第几块文件,如果传0,则文件块内容和块MD5返空,其他信息齐全
文件类型:
WX-微信对账单
LSY-乐收银线下刷卡
ZFB-支付宝对账单
segmentSize
KB为单位,最大为1024KB
当前分块内容
segmentContent
当前块内容(Base64加密的String字符串),最大为1M 单位为KB,例如:2KB,1024KB
segmentMd5
当前块的MD5值
segmentCount
完整文件MD5
完整文件的MD5值
商户接入微信支付,调用API必须遵循以下规则:
为保证交易安全性,采用HTTPS传输
采用POST方法提交
提交和返回数据都为XML格式,根节点名为xml
统一采用UTF-8字符编码
MD5,后续会兼容SHA1、SHA256、HMAC等。
请求和接收数据均需要校验签名,详细方法请参考安全规范-签名算法
调用申请退款、撤销订单接口需要商户***
先判断协议字段返回,再判断业务返回,最后判断交易状态
基本格式
民生提供的API接口有统一的明文报文头,开发人员将接口字段信息按照要求签名加密后后放入公共报文头的businessContext发送,返回报文同样是取businessContext,解密后拿到接口返回字段,再验签。
公共报文businessContext明文部分为json格式,如下所示。
{"sign":"xxxx","body":"xxxx"}
其中,body部分为请求字段拼接的json字符串,sign部分为对该字符串商户用私钥进行的签名。然后商户用银行公钥对上述字符串加密,作为businessContext放在公共报文头里,通过http
post方式,发给民生银行。
公共报文头请求字段
版本号,用于版本控制、灰度发布、向下兼容等用途目前默认填v1.0
发起渠道,用于标识ios、Android、PC等的渠道管控及版本控制PC-PC
Web端;iOS-苹果客户端;Android-安卓客户端
merchantNum
统一商户编号,由商户管理系统提供的统一商户编号
merchantSeq
商户发起交易时使用的流水,互联网接入网关不对流水号去重,仅将商户编号和商户流水拼接后直接传递给后台系统
yyyyMMddHHmmssSSS
securityType
决定使用何种***、签名、加密算法
一般备用字段
一般备用字段
一般备用字段
一般备用字段
一般备用字段
通用备用字段
reserveJson
Json格式的通用备用字段
businessContext
订单签名加密后的内容
公共报文头返回字段
merchantSeq
网关响应流水
互联网交易网关的响应流水,用于定位问题等
网关响应日期
gateTransDate
网关响应时间
gateTransTime
yyyyMMddHHmmssSSS
网关响应结果
gateReturnType
S:成功,E:失败,R:待查
网关响应错误码
gateReturnCode
网关响应错误信息
gateReturnMessage
一般备用字段
一般备用字段
一般备用字段
通用备用字段
reserveJson
Json格式的通用备用字段
businessContext
仅当网关响应结果gateReturnType为S时该字段存在且有效,为业务系统向外部系统的返回为民生签名加密后的返回信息
步骤详解
下面以统一下单API为例说明商户开发过程,其他API流程一样。
1. 商户后台按照要求,生成对应订单信息,将订单信息拼接成json字符串
{"amount":"2",
"merchantNo":"M",
"merchantSeq":"cust20",
"notifyUrl":"http://111.205.207.103/cmbcpaydemo/NoticeServlet?name=notice","orderInfo":"支付宝",
"platformId":"cust0001",
"remark":"",
"selectTradeType":"API_WXQRCODE",
"transDate":"",
"transTime":"03920"}
2.将上述字符串调用签名函数进行签名,得到签名值
MEUCICPHMQvZOoWeHTgkKFSSri1gDaWb0tHtEHXqa3lUgDhoAiEA09/k6gi+KGBiMQpLU5ig1kSsLxSsmzWoyCgiuqwYPNg=
3.将签名值和订单json字符串按如下格式拼接
{"sign":"MEUCICPHMQvZOoWeHTgkKFSSri1gDaWb0tHtEHXqa3lUgDhoAiEA09/k6gi+KGBiMQpLU5ig1kSsLxSsmzWoyCgiuqwYPNg=",
\"amount\":\"2\",
\"merchantNo\":\"M\",
\"merchantSeq\":\"cust20\",
\"notifyUrl\":\"http://111.205.207.103/cmbcpaydemo/NoticeServlet?name=notice\",
\"orderInfo\":\"支付宝\",
\"platformId\":\"cust0001\",
\"remark\":\"\",
\"selectTradeType\":\"API_WXQRCODE\",
\"transDate\":\"\",
\"transTime\":\"03920\"}
4.对json串加密得到订单密文
MIICyAYKKoEcz1UGAQQCA6CCArgwggK0AgECMYGdMIGaAgECgBS1x/e/puEJbLQnTtwm2y/+fP1b2jANBgkqgRzPVQGCLQMFAARwNn6oEvoBUJpak+BNV3xmXEqGcu5l68zkxB9Vgw0EXBO0KUIX/uSpNwL4bMrI1jKmq8seTatteyxLRJ02E3wn7B5fZuIZ7PCd40WrDDE96DUnGr70EcuxnyHRbJ7zDn9Pj5K3+FA2SlbnMmAg6vC40jCCAg0GCiqBHM9VBgEEAgEwGwYHKoEcz1UBaAQQloNbW9+JlWq8+sEJ+ct3tYCCAeB0lq+6QuDWECPyiBpFi+u6ohRyC4d40dPX3TOnmdOarqeNWT5EbiJ5P9ZTOemvMRGJbZxAadnVSzG1sj0xB3+1sqiafFXiHXBV310WhbIfH2Ely+w2MMv5Xl9Ve97czaoGAQd7OZg+ZArSp2Y8dhCbbgyXolBuzekBInJgCLMEG7kF42N+NiMJ0t+hutEw5B4iwZSnHCDRXptuXApDcOfAqWJkX1TGMl2mMaFny/vVFiB816EOa9MgvxIGuymWCpcuYRy2hIYi2+xYYsnWOXYXaUhPhd8wFuzbdMtGEOT8eqiLesblU386NlasRY60uSFByQEXZyMhkhU9oxzyv9QNAMqKvBgSTkDmcMVF4qKNpWILGdgOCduVa5Zov/lEbQfKqzYzh7D9zU5y4Rali3wCaXkT51LvWrLLLdYMdbwzf7r4B/rA8u9HhqThGm0+tVp95JsXVlL+pSECyRIWUgXC7kMPwCiOFDOyEsgIVeBa1WvLeovj1nxhkqg+z2m7yBRiLK9nCS1Hw6rzs4cHLMlb35cRemerYTOgeckCxAF9135Ttpq1VcS2bnCmmF0Gk8jy0DjOx/nEWzm6BpVkb+L9yetUTAXzqw36gyQ2y0uft7rml71AwAHSG2PveSIAtT8=
5.将该部分放到报文头的bussinessContext中
{"businessContext":"MIICyAYKKoEcz1UGAQQCA6CCArgwggK0AgECMYGdMIGaAgECgBS1x/e/puEJbLQnTtwm2y/+fP1b2jANBgkqgRzPVQGCLQMFAARwNn6oEvoBUJpak+BNV3xmXEqGcu5l68zkxB9Vgw0EXBO0KUIX/uSpNwL4bMrI1jKmq8seTatteyxLRJ02E3wn7B5fZuIZ7PCd40WrDDE96DUnGr70EcuxnyHRbJ7zDn9Pj5K3+FA2SlbnMmAg6vC40jCCAg0GCiqBHM9VBgEEAgEwGwYHKoEcz1UBaAQQloNbW9+JlWq8+sEJ+ct3tYCCAeB0lq+6QuDWECPyiBpFi+u6ohRyC4d40dPX3TOnmdOarqeNWT5EbiJ5P9ZTOemvMRGJbZxAadnVSzG1sj0xB3+1sqiafFXiHXBV310WhbIfH2Ely+w2MMv5Xl9Ve97czaoGAQd7OZg+ZArSp2Y8dhCbbgyXolBuzekBInJgCLMEG7kF42N+NiMJ0t+hutEw5B4iwZSnHCDRXptuXApDcOfAqWJkX1TGMl2mMaFny/vVFiB816EOa9MgvxIGuymWCpcuYRy2hIYi2+xYYsnWOXYXaUhPhd8wFuzbdMtGEOT8eqiLesblU386NlasRY60uSFByQEXZyMhkhU9oxzyv9QNAMqKvBgSTkDmcMVF4qKNpWILGdgOCduVa5Zov/lEbQfKqzYzh7D9zU5y4Rali3wCaXkT51LvWrLLLdYMdbwzf7r4B/rA8u9HhqThGm0+tVp95JsXVlL+pSECyRIWUgXC7kMPwCiOFDOyEsgIVeBa1WvLeovj1nxhkqg+z2m7yBRiLK9nCS1Hw6rzs4cHLMlb35cRemerYTOgeckCxAF9135Ttpq1VcS2bnCmmF0Gk8jy0DjOx/nEWzm6BpVkb+L9yetUTAXzqw36gyQ2y0uft7rml71AwAHSG2PveSIAtT8=","merchantNum":"","merchantSeq":"","reserve1":"","reserve2":"","reserve3":"","reserve4":"","reserve5":"","reserveJson":"","securityType":"","sessionId":"5AF93DCBCFC.Btomcat","source":"","transCode":"","transDate":"","transTime":"","version":""}
6.调用统一下单API,接收API返回信息
{"businessContext":"MIICOAYKKoEcz1UGAQQCA6CCAigwggIkAgECMYGdMIGaAgECgBRZlNziHI2cFrW5Ep1ym13ckOMoGTANBgkqgRzPVQGCLQMFAARw+hyS0V6ivs+yH4Cqs9ijox21x3Fy0AR+ZKbGot9K4hvwfPfFL/5w6aWoZj7WcSFJfDiqxsBC1OIOcQuruwwixzfcV88JH9l90kaK9UgEPgmuJve1fG/g7gpx5OF8jqfNFBYHiZl7szSp6JYQ1lApNzCCAX0GCiqBHM9VBgEEAgEwGwYHKoEcz1UBaAQQDe7zSnneYa/1cxTXILC6dICC***D/KEWjFW0TCYSjdrleCQ6tLuPPyv/veEBhQ1hd6iZgyU2sDdxqMig5zWpvihJ7alM0XRrY667oRs5FX7lswmRvHPhw8sc0fGPH5mz8LqbG+xCxPDfMA6OihvB1hyo15bvXFLost1pFv9ufpTceDhFWKxzqBBw6dal7Vvm003L8y14g4O0Ra4bQB7cghsxG7imujlX+Mep4NwY877V+Ojh9Le0OfapG+OIItK60xe2M7+JEVWDadStdrq/PkmJsYyZYnUUewVn3Ido7/n/1a0J5dKvvatf+i5OMujPDcambxRp6bQ/QioOJX/hZvoRTfKfVOORnk7rTCR/xABTnVPoE0xzyDgBT12zFmrTnJZO+qMeezKtmI4LT2PgT4EfczwF9zrCdVcWjvBA8+b94WYMScpPFgU7s/PKOvmUcVxjnIOuNu9RjlANhLdqDeG/kxX4=","gateReturnCode":"","gateReturnMessage":"","gateReturnType":"S","gateSeq":"05622","gateTransDate":"","gateTransTime":"05622","merchantSeq":"","reserve1":"","reserve2":"","reserve3":"","reserveJson":"","transCode":""}
7.从businessContext中获取支付返回的密文
MIICOAYKKoEcz1UGAQQCA6CCAigwggIkAgECMYGdMIGaAgECgBRZlNziHI2cFrW5Ep1ym13ckOMoGTANBgkqgRzPVQGCLQMFAARw+hyS0V6ivs+yH4Cqs9ijox21x3Fy0AR+ZKbGot9K4hvwfPfFL/5w6aWoZj7WcSFJfDiqxsBC1OIOcQuruwwixzfcV88JH9l90kaK9UgEPgmuJve1fG/g7gpx5OF8jqfNFBYHiZl7szSp6JYQ1lApNzCCAX0GCiqBHM9VBgEEAgEwGwYHKoEcz1UBaAQQDe7zSnneYa/1cxTXILC6dICC***D/KEWjFW0TCYSjdrleCQ6tLuPPyv/veEBhQ1hd6iZgyU2sDdxqMig5zWpvihJ7alM0XRrY667oRs5FX7lswmRvHPhw8sc0fGPH5mz8LqbG+xCxPDfMA6OihvB1hyo15bvXFLost1pFv9ufpTceDhFWKxzqBBw6dal7Vvm003L8y14g4O0Ra4bQB7cghsxG7imujlX+Mep4NwY877V+Ojh9Le0OfapG+OIItK60xe2M7+JEVWDadStdrq/PkmJsYyZYnUUewVn3Ido7/n/1a0J5dKvvatf+i5OMujPDcambxRp6bQ/QioOJX/hZvoRTfKfVOORnk7rTCR/xABTnVPoE0xzyDgBT12zFmrTnJZO+qMeezKtmI4LT2PgT4EfczwF9zrCdVcWjvBA8+b94WYMScpPFgU7s/PKOvmUcVxjnIOuNu9RjlANhLdqDeG/kxX4=
8.解密密文,获取到签名串和明文信息
{"sign":"MEYCIQDLRe0D/GIhGQVnpq9g0+3UgcUo+sCuS/P7T8nj0TmbTwIhALmtYjbZFurzHp0rvXay6LESeCxRpQ/bgBesDoCmAROo","body":"{\"amount\":\"2\",\"merchantName\":\"\",\"merchantSeq\":\"cust20\",\"orderInfo\":\"支付宝\",\"payInfo\":\"d2VpeGluOi8vd3hwYXkvYml6cGF5dXJsP3ByPUpWd2pzVnk=\",\"remark\":\"\",\"tradeStatus\":\"A\"}
错误码说明
数据校验错误+具体描述
报文转换错误
数据格式转换错误
未找到对应收单接口实现类
Socket调用失败
日期字符串格式错误
加解密错误
HTTP发送失败
未找到配置的REQUEST/RESPONSE转换类
收单系统返回报文错误
TOKEN验证失败
查询商务平台失败
数据库出现错误
收单系统返回错误
CMBCPAY0000
CMBCPAY0001
请使用微信打开页面
CMBCPAY0002
商户订单密文为空
CMBCPAY0003
解密验签发生错误
CMBCPAY0004
订单信息为空
CMBCPAY0005
统一商户号为空
CMBCPAY0006
订单号MerchantSeq为空
CMBCPAY0007
默认支付类型DefaultTradeType为空
CMBCPAY0008
民生SDK可选支付类型SelectTradeType为空
CMBCPAY0009
交易金额amount为空
CMBCPAY0010
订单详情OrderInfo为空
CMBCPAY0011
异步通知地址NotifyUrl为空
CMBCPAY0012
微信回跳参数为空
CMBCPAY0013
请求的支付参数为空
CMBCPAY0014
调用收单系统返回空
CMBCPAY0015
请求的查询参数为空
CMBCPAY0016
后台读取订单信息失败
CMBCPAY0017
请求的订单类型不合法
错误信息约定
错误信息只列出错误中的关键信息,在实际错误中出现该错误关键信息,可能都属于该类问题。
错误信息与解决方案
加解密错误
can not find the receiver!!!
未找到对应的解密***
1. 确认更改加密***为民生银行公钥***(参看Demo提供的***使用说明); 2.
满足上一条前提下沟通接入支持并确认商户公钥***在民生环境已配置。
pad block corrupted
做签名/加密时
***密码错误
修改***对应的密码
解析消息数字信封失败
1. 自己解密2. 返回错误
1. 对比原始密文和报文密文的一致性 2. 确保密文中的加号等符号没有被转义为URL编码格式如%2B
3. 如未解决,进一步沟通
报文转换错误:…%22%2C%22…
HttpPost请求时
Post请求参数被如URLEncoder之类的工具转换
1. 采用Demo提供的httpPost方法请求;2. 确保post请求参数不要被URL编码。
文档demo下载提示
1.点击如下地址,进入“demo索引界面”;
2.点击“下载文档/Demo/***”按钮,即可下载所需内容。

参考资料

 

随机推荐