除付款码支付场景以外,商户系统先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易会话标识后再按 Native、JSAPI、APP 等不同场景生成交易串调起支付。
支付状态转变如下:
URL 地址:https://api.mch.weixin.qq.com/pay/unifiedorder
URL 地址:https://api2.mch.weixin.qq.com/pay/unifiedorder(备用域名)见跨城冗灾方案
请求方式: POST
否
公众账号 ID | appid | 是 | String(32) | wxd678efh567hg6787 | 微信支付分配的公众账号 ID(企业号 corpid 即为此 appId) |
商户号 | mch_id | 是 | String(32) | 1230000109 | 微信支付分配的商户号 |
设备号 | device_info | 否 | String(32) | 013467007045764 | 自定义参数,可以为终端设备号(门店号或收银设备 ID),PC 网页或公众号内支付可以传"WEB" |
随机字符串 | nonce_str | 是 | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 随机字符串,长度要求在 32 位以内。推荐随机数生成算法 |
签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 通过签名算法计算得出的签名值,详见签名生成算法 |
签名类型 | sign_type | 否 | String(32) | MD5 | 签名类型,默认为 MD5,支持 HMAC-SHA256 和 MD5。 |
商品描述 | body | 是 | String(128) | 腾讯充值中心-QQ 会员充值 | 商品简单描述,该字段请按照规范传递,具体请见参数规定 |
商品详情 | detail | 否 | String(6000) | 商品详细描述,对于使用单品优惠的商户,该字段必须按照规范上传,详见“单品优惠参数说明” | |
附加数据 | attach | 否 | String(127) | 深圳分店 | 附加数据,在查询 API 和支付通知中原样返回,可作为自定义参数使用。 |
商户订单号 | out_trade_no | 是 | String(32) | 20150806125346 | 商户系统内部订单号,要求 32 个字符内,只能是数字、大小写字母_- |
标价币种 | fee_type | 否 | String(16) | CNY | 符合 ISO 4217 标准的三位字母代码,默认人民币:CNY,详细列表请参见货币类型 |
标价金额 | total_fee | 是 | Int | 88 | 订单总金额,单位为分,详见支付金额 |
终端 IP | spbill_create_ip | 是 | String(64) | 123.12.12.123 | 支持 IPV4 和 IPV6 两种格式的 IP 地址。用户的客户端 IP |
交易起始时间 | time_start | 否 | String(14) | 20091225091010 | 订单生成时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 25 日 9 点 10 分 10 秒表示为 20091225091010。其他详见时间规则 |
交易结束时间 | time_expire | 否 | String(14) | 20091227091010 | 订单失效时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 27 日 9 点 10 分 10 秒表示为 20091227091010。订单失效时间是针对订单号而言的,由于在请求支付的时候有一个必传参数 prepay_id 只有两小时的有效期,所以在重入时间超过 2 小时的时候需要重新请求联系扣扣1695245670下单接口获取新的 prepay_id。其他详见时间规则time_expire 只能第一次下单传值,不允许二次修改,二次修改系统将报错。如用户支付失败后,需再次支付,需更换原订单号重新下单。建议:最短失效时间间隔大于 1 分钟 |
订单优惠标记 | goods_tag | 否 | String(32) | WXG | 订单优惠标记,使用代金券或立减优惠功能时需要的参数,说明详见代金券或立减优惠 |
通知地址 | notify_url | 是 | String(256) | http://www.weixin.qq.com/wxpay/pay.php | 异步接收微信支付结果通知的回调地址,通知 url 必须为外网可访问的 url,不能携带参数。 |
交易类型 | trade_type | 是 | String(16) | JSAPI | JSAPI -JSAPI 支付 NATIVE -Native 支付 APP -APP 支付说明详见参数规定 |
商品 ID | product_id | 否 | String(32) | 12235413214070356458058 | trade_type=NATIVE 时,此参数必传。此参数为二维码中包含的商品 ID,商户自行定义。 |
指定支付方式 | limit_pay | 否 | String(32) | no_credit | 上传此参数 no_credit--可限制用户不能使用信用卡支付 |
用户标识 | openid | 否 | String(128) | oUpF8uMuAJO_M2pxb1Q9zNjWeS6o | trade_type=JSAPI 时(即 JSAPI 支付),此参数必传,此参数为微信用户在商户对应 appid 下的唯一标识。openid 如何获取,可参考【获取openid】。企业号请使用【企业号OAuth2.0接口】获取企业号内成员 userid,再调用【企业号userid转openid接口】进行转换 |
电子发票入口开放标识 | receipt | 否 | String(8) | Y | Y,传入 Y 时,支付成功消息和支付详情页将出现开票入口。需要在微信支付商户平台或微信公众平台开通电子发票功能,传此字段才可生效 |
是否需要分账 | profit_sharing | 否 | String(16) | Y | Y-是,需要分账,N-否,不分账,字母要求大写,不传默认不分账 |
场景信息 | scene_info | 否 | String(256) | {"store_info" : {"id": "SZTX001","name": "腾大餐厅","area_code": "440305","address": "科技园中一路腾讯大厦" }} | 该字段常用于线下活动时的场景信息上报,支持上报实际门店信息,商户也可以按需求自己上报相关信息。该字段为 JSON 对象数据,对象格式为{"store_info":{"id": "门店 ID","name": "名称","area_code": "编码","address": "地址" }} |
举例如下:
<xml> <appid>wx2421b1c4370ec43b</appid> <attach>支付测试</attach> <body>JSAPI支付测试</body> <mch_id>10000100</mch_id> <detail><![CDATA[{ "goods_detail":[ { "goods_id":"iphone6s_16G", "wxpay_goods_id":"1001", "goods_name":"iPhone6s 16G", "quantity":1, "price":528800, "goods_category":"123456", "body":"苹果手机" }, { "goods_id":"iphone6s_32G", "wxpay_goods_id":"1002", "goods_name":"iPhone6s 32G", "quantity":1, "price":608800, "goods_category":"123789", "body":"苹果手机" } ] }]]></detail> <nonce_str>1add1a30ac87aa2db72f57a2375d8fec</nonce_str> <notify_url>http://wxpay.wxutil.com/pub_v2/pay/notify.v2.php</notify_url> <openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid> <out_trade_no>1415659990</out_trade_no> <spbill_create_ip>14.23.150.211</spbill_create_ip> <total_fee>1</total_fee> <trade_type>JSAPI</trade_type> <sign>0CB01533B8C1EF103065174F50BCA001</sign> </xml>
注:参数值用 XML 转义即可,CDATA 标签用于说明数据不被 XML 解析器解析。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!