Login expired. Please log in again.

Feedback

0/300

Feedback

Submitted successfully

ok

Feedback

Network exception, please try again later

ok

提交刷卡支付

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


收银员使用扫码设备读取微信用户刷卡授权码以后,二维码或条码信息传送至商户收银台,由商户收银台或者商户后台调用该接口发起支付。

注意:

● 提交支付请求后微信会同步返回支付结果。当返回结果为“系统错误”时,商户系统等待5秒后调用【查询订单API】,查询支付实际交易结果;当返回结果为“USERPAYING”时,商户系统可设置间隔时间(建议10秒)重新查询支付结果,直到支付成功或超时(建议30秒);

● 在调用查询接口返回后,如果交易状况不明晰,请调用【撤销订单API】,此时如果交易失败则关闭订单,该单不能再支付成功;如果交易成功,则将扣款退回到用户账户。当撤销无返回或错误时,请再次调用。注意:请勿扣款后立即调用【撤销订单API】,建议至少15秒后再调用。撤销订单API需要双向证书。

● 验证密码规则:


◆ 支付金额>1000元的交易需要验证用户支付密码

◆ 用户账号每天最多有10笔交易可以免密,超过后需要验证密码

◆ 微信支付后台判断用户支付行为有异常情况,符合免密规则的交易也会要求验证密码

注:基于一定的风控策略,存在随时需要验密的可能性。

接口说明

适用对象:直连模式机构模式

请求URL: https://api.mch.weixin.qq.com/pay/micropay

请求方式: POST

数据格式: XML

是否需要证书:

请求参数

参数名 变量 类型 必填 描述
公众账号ID appid string(32) 微信分配的公众账号ID
示例值:wx8888888888888888
子商户公众账号ID sub_appid string(32) 微信分配的子商户公众账号ID
注意:仅适用于机构模式
示例值:1900000109
商户号 mch_id string(32) 微信支付分配的商户号
示例值:1900000109
子商户号 sub_mch_id string(32) 微信支付分配的子商户号,开发者模式下必填
注意:仅适用于机构模式
示例值:1900000109
设备号 device_info string(32) 终端设备号(商户自定义,如门店编号)
示例值:013467007045764
随机字符串 nonce_str string(32) 随机字符串,不长于32位。推荐随机数生成算法
示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS
签名 sign string(64) 签名,详见签名生成算法
示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS
签名类型 sign_type string(32) 签名类型,目前支持HMAC-SHA256和MD5,默认为MD5
示例值:HMAC-SHA256
商品描述 body string(32) 商品或支付单简要描述
示例值:Ipadmini16G白色
版本号 version string(32) 固定值 1.0
示例值:1.0
商品详情 detail string(6000) 商品详细列表,使用Json格式,传输签名前请务必使用CDATA标签将JSON文本串保护起来。
goods_detail
└ goods_name string 必填 256 商品名称
└ quantity int 必填 4 商品数量
示例值:{ "goods_detail":[ { "goods_name":"iPhone6s 16G", "quantity":1, }, { "goods_name":"iPhone6s 32G", "quantity":1, } ] }
附加数据 attach string(127) 附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
示例值:说明
商户订单号 out_trade_no string(32) 商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。 其他说明见商户订单号
示例值:1217752501201407033233368018
标价金额 total_fee int 标价订单总金额,单位为分,只能为整数,详见支付金额
示例值:888
标价币种 fee_type string(16) 符合ISO 4217标准的三位字母代码,币种列表详见货币类型
示例值:USD
终端IP spbill_create_ip string(64) 符合ISO 支持IPV4和IPV6两种格式的IP地址。调用微信支付API的机器IP
示例值:8.8.8.8
订单优惠标记 goods_tag string(32) 订单优惠标记,代金券或立减优惠功能的参数,说明详见代金券或立减优惠
示例值:
授权码 auth_code string(128) 扫码支付授权码,设备读取用户微信中的条码或者二维码信息
(注:用户刷卡条形码规则:18位纯数字,以10、11、12、13、14、15开头)
示例值:120061098828009406
交易起始时间 time_start string(14) 订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则
示例值:20091225091010
交易结束时间 time_expire string(14) 订单失效时间,格式为yyyyMMddHHmmss,如2009年12月27日9点10分10秒表示为20091227091010。
示例值:20091227091010
场景信息 scene_info string(256) 该字段用于统一下单时上报场景信息,目前支持上报实际门店信息。
{
"store_id": "", //门店唯一标识,选填,string(32)
"store_name":"”//门店名称,选填,string(64)
}
示例值:{ "store_id": "SZT10000", "store_name":"腾讯大厦腾大餐厅" }

请求示例:


