




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微信公众号支付接口文档(结算中心-受理机构)讨论36微信被扫支付接口文档(结算中心-受理机构)V0.0目录修改日志41.微信支付简介51.1.功能简介51.2.支付账户51.3.支付方式62.支付场景介绍62.1.网页内支付场景-JS API(网页内)支付接口62.1.1.交互细节82.1.2.JSAPI 支付时序图92.1.4.显示微信安全支付标题92.2.线下扫码购买场景-Native(原生)支付接口102.2.1 使用场景102.2.2.Native(原生)支付 URL 定义113.接口说明133.1.接口调用规则133.2.微信Sign 签名生成方法143.2.1 受理商签名 Sign
2、 生成方法143.3 结算中心签名生成方法153.4 调用流程164.API 说明174.1.统一支付接口174.2.通用通知接口204.3.订单查询接口224.7 关闭订单接口244.8.退款申请接口264.9.退款查询接口284.10.对账单接口304.12.接口调用上报接口305.企业红包使用说明325.1 创建批次企业红包325.2 提交支付使用企业红包325.3 查询使用企业红包金额335.4 企业红包对账单336. 返回状态码列表337.错误码列表338.常见问题和注意事项348.1.常见基本概念疑惑348.2.常见错误现象及解决方法348.3.常见注意事项35修改日志日期修改人操
3、作修改内容2014-12-26陈恒创建新增修改日志2014-12-26陈恒修改修改“4.8 退款申请接口”参数名“Sign_szfs”为“sign_szfs”2014-12-26陈恒修改修改“3.3 结算中心签名方式”2014-12-26陈恒修改修改“6 返回状态码列表”,新增状态码“FAIL_STATUS”、“FAIL_SIGN”、“FAIL_SZFS”2015-01-05陈恒修改修改“4.7 关闭订单接口”参数“商户订单号(out_trade_no)”为必填1.微信支付简介1.1.功能简介微信支付,是基于微信客户端提供的支付服务功能。同时向商户提供销售经营分析、账户和资金管理的功能支持。用
4、户通过扫描二维码、微信内打开商品页面购买等多种方式调起 微信支付模块完成支付。微信支持公众号内支付,即基于公众号向用户收款,公众号相当于收款的商户。其中支付方式,可以分为 JS API(网页内)支付、Native(原生)支付。商户可以结合业务场景, 自主选择支付方式。本文将全面介绍微信支付的技术方案。1.2.支付账户商户向微信提交企业以及银行账户资料,商户功能审核通过后,可以获得以下帐户(包含财付通的商户账户),用于公众号支付。帐号作用appId微信公众号身份的唯一标识。审核通过后,在微信发送的邮件中查看。Mchid商户 ID,身份标识,在微信发送的邮件中查看。SubMchId子商户ID,受理
5、模式下子商户与受理商有绑定关系,没有不提交该参数Key商户支付密钥Key。登录微信商户后台,进入栏目【账户设置】【密码安全】【API 安全】【API 密钥】AppsecretJSAPI 接口中获取 openid,审核后在公众平台开启开发模式后可查看。注意: 支付密钥 Key 是验证商户唯一性的安全标识,请妥善保管,仅保留在第三方后台和微信后台,不会在网络中传播。1.3.支付方式JS API(网页内)支付:是指用户打开图文消息或者扫描二维码,在微信内置浏览器打开网页进行的支付。商户网页前端通过使用微信提供的 JS API,调用微信支付模块。这种方 式,适合需要在商户网页进行选购下单的购买流程。N
6、ative(原生)支付:是指商户组成符合 Native(原生)支付规则的 URL 链接,用户 可通过在会话中点击链接或者扫描对应的二维码直接进入微信支付模块(客户端界面),即可进行支付。这种方式,适合无需选购直接支付的购买流程。跟 JSAPI 最大的区别是不经过网页调起支付。2.支付场景介绍2.1.网页内支付场景-JS API(网页内)支付接口商户已有 H5 商城网站,在微信内打开网页时,可以调用微信支付完成下单购买的流程。 步骤(1):左图,商户下发图文消息或者通过自定义菜单吸引用户点击进入商户网页。 步骤(2):右图,进入商家网页,用户选择购买,完成选购流程。步骤(3):左图,调起微信支付
7、控件,用户开始输入支付密码。步骤(4):右图,密码验证通过,支付成功。商户后台得到支付成功的通知。步骤(5):左图,返回商户页面,显示购买成功。该页面由商户自定义。 步骤(6):右图,公众号下发消息,提示发货成功。该步骤可选。微信公众号支付接口文档 V3.3注意:商户也可以把商品网页的链接生成二维码,用户扫一扫打开后即可完成购买支付。2.1.1.交互细节以下是支付场景的交互细节,请认真阅读,并设计商户页面的逻辑:( 1 ) 用 户 打 开 商 户 网 页 选 购 商 品 , 发 起 支 付 , 在 网 页 通 过 JavaScript 调用getBrandWCPayRequest 接口,发起微
8、信支付请求,用户进入支付流程。(2)用户成功支付点击完成按钮后,商户的前端会收到JavaScript 的返回值。商户可直接跳转到支付成功的静态页面进行展示。(3)商户后台收到来自微信开放平台的支付成功回调通知,标志该笔订单支付成功。 注:(2)和(3)的触发不保证遵循严格的时序。JS API 返回值作为触发商户网页跳转的标 志,但商户后台应该只在收到微信后台的支付成功回调通知后,才做真正的支付成功的处理。JS API 返回值目前只在支付成功时返回,后续版本将扩展返回值,以便商户做更多个性化的展示。2.1.2.JSAPI 支付时序图 2.1.3.获取当前微信版本号由于微信 5.0 版本后才加入微
9、信支付模块,低版本用户调用微信支付功能将无效。因此, 建议商户通过 user agent 来确定用户当前的版本号后再调用支付接口。以 iPhone 版本为例, 可以通过 user agent 可获取如下微信版本示例信息:"Mozilla/5.0(iphone;CPU iphone OS 5_1_1 like Mac OS X) AppleWebKit/534.46(KHTML,like Geocko) Mobile/9B206 MicroMessenger/5.0"其中 5.0 为用户安装的微信版本号,商户可以判定版本号是否高于或者等于 5.0。2.1.4.显示微信安全支付
10、标题对于商户具有支付权限且需要调用微信支付的页面,为了让用户增加购买信心,确认交易环境安全,微信强烈建议商户使用“微信安全支付”标题。安全支付标题的如下图。微信公众号支付接口文档 V3.3显示支付安全标题,需将原始链接添加上"showwxpaytitle=1"的尾串。通过这种方式,商户的页面将出现微信安全支付的标识。例如,原始 URL 为:htp:/,显示安全 支付标题的 URL 为:htp:/?showwxpaytitle=1。当用户在微信里打开 不会直接出现微信安全支付的标题,而打开htp:/?showwxpaytitle=1后将出现微信安全支付标题。2.2.线下扫码购
11、买场景-Native(原生)支付接口2.2.1 使用场景与网页内支付场景不同,部分商户不需要经过网页选购,可以直接下单购买。 步骤(1):左图,商户根据微信支付的规则,为不同商品生成不同的二维码,张贴在各种场景,便于用户扫描购买。 步骤(2):右图,用户使用微信扫描二维码后,获取商品信息,同时到商户后台下单。步骤(3):左图,用户开始支付,输入支付密码。步骤(4):右图,支付成功,商户后台得到通知,进行发货处理。2.2.2.Native(原生)支付 URL 定义模式一:商户按固定格式生成链接二维码,用户扫码后调微信会将 productid 和用户 openid 发送到商户设置的链接上,商户收到
12、请求生成订单,调用统一支付接口下单提交到微信,微信会返回给商户prepayid,时序图如下:微信公众号支付接口文档 V3.3对应链接:weixin:/wxpay/bizpayurl?sign=XXXXX&appid=XXXXX&mch_id=XXXXX&product_id=XXXXXX &time_stamp=XXXXXX&nonce_str=XXXXX模式二:商户生成订单,先调用统一支付接口获取到 code_url,此 URL 直接生成二维 码,用户扫码后调起支付。时序图如下:微信公众号支付接口文档(结算中心-受理机构) V0.0code_url 对
13、应链接:weixin:/wxpay/bizpayurl?sr=XXXXX3.接口说明3.1.接口调用规则u认证方式:HTTP 认证,退款和撤销接口调用需要商户证书(证书由结算中心下发)u请求采用 POST 方式u提交和返回结果采用 XML 格式u字符集默认使用UTF-8,请勿使用其它字符集u商户与微信之间的交互(特别是 Native 回调和支付通知回调),都需要验证签名u处理返回时先判断协议返回错误码,再判断业务返回错误码,最后判断交易状态3.2.微信Sign 签名生成方法假设微信支付分配的参数为: (1)第三方商户的商户参数:商户参数名参数值说明appidwxd00000000000000f
14、第三方商户公众号标识mch_id10000001第三方商户商户号标识Key8934e7d15453e97507ef794cf7b0519d第三方商户密钥3.2.1 受理商签名 Sign 生成方法由于数据中携带了生成订单的详细信息,因此在微信将对数据里面的内容进行鉴权,确 定携带的信息是真实、有效、合理的。因此,这里将定义生成 sign 字符串的方法。a.对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值 对的格式(即 key1=value1&key2=value2)拼接成字符串 string1,注意:值为空的参数不参与签名;b. 在 string1
15、最 后 拼 接 上 key= 受 理 商 商 户 Key 得 到 stringSignTemp 字 符 串 , 并 对 stringSignTemp 进 行 md5 运 算 , 再 将 得 到 的 字 符 串 所 有 字 符 转 换 为 大 写 , 得 到 sign 值 signValue。下面定义了一段生成 sign 字符串的示范过程: 假设以下为传入参数:appid=wxd00000000000000f mch_id=10000001 auth_code=123456body=test device_info=123nonce_str=960f228109051b9969f76c82bde
16、183ac out_trade_no=1400755861 spbill_create_ip=total_fee=1i:经过 a 过程 URL 键值对字典序排序后的字符串 string1 为:appid=wxd00000000000000f&auth_code=123456&body=test&device_info=123&mch_id=1 0000001&nonce_str=960f228109051b9969f76c82bde183ac&out_trade_no=1400755861&spbill_ create_
17、ip=&total_fee=1ii:经过 b 过程后得到 sign 为:sign=md5(string1&key=8934e7d15453e97507ef794cf7b0519d).toUpperCase=md5(appid=wxd00000000000000f&auth_code=123456&body=test&device_info=123&mc h_id=10000001&nonce_str=960f228109051b9969f76c82bde183ac&out_trade_no=1400755861&
18、amp; spbill_create_ip=&total_fee=1&key=8934e7d15453e97507ef794cf7b0519d).toUpperCa se()="0b28fe46b0e12e4692ca950d67cecde5".toUpperCase()="0B28FE46B0E12E4692CA950D67CECDE5"3.3 结算中心签名生成方法受理机构在发起撤销和退款申请时,需要对相应接口的“提交参数”进行签名。除“结算中心签名(sign_szfs)”和值为空的参数外,所有“提交参数”都需参与签名
19、。生成的签名填充参数“结算中心签名”。结算中心收到一笔撤销和退款申请时必须用“提交参数”中的“结算中心签名”来验证报文的有效性。签名所需的私钥文件由结算中心统一提供,各受理机构需要更换私钥文件时可以向结算中心申请。验签所需的公钥文件由结算中心决定是否更换。以下给出签名的生成方式:(1)除“结算中心签名”和值为空的参数外,所有“提交参数”都需参与签名。(2)对所有传入参数按照字段名的ASCII码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2)拼接成字符串string1,string1即为签名要素。注意:此时string1应包括sign=
20、signValue。(3)使用自身的数字证书(私钥)对签名要素串签名,签名的校验算法使用SHA1WithRSA算法。(4)将签名值使用BASE64转码后得到参数“结算中心签名”的值。 3.4 调用流程(1)商户发起请求处理流程:(2)商户调用返回或微信主动通知处理流程:4.API 说明4.1.统一支付接口URL 地址:待定统一支付接口,可接受 JSAPI/NATIVE/APP 下预支付订单,返回预支付订单号。NATIVE 支付返回二维码 code_url。注意:JSAPI 下单前需要调用登录授权接口(详细调用说明请点击打开链接)获取到用户的 Openid。请求参数:字段名变量名必填类型说明公众
21、账号 IDappid是String(32)微信分配的公众账号 ID商户号mch_id是String(32)微信支付分配的商户号子商户号sub_mch_id否String(32)微信支付分配的子商户号,受理模式下必填设备号device_info否String(32)微信支付分配的终端设备号随机字符串nonce_str是String(32)随机字符串,不长于 32 位签名sign是String(32)签名,详细签名方法见 3.2 节商品描述body是String(127)商品描述附加数据attach否String(127)附加数据,原样返回商户订单号out_trade_no是String(32)商
22、 户 系统 内 部 的 订单 号 ,32个字符内、可包含字母,确保 在商户系 统唯一,详细说明 见 8.3节第四项总金额total_fee是Int订单总金额,单位为分,不能带小数点终端 IPspbill_create_ip是String(16)订单生成的机器 IP交易起始时间time_start否String(14)订 单 生 成 时 间 , 格 式 为yyyyMMddHHmmss,如 2009 年 12 月 25 日 9 点 10 分 10 秒表 示为 20091225091010。时区为 GMT+8 beijing。该时间取自商户服务器交易结束时间time_expire否String(14
23、)订 单 失 效 时 间 , 格 式 为yyyyMMddHHmmss,如 2009 年 12 月 27 日 9 点 10 分 10 秒表 示为 20091227091010。时区为 GMT+8 beijing。该时间取 自商户服务器商品标记goods_tag否String(32)商品标记,该字段不能随便填,不使用请填空,使用说 明详见第 5 节通知地址notify_url是String(256)接收微信支付成功通知交易类型trade_type是String(16)JSAPI、NATIVE、APP用户标识openid否String(128)用户在商户 appid 下的唯一标识,trade_typ
24、e 为 JSAPI 时,此参数必传,获取方式 见表头说明。商品 IDproduct_id否String(32)只 在 trade_type 为 NATIVE时需要填写。此 id 为二维码 中包含的商品 ID,商户自行 维护。返回参数:字段名变量名必填类型说明返回状态码return_code是String(16)此字段是通信标识,非交易标 识 , 交 易 是 否 成 功 需 要 查 看 result_code 来判断详见 第 6 节返回信息return_msg否String(128)返回信息,如非空,为错误原因 签名失败参数格式校验错误微信侧超时以下字段在 return_code 为 SUCCE
25、SS 的时候有返回公众账号 IDappid是String(32)微信分配的公众账号 ID商户号mch_id是String(32)微信支付分配的商户号子商户号sub_mch_id否String(32)微信支付分配的子商户号,受理模式下必填设备号device_info否String(32)微 信 支 付 分 配 的 终 端 设 备号,随机字符串nonce_str是String(32)随机字符串,不长于32 位签名sign是String(32)签名,详细签名方法见 3.2 节业务结果result_code是String(16)SUCCESS/FAIL错误代码err_code否String(32)列表
26、第7 节错误代码描述err_code_des否String(128)结果信息描述以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回交易类型trade_type是String(16)JSAPI、NATIVE、APP预支付 IDprepay_id是String(64)微信生成的预支付 ID,用于后续接口调用中使用二维码链接code_url否String(64)trade_type 为 NATIVE 是 有返回,此参数可直接生成二 维码展示出来进行扫码支付请求示例:<xml><appid>wxd00000000000000f&l
27、t;/appid><trade_type>NATIVE</trade_type><body><!CDATAtest></body><device_info>123</device_info><mch_id>10000001</mch_id><nonce_str>960f228109051b9969f76c82bde183ac</nonce_str><out_trade_no>1400755861</out_trade_no><s
28、pbill_create_ip></spbill_create_ip><total_fee>1</total_fee><product_id>100</product_id><sign>0B28FE46B0E12E4692CA950D67CECDE5</sign><zq_appid>wxd88888888888888f</zq_appid><zq_mchid>10000002</zq_mchid><zq_sign>7807849
29、8E19F1E74A489AB6428A521AD</zq_sign></xml>返回示例:<xml><return_code>SUCCESS</return_code><return_msg>OK</return_msg><appid>wx2421b1c4370ec43b</appid><mch_id>10000100</mch_id><device_info>1000</device_info><nonce_str>LM1B
30、bp0WoDV5jqpP</nonce_str><sign>1DE267795ECCC5BFB90DDCA91DBBF107</sign><result_code>SUCCESS</result_code><prepay_id>wx20140718112216156db45f6d0493886204</prepay_id><trade_type>NATIVE</trade_type><zq_appid>wxd88888888888888f</zq_appid>&l
31、t;zq_mchid>10000002</zq_mchid><zq_sign>C380BEC2BFD727A4B6845133519F3AD6</zq_sign></xml>4.2.通用通知接口通知 URL 是 4.1 节中提交的参数 notify_url,支付完成后,结算中心会把相关支付和用户信息发送到该 URL,第三方受理机构需接收该通知并验签,验签通过才可做下一步操作。对后台通知交互时,如果结算中心收到第三方受理机构的应答不是成功或超时,结算中心认为通知失败,中心会通过一定的策略(如 30 分钟共 8 次)定期重新发起通知,尽可能提高
32、通知的成功率, 但中心不保证通知最终能成功。由于存在重新发送后台通知的情况,因此同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。推荐的做法是,当收到通知进行处理时,首先检查对应业务数据的状态,判断该通知是 否已经处理过,如果没有处理过再进行处理,如果处理过直接返回结果成功。在对业务数据 进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。通知参数:字段名变量名必填类型说明返回状态码return_code是String(16)此字段是通信标识,非交易标 识 , 交 易 是 否 成 功 需 要 查 看 result_code 来判断详见 第 6
33、节返回信息return_msg否String(128)返回信息,如非空,为错误原因 签名失败参数格式校验错误以下字段在 return_code 为 SUCCESS 的时候有返回公众账号 IDappid是String(32)微信分配的公众账号 ID商户号mch_id是String(32)微信支付分配的商户号子商户号sub_mch_id否String(32)微信支付分配的子商户号,受理模式下必填设备号device_info否String(32)微 信 支 付 分 配 的 终 端 设 备号,随机字符串nonce_str是String(32)随机字符串,不长于 32 位签名sign是String(32
34、)签名,详细签名方法见 3.2 节业务结果result_code是String(16)SUCCESS/FAIL错误代码err_code否String(32)错误码见第 7 节错误代码描述err_code_des否String(128)结果信息描述以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回用户标识openid是String(128)用户在商户 appid 下的唯一标识是否关注公众账号is_subscribe是String(1)用户是否关注公众账号,Y-关注,N-未关注,仅在公众 账号类型支付有效交易类型trade_type是String(1
35、6)JSAPI、NATIVE、MICROPAY、APP付款银行bank_type是String(16)银行类型,采用字符串类型的银行标识总金额total_fee是Int订单总金额,单位为分现金券金额coupon_fee否Int现金券支付金额<=订单总金额,订单总金额-现金券金额 为现金支付金额货币种类fee_type否String(8)货币类型,符合 ISO 4217 标准的三位字母代码,默认人 民币:CNY微信支付订单号transaction_id是String(32)微信支付订单号商户订单号out_trade_no是String(32)商户系统的订单号,与请求一致。商家数据包atta
36、ch否String(128)商家数据包,原样返回支付完成时间time_end是String(14)支 付 完 成 时 间 , 格 式 为yyyyMMddhhmmss,如 2009 年 12 月 27 日 9 点 10 分 10 秒表 示为 20091227091010。时区为 GMT+8 beijing。该时间取 自微信支付服务器商户处理后同步返回给中心参数:字段名变量名必填类型说明返回状态码return_code是String(16)SUCCESS/FAILSUCCESS 表示商户接收通知 成功并校验成功返回信息return_msg否String(128)返回信息,如非空,为错误原因 签名失
37、败参数格式校验错误4.3.订单查询接口接口链接:待定该接口提供所有微信支付订单的查询,当支付通知处理异常或丢失的情况,商户可以通过该接口查询订单支付状态。 请求参数:字段名变量名必填类型说明公众账号 IDappid是String(32)微信分配的公众账号 ID商户号mch_id是String(32)微信支付分配的商户号子商户号sub_mch_id否String(32)微信支付分配的子商户号,受理模式下必填微信订单号transaction_id否String(32)微信的订单号,优先使用商户订单号out_trade_no是String(32)商户系统内部的订单号,transaction_id、o
38、ut_trade_no 二 选一,如果同时存在优先级: transaction_id> out_trade_no随机字符串nonce_str是String(32)随机字符串,不长于 32 位签名sign是String(32)签名,详细签名方法见 3.2节同步返回结果:字段名变量名必填类型说明返回状态码return_code是String(16)此字段是通信标识,非交易标 识 , 交 易 是 否 成 功 需 要 查 看 result_code 来判断详见 第 6 节返回信息return_msg否String(128)返回信息,如非空,为错误原因 签名失败参数格式校验错误微信侧超时以下字段在
39、 return_code 为 SUCCESS 的时候有返回公众账号 IDappid是String(32)微信分配的公众账号 ID商户号mch_id是String(32)微信支付分配的商户号子商户号sub_mch_id否String(32)微信支付分配的子商户号,受理模式下必填随机字符串nonce_str是String(32)随机字符串,不长于 32 位签名sign是String(32)签名,详细签名方法见 3.2 节业务结果result_code是String(16)SUCCESS/FAIL错误代码err_code否String(32)错误码见第 7 节错误代码描述err_code_des否S
40、tring(128)结果信息描述以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回交易状态trade_state是String(32)SUCCESS支付成功REFUND转入退款 NOTPAY未支付 CLOSED已关闭 REVOKED已撤销 USERPAYING-用户支付中NOPAY-未支付(输入密码或 确认支付超时)PAYERROR- 支 付 失 败 ( 其 他 原因,如银行返回失败)以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回设备号device_info否String(32)微 信 支 付
41、分 配 的 终 端 设 备号,用户标识openid是String(128)用户在商户 appid 下的唯一标识是否关注公众账号is_subscribe是String(1)用户是否关注公众账号,Y-关注,N-未关注,仅在公众 账号类型支付有效微信公众号支付接口文档 (结算中心-受理机构)V0.0交易类型trade_type是String(16)JSAPI、NATIVE、MICROPAY、APP付款银行bank_type是String(16)银行类型,采用字符串类型的银行标识总金额total_fee是Int订单总金额,单位为分现金券金额coupon_fee否Int现金券支付金额<=订单总金额
42、,订单总金额-现金券金额 为现金支付金额货币种类fee_type否String(8)货币类型,符合 ISO 4217 标准的三位字母代码,默认人 民币:CNY微信支付订单号transaction_id否String(32)微信支付订单号商户订单号out_trade_no否String(32)商户系统的订单号,与请求一致。商家数据包attach否String(128)商家数据包,原样返回支付完成时间time_end是String(14)支 付 完 成 时 间 , 格 式 为yyyyMMddhhmmss,如 2009 年 12 月 27 日 9 点 10 分 10 秒表 示为 2009122709
43、1010。时区为 GMT+8 beijing。该时间取 自微信支付服务器4.7 关闭订单接口接口链接:待定当订单支付失败,调用关单接口后用新订单号重新发起支付,如果关单失败,返回已完成支付请按正常支付处理。如果出现银行掉单,调用关单成功后,微信后台会主动发起退款。 请求参数:字段名变量名必填类型说明公众账号 IDappid是String(32)微信分配的公众账号 ID商户号mch_id是String(32)微信支付分配的商户号子商户号sub_mch_id否String(32)微信支付分配的子商户号,受理模式下必填商户订单号out_trade_no是String(32)商户系统内部的订单号随机字
44、符串nonce_str是String(32)随机字符串,不长于 32 位签名sign是String(32)签名,详细签名方法见 3.2节同步返回结果:字段名变量名必填类型说明返回状态码return_code是String(16)此字段是通信标识,非交易标 识 , 交 易 是 否 成 功 需 要 查 看 result_code 来判断详见 第 6 节返回信息return_msg否String(128)返回信息,如非空,为错误原因 签名失败参数格式校验错误微信侧超时以下字段在 return_code 为 SUCCESS 的时候有返回公众账号 IDappid是String(32)微信分配的公众账号
45、ID商户号mch_id是String(32)微信支付分配的商户号子商户号sub_mch_id否String(32)微信支付分配的子商户号,受理模式下必填随机字符串nonce_str是String(32)随机字符串,不长于 32 位签名sign是String(32)签名,详细签名方法见 3.2 节业务结果result_code是String(16)SUCCESS/FAILSUCCESS 表示关单成功,此笔 订单不能再发起支付;FAIL 其 它 表 示 关 单 接 口 异 常,可再次发起关单操作错误代码err_code否String(32)错误列表详见 第7 节错误代码描述err_code_des
46、否String(128)结果信息描述4.8.退款申请接口接口链接:待定注意:1.交易时间超过 1 年的订单无法提交退款;2.支持部分退款,部分退需要设置相同的订单号和不同的out_refund_no。一笔退款失败后重新提交,要采用原来的out_refund_no。总退款金额不能超过用户实际支付金额。请求参数:字段名变量名必填类型说明公众账号 IDappid是String(32)微信分配的公众账号 ID商户号mch_id是String(32)微信支付分配的商户号子商户号sub_mch_id否String(32)微信支付分配的子商户号,受理模式下必填设备号device_info否String(32
47、)微信支付分配的终端设备号,与下单一致随机字符串nonce_str是String(32)随机字符串,不长于 32 位签名sign是String(32)签名,详细签名方法见 3.2节微信订单号transaction_id否String(28)微信订单号商户订单号out_trade_no是String(32)商户系统内部的订单号,transaction_id、 out_trade_no 二选一,如果同 时存在优先级: transaction_id> out_trade_no商户退款单号out_refund_no是String(32)商户系统内部的退款单号,商户系统内部唯一,同一退款单号多次请
48、求只退一笔总金额total_fee是Int订单总金额,单位为分退款金额refund_fee是Int退款总金额,单位为分,可以做部分退款操作员op_user_id是String(32)操作员帐号, 默认为商户号结算中心签名sign_szfs是String(512)详细签名方法见3.3节退款返回结果:字段名变量名必填类型说明返回状态码return_code是String(16)此字段是通信标识,非交易标 识 , 交 易 是 否 成 功 需 要 查 看 result_code 来判断详见 第 6 节返回信息return_msg否String(128)返回信息,如非空,为错误原因 签名失败参数格式校验
49、错误微信侧超时原订单不存在头寸不足以下字段在 return_code 为 SUCCESS 的时候有返回业务结果result_code是String(16)SUCCESS/FAILSUCCESS 退款申请接收成功, 结果通过退款查询接口查询 FAIL错误代码err_code否String(32)错误码详见第 7节错误代码描述err_code_des否String(128)结果信息描述公众账号 IDappid是String(32)微信分配的公众账号 ID商户号mch_id是String(32)微信支付分配的商户号子商户号sub_mch_id否String(32)微信支付分配的子商户号,受理模式下必
50、填设备号device_info否String(32)微 信 支 付 分 配 的 终 端 设 备号,与下单一致随机字符串nonce_str是String(32)随机字符串,不长于 32 位签名sign是String(32)签名,详细签名方法见 3.2 节微信订单号transaction_id是String(28)微信订单号商户订单号out_trade_no是String(32)商户系统内部的订单号商户退款单号out_refund_no是String(32)商户退款单号微信退款单号refund_id是String(28)微信退款单号退款渠道refund_channel否String(16)ORIG
51、INAL原路退款,默认BALANCE退回到余额退款金额refund_fee是Int退款总金额,单位为分,可以做部分退款现金券退款金额coupon_refund_fe e否Int现 金 券 退 款 金 额 <= 退 款 金额,退款金额-现金券退款金 额为现金4.9.退款查询接口接口链接:待定提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款20 分钟内到账,银行卡支付的退款 3 个工作日后重新查询退款状态。 请求参数:字段名变量名必填类型说明公众账号 IDappid是String(32)微信分配的公众账号 ID商户号mch_id是String(32)微信支付分配的商户号子商户号sub_mch_id否String(32)微信支付分配的子商户号,受理模式下必填设备号device_info否String(32)微信支付分配的终端设备号随机字符串nonce_str是String(32)随机字符串,不长于 32 位签名si
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 猪场生物安全教育
- 民事赔偿合同范本
- 相邻土地共建合同
- 药品销售企业用工合同范本
- 股权转让居间合同协议
- 汽车零部件仓库租赁合同范本
- 中小企业融资担保合同
- 网络文明与安全教育主题班会
- 股权转让合同协议范例
- 建筑工程施工内部承包合同范本
- 安徽省蚌埠市2025届高三第二次教学质量检查考试英语试卷(含答案)
- 金氏五行升降中医方集
- 小儿常见皮疹识别与护理
- 补充协议-房屋租赁承租方变更
- 2025年山西经贸职业学院单招职业技能考试题库新版
- 某连锁药店公司发展战略
- 2025年河南工业和信息化职业学院单招职业技能测试题库及答案1套
- 跌倒护理RCA案例汇报
- 大学生创新创业知能训练与指导智慧树知到期末考试答案章节答案2024年西北农林科技大学
- 办公室口号大全
- 办公建筑设计规范2019
评论
0/150
提交评论