合单下单-JSAPI

更新时间:2024.12.02

通过本接口提交微信支付JSAPI支付订单。

注意:

接口说明

支持商户:【普通商户】

请求方式:【POST】/v3/combine-transactions/jsapi

请求域名:【主域名】https://api.mch.weixin.qq.com 使用该域名将访问就近的接入点

     【备域名】https://api2.mch.weixin.qq.com 使用该域名将访问异地的接入点 ,指引点击查看

请求参数
折叠全部参数

Header  HTTP头参数

 Authorization  必填 string

请参考签名认证生成认证信息


 Accept  必填 string

请设置为application/json


 Content-Type  必填 string

请设置为application/json


body  包体参数

 combine_appid  必填   string(32)

【合单商户Appid】合单发起方的Appid


 combine_out_trade_no  必填   string(32)

【合单商户订单号】合单支付总订单号,最短2个字符,最长32个字符,只能是数字、大小写字母,以及_-|* ,且在同一个商户号下唯一


 combine_mchid  必填   string(32)

【合单商户号】合单发起方商户号


 scene_info  选填   object

【场景信息】场景信息

属性

 device_id  选填   string(16)

【商户端设备号】终端设备号(门店号或收银设备ID)


 payer_client_ip  必填   string(45)

【用户终端IP】用户端实际IP,支持IPv4和IPv6两种格式的IP地址。
IP获取请参考获取用户IP指引


 sub_orders  必填   array

【商品单信息】商品单列表,最多支持商品单条数:50。

属性

 mchid  必填   string(32)

【商品单商户号】商品单发起方商户号,与发起方Appid有绑定关系


 attach  必填   string(128)

【附加数据】附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用。


 amount  必填   object

【订单金额】订单金额

属性

 total_amount  必填   integer

【标价金额】商品单金额,单位为分


 currency  必填   string(8)

【标价币种】符合ISO 4217标准的三位字母代码,人民币:CNY


 out_trade_no  必填   string(32)

【商品单商户订单号】 商户系统内部订单号,最短2个字符,最长32个字符,只能是数字、大小写字母_-|* ,且在同一个商户号下唯一。


 profit_sharing  选填   sboolean

【是否指定分账】 存在settle_info时,以settle_info为准
true:是
false:否


 description  必填   string(127)

【商品描述】商品简单描述。需传入应用市场上的APP名字-实际商品名称,例如 天天爱消除-游戏充值


 settle_info  选填   object

【结算信息】结算信息

属性

 profit_sharing  选填   boolean

【是否指定分账】是否指定分账 (枚举值 true:是 false:否)


 subsidy_amount  选填   integer

【补差金额】SettleInfo.profit_sharing为true时,该金额才生效。

注意:单笔订单最高补差金额为5000元。


 goods_tag  选填   string(32)

【订单优惠标记】订单优惠标记,使用代金券或立减优惠功能时需要的参数,说明详见代金券或立减优惠


 combine_payer_info  选填   object

【支付者】支付者信息,可以指定用户的实名信息,必须指定用户的openid或sub_openid。

属性

 openid  选填   string(128)

【用户标识】使用合单Appid获取的对应用户Openid。是用户在商户Appid下的唯一标识。


 identity  选填   object

【实名支付】 实名支付信息

属性

 type  必填   string(32)

【证件类型】 IDCARD:身份证,目前只支持身份证。


 number  必填   string(1024)

【加密后的证件号】 加密后的证件号,该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号平台证书加密敏感信息指引


 name  必填   string(1024)

【加密后的姓名】 加密后的姓名,该字段需要使用微信支付公钥加密(推荐),请参考获取微信支付公钥ID说明以及微信支付公钥加密敏感信息指引,也可以使用微信支付平台证书公钥加密,参考获取平台证书序列号平台证书加密敏感信息指引


 time_start  选填   string

【支付起始时间】订单生效时间,按照rfc3339格式,格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC8小时,即北京时间)如 2018-06-08T10:34:56+08:00 代表,北京时间2018年06月08日10时34分56秒。


 time_expire  选填   string

【支付结束时间】

1、定义:支付结束时间是指用户能够完成该笔订单支付的最后时限,并非订单关闭的时间。超过此时间后,用户将无法对该笔订单进行支付。如商户需在超时后关闭订单,请调用合单关闭订单API接口。

2、格式要求:支付结束时间需遵循rfc3339标准格式:yyyy-MM-DDTHH:mm:ss+TIMEZONEyyyy-MM-DD 表示年月日;T 字符用于分隔日期和时间部分;HH:mm:ss 表示具体的时分秒;TIMEZONE 表示时区(例如,+08:00 对应东八区时间,即北京时间)。

