客户需要在线支付的功能,敲定使用建行支付
文档《中国建设银行微信支付统一下单》
拿到的交易流程说明
1. 商户--》银行接口
域名 |
名称 |
类型 |
必输字段(字段内容) |
备注 |
||
MERCHANTID |
商户代码 |
CHAR(15) |
Y |
由建行统一分配 |
||
POSID |
商户柜台代码 |
CHAR(9) |
Y |
由建行统一分配, |
||
BRANCHID |
分行代码 |
CHAR(9) |
Y |
由建行统一指定 |
||
ORDERID |
定单号 |
CHAR(30) |
Y |
由商户提供,最长30位 |
||
PAYMENT |
付款金额 |
NUMBER(16,2) |
Y |
由商户提供,按实际金额给出 支付完成后,请商户与收到的商户通知中的付款金额比对,确认两者金额一致; |
||
CURCODE |
币种 |
CHAR(2) |
Y |
缺省为01-人民币 (只支持人民币支付) |
||
REMARK1 |
备注1 |
CHAR(30) |
N |
一般作为商户自定义备注信息使用,可在对账单中显示。 集团主商户代理发起子商户交易时,需将集团主商户信息填入该字段,格式如下: JTSH:主商户号+主柜台 例如: JTSH:105000000000000123456789 其中:105000000000000为主商户号 123456789为主柜台 |
||
REMARK2 |
备注2 |
CHAR(30) |
N |
一般作为商户自定义备注信息使用,可在对账单中显示。 |
||
TXCODE |
交易码 |
CHAR(6) |
Y |
由建行统一分配为530590 |
||
MAC |
MAC校验域 |
CHAR(32) |
Y |
采用标准MD5算法,由商户实现 |
||
TYPE |
接口类型 |
CHAR(1) |
Y |
分行业务人员在P2员工渠道后台设置防钓鱼的开关。 1- 防钓鱼接口
|
||
PUB |
公钥后30位 |
CHAR(30) |
Y |
商户从建行商户服务平台下载,截取后30位。 仅作为源串参加MD5摘要,不作为参数传递 |
||
GATEWAY |
网关类型 |
VARCHAR(100) |
Y |
默认送0 |
||
CLIENTIP |
客户端IP |
CHAR(40) |
N |
客户在商户系统中的IP,即客户登陆(访问)商户系统时使用的ip) |
||
REGINFO |
客户注册信息
|
CHAR(256) |
N |
客户在商户系统中注册的信息,中文需使用escape编码 |
||
PROINFO |
商品信息 |
CHAR(256) |
N |
客户购买的商品 中文需使用escape编码 |
||
REFERER |
商户URL |
CHAR(100) |
N |
商户送空值即可; 具体请看REFERER设置说明 |
||
TIMEOUT |
订单超时时间 |
CHAR(14) |
N |
格式: YYYYMMDDHHMMSS如:20120214143005 银行系统时间> TIMEOUT时拒绝交易,若送空值则不判断超时。 当该字段有值时参与MAC校验,否则不参与MAC校验。
|
||
TRADE_TYPE |
交易类型 |
CHAR(16) |
Y |
JSAPI--公众号支付、MINIPRO--小程序 |
||
SUB_APPID |
小程序/公众号的APPID |
CHAR(32) |
Y |
当前调起支付的小程序/公众号APPID |
||
SUB_OPENID |
用户子标识 |
CHAR(128) |
Y |
用户在小程序/公众号appid下的唯一标识,小程序通过wx.login获取,接口文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html?t=20161122 |
||
WX_CHANNELID |
渠道商号 |
CHAR(20) |
N |
对于商户自定义的渠道商号 当该字段有值时参与MAC校验,否则不参与MAC校验。 |
||
RETURN_FIELD |
返回信息位图 |
CHAR(20) |
N |
共20位,商户通知是否返回某个字段的位图,0或空-不返回,1-返回。 第1位:是否返回OPENID和SUB_OPENID 第2位:保留位,默认送0 第3位:保留位,默认送0 第4位:是否返回支付详细信息字段 示例:10000000000000000000 该字段不参与MAC校验 |
||
USERPARAM |
实名支付 |
VARCHAR(2000) |
N |
实名支付功能,包含类型、 证件号、姓名三个子域(如果本字段出现,那么本字 段包含的三个子域均需出现。详见下文说明5)USERPARAM字段说明)。 当该字段有值时参与MAC校验,否则不参与MAC校验。 暂未上线,请忽略 |
||
二级商户信息,若上送二级商户信息则八个二级商户信息字段必须都送值,当该字段有值时参与MAC校验,否则不参与MAC校验。 |
||||||
SMERID |
二级商户代码 |
CHAR(15) |
N |
二级商户代码 |
||
SMERNAME |
二级商户名称 |
中文(33)英文CHAR(100) |
N |
二级商户名称,中文需使用escape编码 |
||
SMERTYPEID |
二级商户类别代码 |
CHAR(15) |
N |
二级商户类别代码 |
||
SMERTYPE |
二级商户类别名称 |
中文(27)英文CHAR(81) |
N |
二级商户类别名称,汉字最长27个,中文需使用escape编码 |
||
TRADECODE |
交易类型代码 |
CHAR(15) |
N |
交易类型代码 |
||
TRADENAME |
交易类型名称 |
中文(10)英文CHAR(30) |
N |
如消费、投资理财、信用卡还款等,中文需使用escape编码 |
||
SMEPROTYPE |
商品类别代码 |
CHAR(24) |
N |
商品类别代码 |
||
PRONAME |
商品类别名称 |
中文(15)英文CHAR(50) |
N |
商品类别名称,中文需使用escape编码 |
注:字符串中变量名必须是大写字母。
1) 参与摘要运算的字符串及其顺序如下:
请注意:标黄的字段请根据需要上送,有值时才参与MAC,否则无需参与MAC。
MERCHANTID=123456789&POSID=000000000&BRANCHID=110000000&ORDERID=19991101234&PAYMENT=0.01&CURCODE=01&TXCODE=530590&REMARK1=&REMARK2=&TYPE=1&PUB=30819d300d06092a864886f70d0108&GATEWAY=0&CLIENTIP=172.0.0.1®INFO=%u5C0F%u98DE%u4FA0&PROINFO=%u5145%u503C%u5361&REFERER=&SMERID=111&SMERNAME=%u5DE5%u827A%u7F8E%u672F%u5546%u5E97&SMERTYPEID=112&SMERTYPE=%u5BBE%u9986%u9910%u5A31%u7C7B&TRADECODE=001&TRADENAME=%u6D88%u8D39&SMEPROTYPE=1&PRONAME=%u5DE5%u827A%u54C1 &TIMEOUT=20161028101226&TRADE_TYPE=MINIPRO&SUB_APPID=wx8888888888888888&SUB_OPENID=oUpF8uMuAJO_M2pxb1Q9zNjWeS6o&WX_CHANNELID=wx902937628837&USERPARAM=1U2xb%2FdMepRIs0KcM53xns%2Chdg2xBh3qwJ%2F%2F%2FHi%2FjMfPcbUYjQdxJKe%2CnoHnBgXppyQqPVPdDf8p%0D%0AEwxoLdkWjvdj2QUXJ5Hb
4) 完整的URL:
第三方商户提交给网银的网关地址:注意用post方式提交参数。
https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain?CCB_IBSVersion=V6
请注意:标黄的字段请根据需要上送
https://ibsbjstar.ccb.com.cn/CCBIS/ccbMain?CCB_IBSVersion=V6&MERCHANTID=105320148140002&POSID=100001135&BRANCHID=320000000&ORDERID=88487&PAYMENT=0.01&CURCODE=01&TXCODE=530590&REMARK1=&REMARK2=&TYPE=1&GATEWAY=0&CLIENTIP=128.128.80.125®INFO=xiaofeixia&PROINFO=digital&REFERER=&SMERID=111&SMERNAME=%u5DE5%u827A%u7F8E%u672F%u5546%u5E97&SMERTYPEID=112&SMERTYPE=%u5BBE%u9986%u9910%u5A31%u7C7B&TRADECODE=001&TRADENAME=%u6D88%u8D39&SMEPROTYPE=1&PRONAME=%u5DE5%u827A%u54C1&TIMEOUT=20161028101226&TRADE_TYPE=MINIPRO&SUB_APPID=wx8888888888888888&SUB_OPENID=oUpF8uMuAJO_M2pxb1Q9zNjWeS6o&WX_CHANNELID=wx902937628837&USERPARAM=1U2xb%2FdMepRIs0KcM53xns%2Chdg2xBh3qwJ%2F%2F%2FHi%2FjMfPcbUYjQdxJKe%2CnoHnBgXppyQqPVPdDf8p%0D%0AEwxoLdkWjvdj2QUXJ5Hb&RETURN_FIELD=10000000000000000000&MAC=b2a1adfc9f9a44b57731440e31710740
2. 银行--》商户接口
1) 商户服务端向建行提交统一下单请求后(完整的请求串示例请见1. 商户->银行接口参数),建行返回商户json格式的字符串,商户需解析出SUCCESS和PAYURL的值,如果SUCCESS为true,则代表交易成功,执行2)。
{"SUCCESS":"true","PAYURL":"https://ibsbjstar.ccb.com.cn/CCBIS/B2CMainPlat_02?CCB_IBSVersion=V6&MERCHANTID=105320148140002&POSID=100001135&BRANCHID=320000000&ORDERID=88487&PAYMENT=0.01&CURCODE=01&TXCODE=530590&REMARK1=&REMARK2=&TYPE=1&GATEWAY=0&CLIENTIP=128.128.80.125®INFO=xiaofeixia&PROINFO=digital&REFERER=&SMERID=111&SMERNAME=%u5DE5%u827A%u7F8E%u672F%u5546%u5E97&SMERTYPEID=112&SMERTYPE=%u5BBE%u9986%u9910%u5A31%u7C7B&TRADECODE=001&TRADENAME=%u6D88%u8D39&SMEPROTYPE=1&PRONAME=%u5DE5%u827A%u54C1&TIMEOUT=20161028101226&TRADE_TYPE=MINIPRO&SUB_APPID=wx8888888888888888&SUB_OPENID=oUpF8uMuAJO_M2pxb1Q9zNjWeS6o&MAC=b2a1adfc9f9a44b57731440e31710740&QRCODE=1&CHANNEL=1" }
2)商户服务端获取1)中返回的PAYURL的值,PAYURL对应一个HTTP请求,商户服务端直接提交该请求,建行返回商户json格式的参数串,该参数为小程序/公众号调起微信的支付参数,具体参数说明如下:
SUCCESS |
返回状态码 |
此字段是通信标识,表示通信成功 |
ERRCODE |
错误码 |
000000表示交易成功,非000000表示交易失败,错误信息可以查看ERRMSG字段 |
ERRMSG |
错误信息 |
错误信息描述 |
TXCODE |
交易码 |
530590 |
appId |
微信分配的APPID |
参考微信对应的调起支付API |
timeStamp |
时间戳 |
参考微信对应的调起支付API |
nonceStr |
随机串 |
参考微信对应的调起支付API |
package |
数据包 |
参考微信对应的调起支付API |
signType |
签名方式 |
参考微信对应的调起支付API |
paySign |
签名数据 |
参考微信对应的调起支付API |
partnerid |
子商户的商户号 |
参考微信对应的调起支付API |
prepayid |
预支付交易会话ID |
参考微信对应的调起支付API |
mweb_url |
微信H5支付中间页面URL |
参考微信对应的调起支付API |
小程序:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_sl_api.php?chapter=7_7&index=5
公众号:https://pay.weixin.qq.com/wiki/doc/api/jsapi_sl.php?chapter=7_7&index=6
商户使用小程序/公众号支付必须经过以下设置流程:
1、按正常流程开通建行商户,选择费率通道完成进件,生成微信子商户号。
2、登录微信后台,在“服务商功能”-“特约商户管理”中,根据微信子商户号(商户识别码)进行查询,查询后点击开发配置中的“配置”按钮。
3、在配置页面下拉,找到特约商户APPID配置栏位,并点击添加。
4、在弹出窗口输入商户小程序/公众号APPID完成配置。由商户提供。同时该商户在微信的子商户名称必须与商户小程序/公众号认证主体一致。
原文:https://www.cnblogs.com/lnvc/p/12606333.html