H5下单API

最新更新时间:2020.11.12 版本说明


H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付。主要用于触屏版的手机浏览器请求微信支付的场景,可以方便的从外部浏览器唤起微信支付。


接口说明

适用对象: 服务商

请求URL:https://api.mch.weixin.qq.com/v3/pay/partner/transactions/h5

请求方式:POST

接口规则:https://pay.weixin.qq.com/wiki/doc/apiv3/wechatpay/wechatpay-1.shtml


path指该参数为路径参数

query指该参数需在请求URL传参

body指该参数需在请求JSON传参


请求参数

参数名 变量 类型[长度限制] 必填 描述
服务商公众号ID sp_appid string[1,32] body 服务商申请的公众号或移动应用appid。
示例值:wx8888888888888888
服务商户号 sp_mchid string[1,32] body 服务商户号,由微信支付生成并下发
示例值:1230000109
子商户公众号ID sub_appid string[1,32] body 子商户申请的公众号或移动应用appid。
示例值:wxd678efh567hg6999
子商户号 sub_mchid string[1,32] body 子商户的商户号,由微信支付生成并下发。
示例值:1900000109
商品描述 description string[1,127] body 商品描述
示例值:Image形象店-深圳腾大-QQ公仔
商户订单号 out_trade_no string[1,32] body 商户系统内部订单号,只能是数字、大小写字母_-*且在同一个商户号下唯一,详见【商户订单号】。
特殊规则:最小字符长度为6
示例值:1217752501201407033233368018
交易结束时间 time_expire string[1,64] body 订单失效时间,遵循rfc3339标准格式,格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE,YYYY-MM-DD表示年月日,T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒,TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。例如:2015-05-20T13:29:35+08:00表示,北京时间2015年5月20日 13点29分35秒。
示例值:2018-06-08T10:34:56+08:00
附加数据 attach string[1,128] body 附加数据,在查询API和支付通知中原样返回,可作为自定义参数使用
示例值:自定义数据  
通知地址 notify_url string[1,256] body 通知URL必须为直接可访问的URL,不允许携带查询串。
格式:URL
示例值:https://www.weixin.qq.com/wxpay/pay.php
订单优惠标记 goods_tag string[1,32] body 订单优惠标记
示例值:WXG
+ 结算信息 settle_info object body 结算信息
参数名 变量 类型[长度限制] 必填 描述
是否指定分账 profit_sharing bool 是否指定分账,枚举值
true:是
false:否
示例值:true
+ 订单金额 amount object body 订单金额信息
参数名 变量 类型[长度限制] 必填 描述
总金额 total int 订单总金额,单位为分。
示例值:100
货币类型 currency string[1,16] CNY:人民币,境内商户号仅支持人民币。
示例值:CNY
+ 优惠功能 detail object body 优惠功能
参数名 变量 类型[长度限制] 必填 描述
订单原价 cost_price int 1、商户侧一张小票订单可能被分多次支付,订单原价用于记录整张小票的交易金额。
2、当订单原价与支付金额不相等,则不享受优惠。
3、该字段主要用于防止同一张小票分多次支付,以享受多次优惠的情况,正常支付订单不必上传此参数。
示例值:608800
商品小票ID invoice_id string[1,32] 商家小票ID
示例值:微信123
+ 单品列表 goods_detail array 单品列表信息
条目个数限制:【1,undefined】
参数名 变量 类型[长度限制] 必填 描述
商户侧商品编码 merchant_goods_id string[1,32] 由半角的大小写字母、数字、中划线、下划线中的一种或几种组成。
示例值:商品编码
微信侧商品编码 wechatpay_goods_id string[1,32] 微信支付定义的统一商品编号(没有可不传)
示例值:1001
商品名称 goods_name string[1,256] 商品的实际名称
示例值:iPhoneX 256G
商品数量 quantity int 用户购买的数量
示例值:1
商品单价 unit_price int 商品单价,单位为分
示例值:828800
+ 场景信息 scene_info object body 支付场景描述
参数名 变量 类型[长度限制] 必填 描述
用户终端IP payer_client_ip string[1,45] 调用微信支付API的机器IP,支持IPv4和IPv6两种格式的IP地址。
示例值:14.23.150.211
商户端设备号 device_id string[1,32] 商户端设备号(门店号或收银设备ID)。
示例值:013467007045764
+ 商户门店信息 store_info object 商户门店信息
参数名 变量 类型[长度限制] 必填 描述
门店编号 id string[1,32] 商户侧门店编号
示例值:0001
门店名称 name string[1,256] 商户侧门店名称
示例值:腾讯大厦分店
地区编码 area_code string[1,32] 地区编码,详细请见省市区编号对照表
示例值:440305
详细地址 address string[1,512] 详细的商户门店地址
示例值:广东省深圳市南山区科技中一道10000号
+ H5场景信息 h5_info object H5场景信息
参数名 变量 类型[长度限制] 必填 描述
场景类型 type string[1,32] 场景类型
示例值:iOS, Android, Wap
应用名称 app_name string[1,64] 应用名称
示例值:王者荣耀
网站URL app_url string[1,128] 网站URL
示例值:https://pay.qq.com
iOS平台BundleID bundle_id string[1,128] iOS平台BundleID
示例值:com.tencent.wzryiOS
Android平台PackageName package_name string[1,128] Android平台PackageName
示例值:com.tencent.tmgp.sgame