<xml>
   <appid>wx2421b1c4370ec43b</appid>
   <body>An apple</body>
   <attach>Additional Order Descriptionr</attach>
   <device_info>123001</device_info>
   <auth_code>134539517967686076</auth_code>
   <fee_type>EUR</fee_type>
   <mch_id>10000100</mch_id>
   <nonce_str>f6868b9b16bf4893958afd4a46d73422</nonce_str>
   <out_trade_no>2017101418207317</out_trade_no>
   <detail><![CDATA[{"goods_detail":[{"wxpay_goods_id":"1001","goods_name":"iPhone6s 32G","quantity":1}]}]]></detail>
   <sign>5F244D7C69241AB7BC937A7A2A542294</sign>
   <sub_mch_id>452532745</sub_mch_id>
   <total_fee>1</total_fee>
</xml>
                 
		
    
{
JAVA示例代码
}
    

返回参数

正常返回

字段名 变量 类型 必填 描述
返回状态码 return_code string(16) SUCCESS/FAIL
此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断
示例值:SUCCESS
返回信息 return_msg string(128) 返回信息,如非空,为错误原因
签名失败
参数格式校验错误
示例值:签名失败

当return_code为SUCCESS的时候,还会包括以下字段:


字段名 变量 类型 必填 描述
公众账号ID appid string(32) 调用接口提交的公众账号ID
示例值:wx8888888888888888
子商户公众账号ID sub_appid string(32) 调用接口提交的子商户公众账号ID
注意:仅适用于机构模式
示例值:wx8888888888888888
商户号 mch_id string(32) 调用接口提交的商户号
示例值:1900000109
子商户号 sub_mch_id string(32) 调用接口提交的子商户号
注意:仅适用于机构模式
示例值:1900000109
设备号 device_info string(32) 调用接口提交的终端设备号
示例值:013467007045764
随机字符串 nonce_str string(32) 微信返回的随机字符串
示例值:5K8264ILTKCH16CQ2502SI8ZNMTM67VS
签名 sign string(64) 微信返回的签名,详见签名生成算法
示例值:C380BEC2BFD727A4B6845133519F3AD6
业务结果 result_code string(16) SUCCESS/FAIL
示例值:SUCCESS
错误代码 err_code string(32) 详细参见错误列表
示例值:SYSTEMERROR
错误代码描述 err_code_des string(128) 错误返回的信息描述
示例值:系统错误

当return_code 和result_code都为SUCCESS的时,还会包括以下字段:


标价金额 total_fee 是 int 888
字段名 变量 类型 必填 描述
用户标识 openid string(128) 用户在商户appid 下的唯一标识
示例值:Y
是否关注公众账号 is_subscribe string(1) 用户是否关注公众账号,仅在公众账号类型支付有效,取值范围:Y或N;Y-关注;N-未关注
示例值:Y
用户子标识 sub_openid string(128) 子商户appid下用户唯一标识,如需返回则请求时需要传sub_appid
注意:仅适用于机构模式
示例值:Y
是否关注子公众账号 sub_is_subscribe string(1) 用户是否关注子公众账号,仅在公众账号类型支付有效,取值范围:Y或N;Y-关注;N-未关注
注意:仅适用于机构模式
示例值:Y
交易类型 trade_type string(16) 支付类型为MICROPAY(即扫码支付)
示例值:MICROPAY
付款银行 bank_type string(32) 银行类型,采用字符串类型的银行标识,值列表详见银行类型
示例值:CMC
标价币种 fee_type string(16) 符合ISO 4217标准的三位字母代码,列表详见货币类型
示例值:USD
标价金额 total_fee int 订单总金额,单位为分,只能为整数,详见支付金额
示例值:888
现金支付币种 cash_fee_type string(16) 符合ISO 4217标准的三位字母代码,列表详见货币类型
示例值:USD
现金支付金额 cash_fee int 订单现金支付金额,详见支付金额
示例值:100
微信支付订单号 transaction_id string(32) 微信支付订单号
示例值:1217752501201407033233368018
商户订单号 out_trade_no string(32) 商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。
示例值:1217752501201407033233368018
商家数据包 attach string(128) 自定义参数,原样返回
示例值:123456
支付完成时间 time_end string(14) 订单生成时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。详见时间规则
示例值:20141030133525
汇率 rate string(16) 标价币种与支付币种的兑换比例乘以10的8次方即为此值,例如美元兑换人民币的比例为6.5,则rate=650000000
示例值:650000000

举例如下:


验密:
<xml>
   <return_code>![CDATA[SUCCESS]]</return_code>  
   <return_msg>![CDATA[OK]]</return_msg>  
   <result_code>![CDATA[FAIL]]</result_code>  
   <err_code_des>![CDATA[需要用户输入支付密码]]</err_code_des>
   <err_code>![CDATA[USERPAYING]]</err_code>
   <mch_id>![CDATA[10000100]]</mch_id>
   <appid>![CDATA[wx2421b1c4370ec43b]]</appid>
   <sub_mch_id>![CDATA[452532745]]</sub_mch_id>
   <device_info>![CDATA[123001]]</device_info>
   <nonce_str>![CDATA[EBObtckqDbde2wll]]</nonce_str>
   <sign>![CDATA[E0635D8F665727ACE62DEF430C22B9A4]]</sign>
</xml>

免密:
<xml>
   <return_code>![CDATA[SUCCESS]]</return_code>
   <return_msg>![CDATA[OK]]</return_msg>
   <result_code>![CDATA[SUCCESS]]</result_code>
   <mch_id>![CDATA[10000100]]</mch_id>
   <appid>![CDATA[wx2421b1c4370ec43b]]</appid>
   <sub_mch_id>![CDATA[375907253]]</sub_mch_id>
   <device_info>![CDATA[1000]]</device_info>
   <nonce_str>![CDATA[OMdoiruMjafNqdlS]]</nonce_str>
   <sign>![CDATA[D460A30CDFE62F5167A0F0AE4014E5D2]]</sign>
   <openid>![CDATA[oUpF8uN95-Ptaags6E_roPHg7AG0]]</openid>
   <is_subscribe>![CDATA[N]]</is_subscribe>
   <trade_type>![CDATA[MICROPAY]]</trade_type>
   <bank_type>![CDATA[CCB_DEBIT]]</bank_type>
   <fee_type>![CDATA[USD]]</fee_type> 
   <total_fee>332</total_fee>
   <cash_fee_type>![CDATA[CNY]]</cash_fee_type> 
   <cash_fee>2124</cash_fee>
   <transaction_id>![CDATA[4200001212282111030178445712]]</transaction_id>
   <out_trade_no>![CDATA[90020211103112345605049]]</out_trade_no>
   <attach>![CDATA[]]</attach>
   <time_end>![CDATA[20211103185407]]</time_end> 
   <rate>![CDATA[640053060]]</rate>
</xml> 
				

错误码

错误码 描述 问题 解决方案
SYSTEMERROR 接口返回错误 系统超时 请立即调用被扫订单结果查询API,查询当前订单状态,并根据订单的状态决定下一步的操作。
PARAM_ERROR 参数错误 请求参数未按指引进行填写 请根据接口返回的详细信息检查您的程序
ORDERPAID 订单已支付 订单号重复 请确认该订单号是否重复支付,如果是新单,请使用新订单号提交
NOAUTH 商户无权限 商户没有开通被扫支付权限 请开通商户号权限。请联系产品或商务申请
AUTHCODEEXPIRE 二维码已过期,请用户在微信上刷新后再试 用户的条码已经过期 请收银员提示用户,请用户在微信上刷新条码,然后请收银员重新扫码。 直接将错误展示给收银员
NOTENOUGH 余额不足 用户的零钱余额不足 请收银员提示用户更换当前支付的卡,然后请收银员重新扫码。建议:商户系统返回给收银台的提示为“用户余额不足.提示用户换卡支付”
NOTSUPORTCARD 不支持卡类型 用户使用卡种不支持当前支付形式 请用户重新选择卡种 建议:商户系统返回给收银台的提示为“该卡不支持当前支付,提示用户换卡支付或绑新卡支付”
ORDERCLOSED 订单已关闭 该订单已关 商户订单号异常,请重新下单支付
ORDERREVERSED 订单已撤销 当前订单已经被撤销 当前订单状态为“订单已撤销”,请提示用户重新支付
BANKERROR 银行系统异常 银行端超时 请立即调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作。
USERPAYING 用户支付中,需要输入密码 该笔交易因为业务规则要求,需要用户输入支付密码。 等待5秒,然后调用被扫订单结果查询API,查询当前订单的不同状态,决定下一步的操作。
AUTH_CODE_ERROR 授权码参数错误 请求参数未按指引进行填写 每个二维码仅限使用一次,请刷新再试
AUTH_CODE_INVALID 授权码检验错误 收银员扫描的不是微信支付的条码 请扫描微信支付被扫条码/二维码
XML_FORMAT_ERROR XML格式错误 XML格式错误 请检查XML参数格式是否正确
REQUIRE_POST_METHOD 请使用post方法 未使用post传递参数 请检查请求参数是否通过post方法提交
SIGNERROR 签名错误 参数签名结果不正确 请检查签名参数和方法是否都符合签名算法要求
LACK_PARAMS 缺少参数 缺少必要的请求参数 请检查参数是否齐全
NOT_UTF8 编码格式错误 未使用指定编码格式 请使用UTF-8编码格式
BUYER_MISMATCH 支付账号错误 暂不支持同一笔订单更换支付方 请确认支付方是否相同
APPID_NOT_EXIST APPID不存在 参数中缺少APPID 请检查APPID是否正确
MCHID_NOT_EXIST MCHID不存在 参数中缺少MCHID 请检查MCHID是否正确
OUT_TRADE_NO_USED 商户订单号重复 同一笔交易不能多次提交 请核实商户订单号是否重复提交
APPID_MCHID_NOT_MATCH appid和mch_id不匹配 appid和mch_id不匹配 请确认appid和mch_id是否匹配


版本说明

关闭
V1.0
2021年12月21日
1. 查询订单接口上线
2. 新增验证密码规则注意事项

About  WeChat  Pay

Powered By Tencent & Tenpay Copyright©

2005-2024 Tenpay All Rights Reserved.

Contact Us
Wechat Pay Global

WeChat Pay Global