示例:2015-05-20T13:29:35+08:00 表示北京时间2015年5月20日13点29分35秒。

3、若未指定支付结束时间,系统默认以下单时间为起始点计算时效;超过 7 天未支付的订单,无法再支付。

4、注意事项:

  • 若当前实际时间已超过订单设置的支付结束时间(time_expire),建议先使用关单接口关闭订单,再使用新的商户订单号重新下单,生成全新订单供用户支付。

  • 支付结束时间不能早于下单时间后1分钟,若设置的支付结束时间早于该时间,系统将自动调整为下单时间后1分钟作为支付结束时间。

  • 传递的支付结束时间需在下单时间的7天以内,如超过7天,微信支付会自动将该时间调整为下单时间后的第7天。


 notify_url  必填   string(255)

【通知地址】接收微信支付异步通知回调地址,通知url必须为直接可访问的url,不能携带参数。必须使用https协议。

请求示例

POST

1{
2  "combine_appid": "wxd678efh567hg6787",
3  "combine_mchid": "1230000109",
4  "combine_out_trade_no": "1217752501201407033233368018",
5  "combine_payer_info": {
6    "identity": {
7      "name": "6B46824C852FA29AAC3DCE6BFD852E27",
8      "number": "6B46824C852FA29AAC3DCE6BFD852E27",
9      "type": "IDCARD"
10    },
11    "openid": "oUpF8uMuAJO_M2pxb1Q9zNjWeS6o"
12  },
13  "notify_url": "https://yourapp.com/notify",
14  "scene_info": {
15    "device_id": "POS1:1",
16    "payer_client_ip": "14.17.22.32"
17  },
18  "sub_orders": [
19    {
20      "amount": {
21        "currency": "CNY",
22        "total_amount": 10
23      },
24      "attach": "深圳分店",
25      "description": "腾讯充值中心-QQ会员充值",
26      "goods_tag": "WXG",
27      "mchid": "1230000109",
28      "out_trade_no": "20150806125346",
29      "profit_sharing": "",
30      "settle_info": {
31        "profit_sharing": false,
32        "subsidy_amount": 10
33      }
34    }
35  ],
36  "time_expire": "2018-06-08T10:34:56+08:00",
37  "time_start": "2018-06-08T10:34:56+08:00"
38}

应答参数

200 OK

 prepay_id  必填   string(64)

【预支付交易会话标识】微信生成的预支付会话标识,数字和字母组成,用于后续接口调用使用,该值有效期为2小时。

应答示例

200 OK

1{
2  "prepay_id" : "wx201410272009395522657a690389285100"
3}

 

错误码

公共错误码

状态码

错误码

描述

解决方案

400

PARAM_ERROR

参数错误

请根据错误提示正确传入参数

400

INVALID_REQUEST

HTTP 请求不符合微信支付 APIv3 接口规则

请参阅 接口规则

401

SIGN_ERROR

验证不通过

请参阅 签名常见问题

500

SYSTEM_ERROR

系统异常,请稍后重试

请稍后重试

业务错误码

状态码

错误码

描述

解决方案

202

USER_PAYING

用户支付中,需要输入密码

等待5秒,然后调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作

400

APPID_MCHID_NOT_MATCH

AppID和mch_id不匹配

请确认AppID和mch_id是否匹配

400

INVALID_REQUEST

无效请求

请根据接口返回的详细信息检查

400

MCH_NOT_EXISTS

商户号不存在

请检查商户号是否正确

400

ORDER_CLOSED

订单已关闭

当前订单已关闭,请重新下单

401

SIGN_ERROR

签名错误

请检查签名参数和方法是否都符合签名算法要求

403

ACCOUNT_ERROR

账号异常

用户账号异常,无需更多操作

403

NO_AUTH

商户无权限

请商户前往申请此接口相关权限

403

OUT_TRADE_NO_USED

商户订单号重复

请核实商户订单号是否重复提交

403

RULE_LIMIT

业务规则限制

因业务规则限制请求频率,请查看接口返回的详细信息

403

TRADE_ERROR

交易错误

因业务原因交易失败,请查看接口返回的详细信息

404

ORDER_NOT_EXIST

订单不存在

请检查订单是否发起过交易

429

FREQUENCY_LIMITED

频率超限

请降低请求接口频率

500

BANK_ERROR

银行系统异常

银行系统异常,请用相同参数重新调用

500

INVALID_TRANSACTIONID

订单号非法

请检查微信支付订单号是否正确

500

OPENID_MISMATCH

OpenID和AppID不匹配

请确认OpenID和AppID是否匹配

500

SYSTEM_ERROR

系统错误

系统异常,请用相同参数重新调用

 

 

元宝AI
反馈
目录
置顶