请求示例


{
	"time_expire": "2018-06-08T10:34:56+08:00",
	"amount": {
		"total": 100,
		"currency": "CNY"
	},
	"settle_info": {
		"profit_sharing": false
	},
	"sp_mchid": "1230000109",
	"description": "Image形象店-深圳腾大-QQ公仔",
	"sub_appid": "wxd678efh567hg6999",
	"notify_url": " https://www.weixin.qq.com/wxpay/pay.php",
	"sp_appid": "wx8888888888888888",
	"out_trade_no": "1217752501201407033233368018",
	"goods_tag": "WXG",
	"sub_mchid": "1900000109",
	"attach": "自定义数据说明",
	"detail": {
		"invoice_id": "wx123",
		"goods_detail": [{
			"goods_name": "iPhoneX 256G",
			"wechatpay_goods_id": "1001",
			"quantity": 1,
			"merchant_goods_id": "商品编码",
			"unit_price": 828800
		}, {
			"goods_name": "iPhoneX 256G",
			"wechatpay_goods_id": "1001",
			"quantity": 1,
			"merchant_goods_id": "商品编码",
			"unit_price": 828800
		}],
		"cost_price": 608800
	},
	"scene_info": {
		"device_id": "013467007045764",
		"store_info": {
			"address": "广东省深圳市南山区科技中一道10000号",
			"area_code": "440305",
			"name": "腾讯大厦分店",
			"id": "0001"
		},
		"h5_info": {
			"app_name": "王者荣耀",
			"app_url": "https://pay.qq.com",
			"bundle_id": "com.tencent.wzryiOS",
			"package_name": "com.tencent.tmgp.sgame",
			"type": "iOSAndroidWap"
		},
		"payer_client_ip": "14.23.150.211"
	}
}
    
{
JAVA示例代码
}
    

返回参数

参数名 变量 类型[长度限制] 必填 描述
支付跳转链接 h5_url string[1,512] h5_url为拉起微信支付收银台的中间页面,可通过访问该url来拉起微信客户端,完成支付,h5_url的有效期为5分钟。
示例值:https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx2016121516420242444321ca0631331346&package=1405458241

返回示例


{	
"h5_url": "https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx2016121516420242444321ca0631331346&package=1405458241"
}
                                

    http://2323weixin.qq.com
                                

错误码公共错误码

状态码 错误码 描述 解决方案
202 USERPAYING 用户支付中,需要输入密码 等待5秒,然后调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作
403 TRADE_ERROR 交易错误 因业务原因交易失败,请查看接口返回的详细信息
500 SYSTEMERROR 系统错误 系统异常,请用相同参数重新调用
401 SIGN_ERROR 签名错误 请检查签名参数和方法是否都符合签名算法要求
403 RULELIMIT 业务规则限制 因业务规则限制请求频率,请查看接口返回的详细信息
400 PARAM_ERROR 参数错误 请根据接口返回的详细信息检查请求参数
403 OUT_TRADE_NO_USED 商户订单号重复 请核实商户订单号是否重复提交
404 ORDERNOTEXIST 订单不存在 请检查订单是否发起过交易
400 ORDER_CLOSED 订单已关闭 当前订单已关闭,请重新下单
500 OPENID_MISMATCH openid和appid不匹配 请确认openid和appid是否匹配
403 NOTENOUGH 余额不足 用户账号余额不足,请用户充值或更换支付卡后再支付
403 NOAUTH 商户无权限 请商户前往申请此接口相关权限
400 MCH_NOT_EXISTS 商户号不存在 请检查商户号是否正确
500 INVALID_TRANSACTIONID 订单号非法 请检查微信支付订单号是否正确
400 INVALID_REQUEST 无效请求 请根据接口返回的详细信息检查
429 FREQUENCY_LIMITED 频率超限 请降低请求接口频率
500 BANKERROR 银行系统异常 银行系统异常,请用相同参数重新调用
400 APPID_MCHID_NOT_MATCH appid和mch_id不匹配 请确认appid和mch_id是否匹配
403 ACCOUNTERROR 账号异常 用户账号异常,无需更多操作

版本说明

关闭
V1.1
2020.11.12
1. 去除结算信息补差金额字段
V1.0
2020.05.26
1. H5下单接口上线

技术咨询

文档反馈