搜索结果

×

搜索结果将在这里显示。

统一支付下单

注意对接银通在线系统 地址改成:pay.yintongzaixian.com

统一支付下单

接口描述:商户业务系统通过统一下单接口发起支付收款订单,店来宝支付网关会根据商户配置的支付通道路由支付通道完成支付下单。支付网关根据不同的支付方式返回对应的支付参数,业务系统使用支付参数发起收款。
接口说明
适用对象:普通商户 特约商户
请求URL:https://pay.yintongzaixian.com/api/pay/unifiedOrder
请求方式:POST
请求类型:application/json 或 application/x-www-form-urlencoded
请求参数

字段名 变量名 必填 类型 示例值 描述
商户号 mchNo 是 String(64) M1621873433953 商户号
应用ID appId 是 String(64) 60cc09bce4b0f1c0b83761c9 应用ID
商户订单号 mchOrderNo 是 String(64) 20160427210604000490 商户生成的订单号
支付方式 wayCode 是 String(20) WX_LITE 支付方式
支付金额 amount 是 int 100 支付金额,单位分
货币代码 currency 是 String(3) cny 三位货币代码,人民币:cny
客户端IP clientIp 否 String(128) 210.73.10.148 客户端IPV4地址
商品标题 subject 是 String(128) 店来宝商品标题测试 商品标题
商品描述 body 是 String(256) 店来宝商品描述测试 商品描述
门店编号 storeId 否 int 10010 商户的门店ID
码牌ID qrcId 否 long 10010432445333 商户的码牌ID
支付表单ID payFormId 否 String(64) F1955906367608856578 当wayCode=QR_CASHIER时
传该值后付款界面会显示对应表单界面
终端设备信息 deviceInfo 否 String(256) {“deviceType”:“auto_pos”,“deviceNo” :“abcde12345”} 智能POS、收银插件下单必填,
json格式字符串,详见终端设备信息说明
异步通知地址 notifyUrl 否 String(256) https://pay.yintongzaixian.com/notify.htm 支付结果异步回调URL,只有传了该值才会发起回调
跳转通知地址 returnUrl 否 String(256) https://pay.yintongzaixian.com/return.htm 支付结果同步跳转通知URL
会自动将通知参数拼接到querystring
支付成功动作: returnPageAction=SUCCESS_PAGE
支付取消动作: returnPageAction=CANCEL_PAGE
失效时间 expiredTime 否 int 3600 订单失效时间,单位秒,默认2小时
订单在(创建时间+失效时间)后失效
渠道参数 channelExtra 否 String(512) {"authCode":"13920933111042"} 特定渠道发起的额外参数
json格式字符串.详见渠道参数说明
分账模式 divisionMode 否 int 0 分账模式:
0-该笔订单不允许分账,
1-支付成功按配置自动完成分账
(如没有配置分账接收方,则自动更新为0)
2-商户手动分账
买家备注 sellerRemark 否 String(128) 买家备注
卖家备注 buyerRemark 否 String(128) 备注 卖家备注
扩展参数 extParam 否 String(512) 134586944573118714 商户扩展参数,回调时会原样返回
请求时间 reqTime 是 long 1622016572190 请求接口时间,13位时间戳
接口版本 version 是 String(3) 1.0 接口版本号,固定:1.0
签名 sign 是 String(32) C380BEC2BFD727A4B6845133519F3AD6 签名值,详见签名算法
签名类型 signType 是 String(32) MD5 签名类型,目前只支持MD5或RSA2方式

终端设备信息说明

字段名 变量名 必填 类型 示例值 描述
设备类型 deviceType 是 String(20) auto_pos 智能POS:auto_pos,收银插件:cash_plugin
设备号 deviceNo 是 String(128) abcde12345 设备号必填。设备类型为收银插件时传激活码;其他传设备号
设备厂商 provider 否 String(20) abc 除智能POS外的其他设备类型,设备厂商必填

请求示例数据JSON

