2.14JS收银台入口

  说明

本接口用于直接调用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参数会无法识别

为避免链接被盗用,金额字段被随意更改,导致商家损失问题,现增加签名验证模式推荐):

使用签名模式示例请求地址(程序根据判断msg_sign参数是否为空,来决定是否需要验签验证,若msg_sign为空或者不传,则不进行验签处理:https://pay.dc78.cn/000615.html?p=gpcs&msid=6786&bzid=20200617001&amt=0.01&redirect_url=http%3A%2F%2Ft1.dc78.cn%2FBiz%2Fnr_tui1231%3Fqw%3D11%26rt%3D22¬ify_url=http%3A%2F%2Ft1.dc78.cn%2FBiz%2Fnr_tui1231%3Fqw%3D11%26rt%3D22&msg_sign=7c5d96041e4288fc234af179c799b1172f83b5c7&gpid=gp118cd1998e0a0049&time_stamp=20201126135811&nonce=xXp6vhlY2TMQ4ddt&signtype=sha1


  签名基本要求

接口协议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_urlnotify_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=会员卡,有可能会出现多个付款项目