2.14JS收银台入口
说明
本接口用于直接调用JS支付功能。
请求地址
http://wx.dc78.cn/Payw/go.html
新版地址:https://pay.dc78.cn/000615.html(推荐)
请求方式
GET直接跳转网页
请求参数
参数 | 参数名称 | 必填 | 描述 | 范例 |
msid | 门店编号 | |||
bzid | 业务单号 | |||
amt | 结账金额 | |||
desc | 商品名称 | (可选)商品名称 | ||
redirect_url | 支付成功后跳转页面 | (可选)支付成功后跳转页面 | ||
notify_url | 支付成功后通知页面 | (可选)支付成功后通知页面 | ||
openid | 传入微信用户openid,建议传入 | (可选)传入微信用户openid,建议传入 |
调用过程
例如:http://wx.dc78.cn/Payw/go?msid=226&bzid=20170513118&amt=118
新版地址:https://pay.dc78.cn/000615.html?p=gpcs&msid=6786&bzid=20200617001&amt=0.01
如果要使用redirect_url,notify_url,注意用encodeURIComponent进行编码,否则notify_url中有多个URL参数会无法识别
为避免链接被盗用,金额字段被随意更改,导致商家损失问题,现增加签名验证模式(推荐):
签名基本要求
接口协议get部分签名公共参数如下:
gpid:应用id
timestamp:日期格式yyyyMMddHHmmss,如:20190820115428;注意:时间会进行校验,请保证时间误差不超过60分钟
nonce:随机数
signtype:签名方式,目前取值:sha1
msg_sign:签名
请求参数中get参数部分需要进行签名(msg_sign除外)
签名生成方式
签名生成的通用步骤如下:
第一步:将GET参数(gpid、timestamp、nonce、signtype、等其他业务参数)按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。注意:空值不参与签名
第二步:在stringA最后通过(半角逗号)拼接上开发商apikey得到stringSignTemp字符串
第三步:对stringSignTemp进行sha1加密运算,再将得到的字符串所有字符转换为大写,得到sign值signValue
◆开发商apikey:果盘代理商后台-->开发管理-->APP应用管理-->对应应用ID的应用秘钥appsecret
举例:
假设接口请求URI地址:https://pay.dc78.cn/000615.html
传送的GET参数如下:
gpid:gp123456789
timestamp:20200320114702
nonce:45645
signtype:sha1
bzid:200121
msid:6786
amt:88.88
第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
stringA="gpid=gp123456789&timetamp=20200320114702&nonce=45645&signtype=sha1&p=gpcs&bzid=200121&msid=6786&amt=88.88";
第二步:拼接开发商appsecret密钥:
stringSignTemp=stringA+",192006250b4c09247ec02edce69f6a2d"//注:appsecret为开发商后台分配是appsecret
msg_sign=sha1(stringSignTemp)="9A0A8659F005D6984697E2CA0A9CF3B7"//注:sha1签名方式
第三步:拼接实际请求连接:
https://pay.dc78.cn/000615.html?gpid=gp123456789×tamp=20200320114702&nonce=45645&signtype=sha1&p=gpcs&bzid=200121&msid=6786&amt=88.88&msg_sign=9A0A8659F005D6984697E2CA0A9CF3B7
注意:
1.appsecret仅仅在生成签名时需要用,在提交时不能加上!!
2.空值不参与签名!!
3.redirect_url和notify_url两个参数参与签名前先分别进行urlEncode处理(encodeURIComponent进行编码)
通知
参数中设置redirect_url后,支付成功将会跳转redirect_url地址
参数中设置notify_url后,支付成功将会POST一个JSON到此地址,JSON格式如下:
{ "payid":9817557,
"paylist":{
"pay_wx":118,
"pay_mc":0
}
}
notify_url收到支付回调后,需要返回一个JSON
{"state":1,
"info":"ok"}
参数 | 参数名称 | 必填 | 描述 | 范例 |
payid | 平台支付流水号 | |||
paylist | 本次支付付款项目 | pay_mc=微信支付,pay_ali=支付宝,pay_mc=会员卡,有可能会出现多个付款项目 |