{
  "amount": 8,
  "extParam": "",
  "mchOrderNo": "mho1624005107281",
  "subject": "商品标题",
  "wayCode": "ALI_BAR",
  "sign": "84F606FA25A6EC4783BECC08D4FDC681",
  "reqTime": "1624005107",
  "body": "商品描述",
  "version": "1.0",
  "channelExtra": "{\"authCode\":\"280812820366966512\"}",
  "appId": "60cc09bce4b0f1c0b83761c9",
  "clientIp": "192.166.1.132",
  "notifyUrl": "https://www.yintongzaixianpay.cn",
  "signType": "MD5",
  "currency": "cny",
  "returnUrl": "",
  "mchNo": "M1623984572",
  "divisionMode": 1
}

返回参数

字段名 变量名 必填 类型 示例值 描述
返回状态 code 是 int 0 0-处理成功,其他-处理有误,详见错误码
返回信息 msg 否 String(128) 签名失败 具体错误原因,例如:签名失败、参数格式校验错误
签名信息 sign 否 String(32) CCD9083A6DAD9A2DA9F668C3D4517A84 对data内数据签名,如data为空则不返回
返回数据 data 否 String(512) {} 返回下单数据,json格式数据

data数据格式

字段名 变量名 必填 类型 示例值 描述
支付订单号 payOrderId 是 String(30) U12021022311124442600 返回支付系统订单号
商户订单号 mchOrderNo 是 String(30) 20160427210604000490 返回商户传入的订单号
订单状态 orderState 是 int 2 支付订单状态
0-订单生成
1-支付中
2-支付成功
3-支付失败
4-已撤销
5-已退款 6-订单关闭
支付数据类型 payDataType 是 String payUrl 支付参数类型
payUrl-跳转链接的方式
form-表单方式
wxapp-微信支付参数(微信公众号,小程序,app支付时)
aliapp-支付宝app支付
ysfapp-云闪付app支付参数
codeUrl-二维码地址
codeImgUrl-二维码图片地址
payargs-字符串参数
none-空支付参数
支付数据 payData 否 String http://www.yintongzaixian.cn/pay.html 发起支付用到的支付参数,如微信公众号和小程序发起支付使用的参数等
订单信息数据 payOrderInfo 否 String {} 订单信息, 当直接支付成功时会返回此数据
渠道错误码 errCode 否 String ACQ.PAYMENT_AUTH_CODE_INVALID 上游渠道返回的错误码
渠道错误描述 errMsg 否 String Business Failed 失败 上游渠道返回的错误描述

返回示例数据JSON

{
  "code": 0,
  "data": {
    "errCode": "ACQ.PAYMENT_AUTH_CODE_INVALID",
    "errMsg": "Business Failed【支付失败,获取顾客账户信息失败,请顾客刷新付款码后重新收款,如再次收款失败,请联系管理员处理。[SOUNDWAVE_PARSER_FAIL]】",
    "mchOrderNo": "mho1624005752661",
    "orderState": 3,
    "payOrderId": "P202106181642329900002"
  },
  "msg": "SUCCESS",
  "sign": "F4DA202C516D1F33A12F1E547C5004FD"
}

支付方式

WayCode 支付方式 说明
WEB_CASHIER WEB收银台 pc和h5端收银台。web收银台支付指引
QR_CASHIER 聚合扫码(用户扫商家) 生成聚合码,支持用户微信/支付宝/云闪付扫码。动态码支付指引
AUTO_BAR 聚合条码(商家扫用户) 商户使用扫码设备收款,支持扫微信/支付宝/云闪付付款码。付款码支付指引文档
TG_PAY 托管支付 app支付、h5支付、半屏小程序支付等场景。托管支付接入指引
ALI_BAR 支付宝条码
ALI_JSAPI 支付宝生活号
ALI_LITE 支付宝小程序
ALI_APP 支付宝APP
ALI_WAP 支付宝WAP
ALI_PC 支付宝PC网站
ALI_QR 支付宝二维码
ALI_OC 支付宝订单码
ALI_PREJSAPI 支付宝预授权生活号支付
ALI_PREBAR 支付宝预授权条码支付
ALI_PREQR 支付宝预授权二维码支付
WX_BAR 微信条码
WX_JSAPI 微信公众号
WX_LITE 微信小程序
WX_APP 微信APP
WX_H5 微信H5
WX_NATIVE 微信扫码
YSF_BAR 云闪付条码
YSF_JSAPI 云闪付jsapi
AUTO_POS 智能POS 智能POS支付指引
DCEP_BAR 数字人民币条码
DCEP_QR 数字人民币二维码
BANK_B2C 网银B2C
BANK_B2B 网银B2B 网银B2B支付指引
BANK_QUICK 快捷支付收银台 快捷支付接入指引
BANK_AGREE 快捷支付 协议支付接口形式。协议支付接入指引
BANK_TRANSFERCASHIER 银行卡转账收银台 银行卡转账接入指引
BANK_TRANSFER 银行卡转账 银行卡转账接入指引

channelExtra参数说明

当 wayCode=AUTO_BAR 或 wayCode=ALI_BAR 或 wayCode=WX_BAR 或 wayCode=YSF_BAR 时,channelExtra必须传auth_code,为用户的付款码值,channelExtra示例数据如:

{"authCode": "13920933111042"}

如需要获取对应微信appId的openId请传入(仅支持渠道):

{"authCode": "13920933111042","subAppId": "wx9d8ff0300000"}

当 wayCode=ALI_JSAPI或 wayCode=ALI_LITE 时,channelExtra必须传buyerUserId,为支付宝用户ID(当前不支持openid方式),channelExtra示例数据如:

{"buyerUserId": "2088702585070844"}

当 wayCode=WX_JSAPI 或 wayCode=WX_LITE 时,channelExtra必须传openid,为微信OpenId, channelExtra示例数据如:

{"openid": "o6BcIwvSiRpfS8e_UyfQNrYuk2LI"}

注意: 若当前为特约商户,并且商户使用的自己的公众号或者小程序获取到的openId时:
需要:

1.商户自己的公众号或者小程序的AppId需要在服务商里进行关联, 请联系运营平台进行配置;
2.channelExtra参数中添加 subAppId 参数,该参数为商户的公众号或小程序的AppId,示例:

{ "openid": "o6BcIwvSiRpfS8e_UyfQNrYuk2LI", "subAppId":"wx08b5a41f7a27abf1" }

当 wayCode=ALI_QR 或 wayCode=WX_NATIVE 时,channelExtra可以传payDataType设置返回支付数据支付类型。此时payDataType可以为:codeUrl-二维码地址,codeImgUrl-二维码图片地址,不传payDataType默认返回codeUrl类型, channelExtra示例数据如:

{"payDataType": "codeImgUrl"}

当 wayCode=QR_CASHIER 时,channelExtra可以传payDataType和entryPageType。
entryPageType指定聚合码扫码时进入H5或小程序页面,默认为H5页面。h5-h5页面,lite-小程序页面。
payDataType设置返回支付数据支付类型,此时payDataType可以为:codeUrl-二维码地址,codeImgUrl-二维码图片地址,不传payDataType默认返回codeUrl类型, channelExtra示例数据如:

{"entryPageType": "lite", "payDataType": "codeImgUrl"}

当 wayCode=ALI_WAP 时,channelExtra可以传payDataType设置返回支付数据支付类型。此时payDataType可以为:form-返回自动跳转的支付表单,codeImgUrl-返回一个二维码图片URL,payUrl-返回支付链接,不传payDataType默认返回payUrl类型, channelExtra示例数据如:

{"payDataType": "form"}

当 wayCode=ALI_PC 时,channelExtra可以传payDataType设置返回支付数据支付类型。此时payDataType可以为:form-返回自动跳转的支付表单,payUrl-返回支付链接,不传payDataType默认返回payUrl类型, channelExtra示例数据如:

{"payDataType": "form"}

当 wayCode=BANK_QUICK 时,channelExtra可以传userType和userNo字段,通过设置用户标识,可以确保用户快捷支付时显示之前绑卡信息,快速完成支付。channelExtra示例数据如:

{
    "userType": "PHONE", // userType: IMEI:IMEI、MAC:MAC地址、USER_ID:用户ID、EMAIL:用户Email、PHONE:用户手机号、ID_CARD:用户身份证号
    "userNo": "18611727422", // userNo:  用户标识,用户在商户的唯一标识。(首次支付成功再支付时传相同的用户标识可实现快捷绑卡支付)
}

当 wayCode=TG_PAY 时,channelExtra可以传userPayType和invokeType字段,指定支付方式和调起方式。托管支付的详细接入,请查看托管支付接入指引。

托管支付

以下为userPayType和invokeType参数说明:

