下单收银


下单收银

提示

接口说明 统一下单支付, 包含请求扫码支付的二维码串(支持支付宝、QQ 钱包、云闪付) 公众号 JS 支付(支付宝,微信,QQ 钱包,云闪付)微信小程序支付 以及收银台, 网关等

请求地址

环境HTTPS 请求地址测试环境参数
测试环境http://test.sdtlpay.com/openapi/v1open in new window测试环境参数
正式环境http://www.sdtlpay.com/openapi/v1/open in new window参考准备接入

公共请求参数

字段名中文释义是否必填数据类型备注
version调用的接口版本string固定为:1.0 1.0
accessId开放平台分配给开发者的应用访问 IDstring2014072300007148
method接口名称stringallinpay.shandong.payment
format请求的参数格式string仅支持 JSON
charSet请求使用的编码格式string如 utf-8, gbk
signType商户生成签名字符串所使用的签名算法类型string目前支持 RSA2 和 SM2,推荐使用 RSA2
signData商户请求参数的签名string详见签名 详见示例
timestamp发送请求的时间string格式"yyyy-MM-dd HH:mm:ss" 2014-07-24 03:07:50
authToken详见应用授权概述string
bizContent业务请求参数集合string最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档

业务请求参数集合

bizContent 业务参数

参数字段中文释义是否必填类型备注
merCd商户号string商户号
storeCd门店号string门店编号
productCd产品 IDstringP004500
openIdOpenIdstring1、微信小程序、微信公众号js 支付等,值为对应的openid必填 2、appIdTp为01,02时必填,01时为对应的支付宝userid,02时为app对应的注册手机号 3、鲁通码接入时,为 holderid 与 token,两个值以英文逗号分隔
appIdTp场景类型string00 微信 01 支付宝 02 app等其他三方接入 03 银联(云闪付) 04 PC端 05 web浏览器 06 SDK
orderNo订单号string
payType交易类型string见备注:交易类型
sumAmt总额交易string单位:元,精确到小数点后两位。不使用积分和优惠卷的时候 同订单金额一致
offestAmt抵扣金额string单位:元,精确到小数点后两位。不使用积分和优惠卷的时候 为 0
amount订单金额string单位:元,精确到小数点后两位
splitAcctContent追缴分账JSON分账明细总金额必须与订单金额amount一致,参见 splitAcctContent 参数
pointContent积分参数JSON参见 pointContent 参数
couponContent优惠券参数JSON参见 CouponContent 参数
qrCode扫码支付授权码string设备读取用户微信或支付宝中的条码或者二维码信息(付款码)。 交易类型为:TX4558时此项必填写
isDirectPay是否直接支付string1直接支付 0或空时不变
termId二维码码牌idstring表示二维码码牌id或者pos终端号,适用于当面付码牌支付或商家主扫支付
notifyUrl交易异步通知string接收交易的异步通知
pageNotifyUrl前端页面返回string前端页面返回地址
goodName交易订单商品名称string交易订单商品名称
goodDesc交易订单商户描述string交易订单商户描述
validTime有效期string订单有效时间,以分为单位,默认为5
httpAgentsHTTP请求头之UserAgentstringHTTP请求头的UserAgent
randomStr商户自定义串string
remark交易备注string

公共响应参数

字段名中文释义是否必填数据类型备注
resCode网关返回码stringSSSSSS 成功 FFFFFF 失败
resMsg网关返回码描述string网关返回码描述
bizCode业务返回码string参见具体的 API 接口文档
bizMsg业务返回码描述,string参见具体的 API 接口文档
signType签名算法类型string目前支持 RSA2 和 SM2,推荐使用 RSA2
signData商户请求参数的签名string详见签名 详见示例
resContent业务返回参数集合string最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档

业务返回参数集合

提示

resCode=SSSSSS并且bizCode=100000时, resContent 内参数

参数字段类型说明
merCdstring商户号
merOrderNostring商户订单号
txnOrderNostring平台流水号
txnAmtstring交易金额 单位:元,精确到小数点后两位
payCodestring
txnDatestring下单日期
txnTimestring下单时间

payCode 参数

说明

条件: 请求的交易类型 payType 为扫码支付、H5收银台(支持快捷、H5)类
状态码:SSSSSS

{
  "payUrl": "https://codeimgurl"
}

条件:请求的交易类型为 payType 为 微信-支付宝-银联原生类:js,小程序,app 等
状态码:SSSSSS

{
  "timeStamp": "1395712654", //动态获取初始化请求中返回的pay_info参数中timeStamp值
  "nonceStr": "e61463f8efa94090b1f366cccfbbb444", //动态获取初始化请求中返回的pay_info参数中nonceStr值
  "package": "prepay_id=u802345jgfjsdfgsdg888", //动态获取初始化请求中返回的pay_info参数中package值
  "signType": "XXX", //动态获取初始化请求中返回的pay_info参数中signType值
  "paySign": "70EA570631E4BB79628FBCA90534C63FF7FADD89" //动态获取初始化请求中返回的pay_info参数中paySign值
}

调用示例

  • 扫码支付

将获取的 payUrl 支付连接生成二维码即可扫码支付

  • 原生支付(举例微信小程序)
wx.requestPayment({
  timeStamp: "", //动态获取初始化请求中返回的payInfo参数中timeStamp值
  nonceStr: "", //动态获取初始化请求中返回的payInfo参数中nonceStr值
  package: "", //动态获取初始化请求中返回的payInfo参数中package值
  signType: "", //动态获取初始化请求中返回的payInfo参数中signType值
  paySign: "", //动态获取初始化请求中返回的payInfo参数中paySign值
  success: function (res) {},
  fail: function (res) {},
  complete: function (res) {},
});
  • 原生支付(举例微信公众号)
function onBridgeReady() {
  WeixinJSBridge.invoke(
    "getBrandWCPayRequest",
    {
      appId: "wx2421b1c4370ec43b", //动态获取初始化请求中返回的payInfo参数中appId值
      timeStamp: "1395712654", //动态获取初始化请求中返回的payInfo参数中timeStamp值
      nonceStr: "e61463f8efa94090b1f366cccfbbb444", //动态获取初始化请求中返回的payInfo参数中nonceStr值
      package: "prepay_id=u802345jgfjsdfgsdg888", //动态获取初始化请求中返回的payInfo参数中package值
      signType: "XXX", //动态获取初始化请求中返回的payInfo参数中signType值
      paySign: "70EA570631E4BB79628FBCA90534C63FF7FADD89", //动态获取初始化请求中返回的payInfo参数中paySign
    },
    function (res) {
      if (res.err_msg == "get_brand_wcpay_request:ok") {
        // 使用以上方式判断前端返回,微信团队郑重提示
        //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
      }
    }
  );
}
if (typeof WeixinJSBridge == "undefined") {
  if (document.addEventListener) {
    document.addEventListener("WeixinJSBridgeReady", onBridgeReady, false);
  } else if (document.attachEvent) {
    document.attachEvent("WeixinJSBridgeReady", onBridgeReady);
    document.attachEvent("onWeixinJSBridgeReady", onBridgeReady);
  }
} else {
  onBridgeReady();
}
上次编辑于: