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