付款码支付

更新时间:2026.05.21

1. 场景说明

收银员使用扫码设备读取微信用户刷卡授权码以后,将二维码或条码信息传送至商户收银台,由

商户收银台或者商户后台上送至收单机构,由收单机构调用该接口发起支付。

2. 接口说明

2.1 请求参数

字段名

变量名

是否必填

类型

示例值

描述

公众账号 ID

appid

String(32)

wx8888888888888888

微信分配的公众账号 ID。

子商户公众账号 ID

sub_appid

String(32)

wx8888888888888888

微信分配的子商户公众账号 ID。

商户号

mch_id

String(32)

1900000109

微信支付分配的商户号。

子商户号

sub_mch_id

String(32)

1900000109

微信支付分配的子商户号。

渠道商商户号

channel_id

String(32)

190000001

微信支付分配给收单服务商的 ID。

设备号

device_info

String(32)

013467007045764

终端设备号(商户自定义,如门店编号)。

随机字符串

nonce_str

String(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

随机字符串,不长于 32 位。推荐随机数生成算法。

签名

sign

String(512)

C380BEC2BFD727A4B6845133519F3AD6

签名。

商品描述

body

String(128)

image形象店-深圳腾大-QQ公仔

商品或支付单简要描述,格式要求:门店品牌名 - 城市分店名 - 实际商品名称。

商品详情

detail

object

-

单品优惠功能字段,详见下文说明。

附加数据

attach

String(100)

说明

附加数据,在查询 API 和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据。

商户订单号

out_trade_no

String(32)

12121217752501201407033233368010

商户订单号,32 个字符以内、可包含字母、数字、下划线;需保证在商户端不重复。

网联 IDC 标识

idc_flag

String(2)

10

交易发往的网联条码支付 IDC 标识,具体规则见 4.8 网联条码支付 IDC 标识。

总金额

total_fee

Int

888

订单总金额,单位为分,只能为整数。

货币类型

fee_type

String(16)

CNY

符合 ISO 4217 标准的三位字母代码,默认人民币:CNY

终端 IP

spbill_create_ip

String(16)

8.8.8.8

调用微信支付 API 的机器 IP。

订单优惠标记

goods_tag

String(32)

-

订单优惠标记,代金券或立减优惠功能的参数。

指定支付方式

limit_pay

String(32)

no_credit

no_credit- 指定不能使用信用卡支付。

授权码

auth_code

String(128)

120061098828009406

扫码支付授权码,设备读取用户微信中的条码或者二维码信息。(注:用户刷卡条形码规则:18 位纯数字,以 10、11、12、13、14、15 开头)

实名支付

identity

object

-

实名支付功能,用于公安和保险类商户使用,该字段为 JSON 对象数据,包含类型、证件号、姓名三个子域(详细说明参考下文表格)。如果本字段出现,那么本字段包含的三个子域均需出现。

场景信息

scene_info

String(256)

{"store_info": {"id": "SXTX001", "name": "腾大餐厅", "area_code": "440305", "address": "科技园中一路腾讯大厦"}}

该字段用于上报场景信息,目前支持上报实际门店信息。该字段为 JSON 对象数据,对象格式为{"store_info": {"id": "门店ID", "name": "名称", "area_code": "编码", "address": "地址"}}

电子发票功能

need_receipt

boolean

true

需要跟公众平台的发票功能联合使用,详见公众平台文档。

终端信息

terminal_info

object

-

收单侧受理终端信息,字段详细说明参考下文。

交易起始时间

time_start

String(14)

20091225091010

订单生成时间,格式为yyyyMMddHHmmss,如 2009 年 12 月 25 日 9 点 10 分 10 秒表示为20091225091010

交易国别

trade_country

String(2)

13

参照《GB/T 2659 世界各国和地区名称代码》。

境内外交易标识

oversea_flag

String(2)

01

枚举值包含:01- 境内、02- 境外。

商户名称

merchant_name

String(128)

腾大餐厅美食店

商户名称。

商户行业类别

merchant_category

String(4)

1234

商户所属行业的商户类别代码,参见《网联清算有限公司商户行业分类编码》。

收单机构标识

acquiring_code

String(14)

Z1234567890123

收单机构金融机构编码。

渠道商商户名称

channel_name

String(128)

渠道商名称

渠道商商户的名称。

收单机构商户编码

sub_mch_no

String(32)

2537648901526

收单机构商户编码。

加密信息

encrypt_info

object

-

加密信息。

单品优惠活动detail字段列表说明:

字段名

变量名

是否必填

类型

示例值

描述

订单原价

cost_price

Int

608800

商户侧一张小票订单可能被分多次支付,订单原价用于记录整张小票的交易金额。当订单原价与支付金额不相等,则不享受优惠。该字段主要用于防止同一张小票分多次支付,以享受多次优惠的情况,正常支付订单不必上传此参数。

商品小票 ID

receipt_id

String(32)

wx123

商家小票 ID。

单品列表

goods_detail

String

示例见下文

单品信息,使用 Json 数组格式提交。

单品优惠活动goods_detail字段说明:

字段名

变量名

是否必填

类型

示例值

描述

商品编码

goods_id

String(32)

商品编码

由半角的大小写字母、数字、中划线、下划线中的一种或几种组成。

微信侧商品编码

wxpay_goods_id

String(32)

1001

微信支付定义的统一商品编号(没有可不传)。

商品名称

goods_name

String(256)

iPhone6s 16G

商品的实际名称。

商品数量

quantity

Int

1

用户购买的数量。

商品单价

price

Int

528800

单位为:分。如果商户有优惠,需传输商户优惠后的单价(例如:用户对一笔 100 元的订单使用了商场发的优惠券 100-50,则活动商品的单价应为原单价 - 50)。

场景信息 scene_info.store_info. 字段说明:

字段名

变量名

是否必填

类型

示例值

描述

门店 id

id

String(32)

Sztx001

门店唯一标识。

门店名称

name

String(64)

腾讯大厦腾大餐厅

门店名称。

门店行政区划码

area_code

String(6)

440305

门店所在地行政区划码。

门店详细地址

address

String(128)

科技园中一路腾讯大厦

门店详细地址。

终端信息 terminal_info 字段说明

字段名

变量名

是否必填

类型

示例值

描述

终端编码

PyeeTrxTrmNo

String(32)

-

-

终端类型

PyeeTrxTrmTp

String(2)

-

终端类型,请填写对应的枚举值。

终端序列号

PyeeTrxTrmSN

String(64)

-

终端类型为 06- 条码支付受理终端时,应填写。

终端加密因子

PyeeTrxTrmNonce

String(10)

-

终端类型为 06- 条码支付受理终端时,应填写;取用户付款码的最后 6 位数字。

终端密文数据

PyeeTrxTrmSgn

String(16)

-

终端类型为 06- 条码支付受理终端时,应填写。终端序列号和加密因子加密处理并做 Base64 转码。

终端应用程序版本号

PyeeTrxTrmVer

String(8)

-

-

终端位置国家编码

PyeeCtryNo

String(2)

-

所属国家(或地区),参照《GB/T 2659 世界各国和地区名称代码》,可获取时应填写。

终端位置地区编码

PyeeAreaNo

String(6)

-

境内所属省市地区,参照《GB/T 2260 中华人民共和国行政区划代码》,可获取时应填写。

终端 IP

PyeeTrxIp

String(45)

-

交易设备的 IP 地址,如:10.10.0.1(IPv4);ABCD:EF01:2345:6789:ABCD:EF01:2345:6789(IPv6)。

终端 GPS

PyeeTrxGps

String(23)

-

交易设备位置信息,格式为 经度,纬度。经度:取值范围 -180~180,东经为正数,西经为负数,小数点后附带 6 位小数,如:116.123456;纬度:取值范围 -90~90,北纬为正数,南纬为负数,小数点后附带 6 位小数,如:-39.987654

加密信息 encrypt_info 字段说明:

字段名

变量名

是否必填

类型

示例值

描述

加密证书序列号

encrypt_certId

String(128)

42513584

加密证书序列号,使用网联的公钥进行加密。

加密对称密钥信息

encrypt_key_info

String

-

加密对称密钥信息,加解密处理方式参见敏感信息处理章节。内容随机对称密钥串 encrypt_key 字段内容加密并 Base64 后的值。

加密内容

encrypt_detail_info

String

-

加密内容,加解密处理方式参见敏感信息处理章节。采用 JSON 格式组织,然后再进行加密,最后做 Base64 编码。JSON 内容样例:{"identity":{"name":"李明","type":"IDCARD","number":"165876185912120523"}}。目前加密字段仅包含 identity 字段,后续可能进行扩展。

加密信息 encrypt_detail_info 字段说明:

字段名

变量名

是否必填

类型

示例值

描述

实名支付

Identity

object

-

实名支付功能,用于公安和保险类商户使用,该字段为 JSON 对象数据,包含类型、证件号、姓名三个子域,详细说明如下。

加密信息 encrypt_key 字段说明:

字段名

变量名

是否必填

类型

示例值

描述

随机对称密钥串

encrypt_key

String(16)

-

此字段无需报文中体现,内容需加密后放入 encrypt_key_info 字段内。16 位字节,128 位字符定长,建议每笔请求随机产生不同的密钥串。也可自定义周期更换。

实名支付 identity 字段说明:

字段名

变量名

是否必填

类型

示例值

描述

类型

type

String(32)

IDCARD

证件类型。

证件号

number

String(32)

330000000000000000

证件号,如身份证号。

姓名

name

String(32)

张三

证件姓名。

2.2 响应参数

字段名

变量名

是否必填

类型

示例值

描述

返回状态码

return_code

String(16)

SUCCESS

SUCCESS/FAIL。此字段是通信标识,非交易标识,交易是否成功需要查看 result_code 来判断。

返回信息

return_msg

String(128)

签名失败

返回信息,如非空,为错误原因。签名失败。参数格式校验错误。

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

字段名

变量名

是否必填

类型

示例值

描述

公众账号 ID

appid

String(32)

wx8888888888888888

调用接口提交的公众账号 ID。

子商户公众账号 ID

sub_appid

String(32)

wx8888888888888888

调用接口提交的子商户公众账号 ID。

商户号

mch_id

String(32)

1900000109

调用接口提交的商户号。

子商户号

sub_mch_id

String(32)

1900000109

调用接口提交的子商户号。

设备号

device_info

String(32)

013467007045764

调用接口提交的终端设备号。

随机字符串

nonce_str

String(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

网联返回的随机字符串。

签名

sign

String(512)

C380BEC2BFD727A4B6845133519F3AD6

网联返回的签名。

业务结果

result_code

String(16)

SUCCESS

SUCCESS/FAIL

错误代码

err_code

String(32)

SYSTEMERROR

参见 5.1.1.3 错误码

错误代码描述

err_code_des

String(128)

系统错误

错误返回的信息描述。

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

字段名

变量名

是否必填

类型

示例值

描述

用户标识

openid

String(128)

 

用户在商户 appid 下的唯一标识。

用户子标识

sub_openid

String(128)

 

子商户 appid 下用户唯一标识,如需返回则请求时需要传 sub_appid。

交易类型

trade_type

String(16)

MICROPAY

支付类型:MICROPAY,即扫码支付。FACEPAY,即刷脸支付。

付款银行

bank_type

String(32)

CMC

银行类型,采用字符串类型的银行标识。

标价币种

fee_type

String(16)

CNY

符合 ISO 4217 标准的三位字母代码,默认人民币:CNY。

标价金额

total_fee

Int

888

订单总金额,单位为分,只能为整数。

现金支付币种

cash_fee_type

String(16)

CNY

符合 ISO 4217 标准的三位字母代码,默认人民币:CNY。

现金支付金额

cash_fee

Int

100

订单现金支付金额。

应结订单金额

settlement_total_fee

Int

100

当订单使用了免充值型优惠券后返回该参数,应结订单金额 = 订单金额 - 免充值优惠券金额。

代金券金额

coupon_fee

Int

100

“代金券” 金额 <= 订单金额,订单金额 -“代金券” 金额 = 现金支付金额。

优惠功能

promotion_detail

List

 

优惠功能信息,使用 Json 数组格式,详细说明见下文。

网联订单号

transaction_id

String(32)

1217752501201407033233368018

网联订单号。

商户订单号

out_trade_no

String(32)

12121217752501201407033233368010

商户订单号,32 个字符以内、可包含字母、数字、下划线;需保证在商户端不重复。

商家数据包

attach

String(100)

123456

商家数据包,原样返回。

支付完成时间

time_end

String(14)

20141030133525

订单生成时间,格式为 yyyyMMddHHmmss。如 2009 年 12 月 25 日 9 点 10 分 10 秒表示为 20091225091010。

关联交易清算机构标识

clearing_institution_code

String(2)

01

账户侧清算机构编码:01 银联;02 网联;03 连通;

关联流水号

bindtrx_id

String(64)

12177525012014070

关联快捷流水号

付款方用户标识

bkpyeruser_code

String(128)

1234567890123

用户在银行付款账号的标记化处理编号

其中,promotion_detail 对象列表:

字段名

变量名

是否必填

类型

示例值

描述

券 ID

promotion_id

String(32)

109519

券或者立减优惠 id。

优惠名称

name

String(64)

单品惠-6

优惠名称

优惠范围

scope

String(32)

SINGLE

GLOBAL- 全场代金券。SINGLE- 单品优惠。

优惠类型

type

String(32)

DISCOUNT

COUPON- 代金券,需要走结算资金的充值型代金券,(境外商户券币种与支付币种一致)。DISCOUNT- 优惠券,不走结算资金的免充值型优惠券,(境外商户券币种与标价币种一致)。

优惠券面额

amount

Int

5

用户享受优惠的金额(优惠券面额 = 微信出资金额 + 商家出资金额 + 其他出资方金额)。

活动 ID

activity_id

String(32)

931386

在微信商户后台配置的批次 ID。

微信出资

wxpay_contribute

String(32)

0

特指由微信支付商户平台创建的优惠,出资金额等于本项优惠总金额,单位为分。

商户出资

merchant_contribute

String(32)

5

其他出资方出资金额,单位为分。

单品列表

goods_detail

String

示例见下文

单品信息,使用 Json 数组格式。

goods_detail 字段说明:

字段名

变量名

是否必填

类型

示例值

描述

商品编码

goods_id

String(32)

商品编码

由半角的大小写字母、数字、中划线、下划线中的一种或几种组成。

商品备注

goods_remark

String(128)

1001

goods_remark为备注字段,按照配置原样返回,字段内容在微信后台配置券时进行设置。

商品优惠金额

discount_amount

Int

100

单品的总优惠金额,单位为:分。

商品数量

quantity

Int

1

用户购买的数量。

商品价格

price

Int

528800

单位为:分。如果商户有优惠,需传输商户优惠后的单价(例如:用户对一笔 100 元的订单使用了商场发的优惠券 100-50,则活动商品的单价应为原单价 - 50)。

3. 错误码

名称

描述

支付状态

原因

解决方案

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 是否匹配

INVALID_REQUEST

无效请求

支付确认失败

商户系统异常导致,商户权限异常、重复请求支付、证书错误频率限制等

请确认商户系统是否正常,是否具有相应支付权限,确认证书是否正确,控制频率

TRADE_ERROR

交易错误

支付确认失败

业务错误导致交易失败、用户账号异常、风控、规则限制等

请确认帐号是否存在异常

 

元宝AI
反馈
目录
置顶