字段名 变量名 必填 类型 示例 描述
支付方式 userPayType 是 String(30) wx 支付方式:wx - 微信, zfb - 支付宝
调起方式 invokeType 是 String(30) app2lite app2lite:sdk调用方式,返回调起小程序所需参数。支持 wx、zfb;
h52lite:h5跳小程序支付,返回跳转url地址。支持 wx、zfb;
h52jsapi:h5跳支付宝内浏览器打开网页收银台支付,返回跳转url地址。支持 zfb;
h52qr:h5跳支付宝内打开当面付收银台支付,返回跳转url地址。支持 zfb;
lite2lite:小程序跳转小程序支付,返回跳转小程序所需参数。支持 wx、zfb

channelExtra示例数据如:

{"userPayType":"wx", "invokeType":"app2lite"}

返回跳转小程序所需参数示例数据如:

{
    "code": 0,
    "data": {
        "mchOrderNo": "mho1766095729849",
        "orderState": 0,
        "payData": "{\"path\":\"pages/hub/lite\",\"qrUrl\":\"https://pay.jeepay.vip/cashier/pages/hub/h5/?jeepayToken=8d6f6088eaf746d2157aa14c142d96ba0cea998014adefc56f841d31998e5a5d59bb32e81e898e9f309d072824220eb7\",\"appid\":\"wxfaff9394a9a745f0\",\"ghid\":\"gh_5ea8094c2d68\",\"env\":\"release\"}",
        "payDataType": "payurl",
        "payOrderId": "P2001776698797350913"
    },
    "msg": "SUCCESS",
    "sign": "9FB1BC4EFA0CED891CA40175864BEF74"
}

返回跳转url地址参数示例数据如:

{
    "code": 0,
    "data": {
        "mchOrderNo": "mho1766096933730",
        "orderState": 0,
        "payData": "alipays://platformapi/startapp?appId=2021002172669744&page=pages/hub/lite&query=qrCode=https://pay.yintongzaixian.com/cashier/pages/hub/h5/?jeepayToken=8d6f6088eaf746d2157aa14c142d96baea03c39661283761d19ffeded32087c5d7049370b4849b44f5259ff61bbbe7d2",
        "payDataType": "payurl",
        "payOrderId": "P2001781748129406978"
    },
    "msg": "SUCCESS",
    "sign": "614455EA32D95E901AE33A4DD98B5B09"
}

SDK调用示例(Java):

JeepayClient jeepayClient = JeepayClient.getInstance(Jeepay.appId, Jeepay.apiKey, Jeepay.getApiBase());
PayOrderCreateRequest request = new PayOrderCreateRequest();
PayOrderCreateReqModel model = new PayOrderCreateReqModel();
model.setMchNo(Jeepay.mchNo);                           // 商户号
model.setAppId(jeepayClient.getAppId());                 // 应用ID
model.setMchOrderNo("mho" + new Date().getTime());       // 商户订单号
model.setWayCode("WX_BAR");                             // 支付方式
model.setAmount(1L);                                    // 金额,单位分
model.setCurrency("CNY");                               // 币种,目前只支持cny
model.setClientIp("127.0.0.1");                         // 发起支付请求客户端的IP地址
model.setSubject("商品标题");                            // 商品标题
model.setBody("商品描述");                               // 商品描述
model.setNotifyUrl("https://your-domain.com/notify");    // 异步通知地址
model.setReturnUrl("https://your-domain.com/return");    // 前端跳转地址
model.setExtParam("");                                  // 商户扩展参数,回调时原样返回
model.setChannelExtra("");                              // 渠道扩展参数

request.setBizModel(model);
try {
    PayOrderCreateResponse response = jeepayClient.execute(request);
    _log.info("验签结果:{}", response.checkSign(Jeepay.apiKey));
    if (response.isSuccess(Jeepay.apiKey)) {
        _log.info("payOrderId:{}", response.get().getPayOrderId());
        _log.info("mchOrderNo:{}", response.get().getMchOrderNo());
        _log.info("payData:{}", response.get().getPayData());
    } else {
        _log.info("请求失败:mchNo={}, msg={}", Jeepay.mchNo, response.getMsg());
    }
} catch (JeepayException e) {
    _log.error(e.getMessage());
}