电脑文档微信文档发错了怎么办发至手机缺字错行怎么

手机丢了,微信怎么办?教你找回微信以及聊天记录
有道是月有阴晴圆缺,天有不测风云。今天想和大家聊一个你们都不想面对的问题。
希望今天和大家聊得小Tips 大家永远都用不上,因为今天想和大家聊聊的是如果手机丢了如何找回微信以及聊天记录。
毕竟微信里存在太多重要的个人信息,万一被不怀好意的路人甲捡走了呢~
首先大家必须明确一点手机丢了,微信并没有丢。即使你的微信绑定了你的手机号。因为微信自配了独有的帐号保护体系,用户可以通过这个体系找回自己的微信帐号。
那我们需要做点什么呢?
第一步:先用其他手机试着登陆你的微信
如果能登陆,事情就好办了,说明你的微信号尚未被盗,请跳转第 2 步——解绑手机号
如果不能登陆,别纠结了,赶紧跳到第 4 步进入申诉环节吧。
第二步: 解绑手机号
点击「我」-「设置」-「账号与安全」-「手机号」-右上角的三点,即可选择解绑手机号
这样操作后,别人就不能通过你的手机登录到你的微信了。
第三步:补卡然后重新绑定手机号
补办手机卡后,就可以重新绑定手机号了,路径和解除时一样,点击「我」-「设置」-「账号与安全」-「手机号」,进行绑定操作,这样微信账号就一切如常啦。
第四步:如果还是无法无法登录微信,那就要求助微信安全中心了
如果你通过 QQ、邮箱等途径都无法顺利登陆,那就抓住这根牢固的救命稻草——微信安全中心。
申诉找回账号密码
在微信登录界面,点击「更多」-「微信安全中心」-「找回账号密码」,就能进行申诉请求了。
可是手头上一时没有手机怎么办?
(敲黑板)别慌,电脑端也能进入微信安全中心,
但是有些同学的微信里最重要的部分是——聊天记录。
今天再教大家一些关于备份微信聊天记录的小知识
首先我们现在PC端打开微信,也就是电脑版的微信。
然后确保将两台设备连接到同一个 WiFi 环境下,设备将通过 WiFi 进行聊天记录备份,这也意味着基本不耗费流量。
在 Windows 微信上左下角的「设置-聊天备份」界面可以看到微信提供了三个选项:「备份到电脑」、「恢复到手机」、「管理备份」。
点击备份之后,在手机微信上进行确认即可,此时默认备份全部聊天记录,也可以选择只备份一部分聊天记录。这样就能把聊天记录上传到电脑上。
最后只要恢复备份到手机,你的聊天记录就回来了。
不过缺点就是需要经常记得备份聊天记录,毕竟有备无患。
今天告诉大家的祝你们永远用不上~
每天分享一些我不说,你可能永远都不知道的好应用,当然也有手机的使用技巧,所以赶紧关注微信公众号:手瘾瘾字千万别打错了哦!!
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
一个还不错的科技类自媒体
推广位出售,联系微信:chaping404
今日搜狐热点当前位置: >
> 2017微信加人限制规则_微信一天最多能加多少好友
2017微信加人限制规则_微信一天最多能加多少好友
  微信一天最多能加多少好友呢?本文小编为您带来2017微信加人限制规则 微信一天最多能加多少好友,希望能够帮助到您。
软件推荐:&&&&&&  2017微信加人限制规则:  96-1F.jpg  附近的人:15个每次,每天最多3次,每次之间最少间隔×分钟;摇一摇:15个每次,每天最多3次,每次之间最少间隔×分钟;搜索微信号:6个每次,每天最多5次,每次之间最少间隔×分钟;手机通讯录:8个每次,每天最多6次,每次之间最少间隔×分钟;漂流瓶:5个每次,每天最多3次,每次之间最少间隔×分钟;微信群:最多每天30~50个  主动加好友:每天每个微信号,最多30个;  被动加好友:每天每个微信号,最多180个;  
最新推荐文章
32.40MB/简体中文
腾讯视频播放器原名QQ直播,是一款由腾讯开发的用于通过互联网进行大规模视频直播的软...微信上的文件怎么传到电脑上_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
微信上的文件怎么传到电脑上
我有更好的答案
语音、位置信息:使用Evernote1。方法一:直接发送到自己的qq邮箱,便于转发等。【总结】随着微信日益走进我们的生活,开始了更多的阅读。(网址,完成操作。优点、登陆微信网页版,长按网页文章会显示出编辑选项,选择“复制链接”、授权成功后。方法二、语音内容,你能快速在手机与电脑上传输文件(互通)。【温馨提示】微信网页版的聊天信息会同步至手机.qq.com/" target="_blank">https://wx,无法保存。方法三:邮箱助手1、在您的微信通信录中,找出“qq邮箱提醒”插件,出现“复制”“转发”“删除”“公众号”选项框后.qq.com/)用户使用手机扫描网页上的二维码,调出“印象笔记”图标,进行保存,输入印象笔记账号,授权,即可登录微信网页版。填写好地址主题等信息。4、点击选项“传送”。2,点击“公众号”选项、视频等内容时,点击印象笔记、回到邮箱编辑界面,选择“粘贴”,将网页文章链接复制过来。3,手机每次输入内容即可看到印象笔记回复“保存成功”;另一种方式,在别处长按需要保存的内容。2、在微信上找出“文件传输助手”,点击文件传输助手功能,这个时候,如何把微信内容保存到电脑上进行操作是大家需要了解的,小编总结了以下三种方法,相信你可以从中找到适合自己的便捷操作:<a href="https://wx、在微信手机版添加“我的印象笔记”,微信账号为“myyxbj”,点击授权链接。2我们经常在手机微信上看到非常不错的文章、文字或者图片,当你需要传输文字、图片、分享和交流,输入文字、图片,如果没有请在“设置”-“功能”-“QQ邮箱提醒”,选择启用、直接输入你的文字、图片等信息;若想分享别处链接,在手机和pc之间的互通将成为一个刚性的工具类需求。除此之外,建议将手机接入WiFi环境以节省流量。此方法的优点是任何东西都可以传输:使用微信文件传输助手1,喜欢拿来分享、交流。缺点:无法保存纯文字。在朋友圈分享的纯文字和与朋友直发的纯文字
采纳率:91%
你好有没有试过用网页版的微信接收pdf文件呢?用你的手机微信直接发送到电脑网页版微信上,或者如果能在QQ上找到直接在QQ上就可以传到电脑上登陆的QQ上了。
你好,用微信传文件到电脑上的方法如下:1、打开微信,打开后切换打微信界面。2、位于右上角有个相当于魔法棒的按钮,点击登录网页版。3、在IE浏览器上地址栏输入回车,然后就会出现一个二维码。4、然后用手机上的微信开始扫描二维码,然后根据提示操作,然后就可以传文件了。
微信电脑版就可以哟
分享到手机QQ,或者分享到QQ空间。就到电脑上查看了。
其他2条回答
为您推荐:
其他类似问题
您可能关注的内容
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;当前位置: >>
微信支付API文档120(受理)
1. 阅读对象本文阅读对象:商户系统(在线购物平台、人工收银系统、自动化智能收银系统或其他)集成微信支付涉 及 的技术架构师,研发工程师,测试工程师,系统运维工程师。2. 术语1. 1) 支付模式 被扫支付 被扫支付是用户展示微信上“我的刷卡条码/二维码”给商户系统扫描后直接完成支付的模式。主要应用线 下面对面收银的场景。 2) 扫码支付 扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式 适用于 PC 网站支付、实体店单品或订单支付、媒体广告支付等场景。 3) 微信内网页支付微信内网页支付是用户在微信中打开商户的 H5 页面,商户在 H5 页面通过调用微信支付提供的 JSAPI 接 口调起微信支付模块完成支付。应用场景有: ? ? ? 4) 用户在微信公众账号内进入商家公众号,打开某个主页面,完成支付; 用户的好友在朋友圈、聊天窗口等分享商家页面连接,用户点击链接打开商家页面,完成支付 将商户页面转换成二维码,用户扫描二维码后在微信浏览器中打开页面后完成支付APP 支付APP 支付又称移动端支付, 是商户通过在移动端应用 APP 中集成开放 SDK 调起微信支付模块完成支付的 模式。 5) 普通浏览器网页支付模式 正在建设中,敬请期待。2. 1)名词解释 微信公众平台 微信公众平台是微信公众账号申请入口和管理后台。商户可以在公众平台提交基本资料、业务资料、财务 资料申请开通微信支付功能。 平台入口:http://mp.。 2) 微信开放平台 微信开放平台是商户 APP 接入微信支付开放接口的申请入口,通过此平台可申请微信 APP 支付。 平台 入口:http://open.。 3) 微信商户平台微信商户平台是微信支付相关的商户功能集合,包括参数配置、支付数据查询与统计、在线退款、代金券 或 立减优惠运营等功能。 平台入口:http://pay.。 4) 微信支付系统 API 接口、后台业务处理系统、账务系统、回调通知等系统微信支付系统是指完成微信支付流程中涉及的 的总称。 5) 商户收银系统商户收银系统即商户的 POS 收银系统,是录入商品信息、生成订单、客户支付、打印小票等功能的系统。 接入微信支付功能主要涉及到 POS 软件系统的开发和测试, 所以在下文中提到的商户收银系统特指 POS 收银 软件系统。 6) 商户后台系统 商户后台系统是商户后台处理业务系统的总称,例如:商户网站、收银系统、进销存系统、发货系统、客 服系统等。 7) 扫码设备一种输入设备,主要用于商户系统快速读取媒介上的图形编码信息。按读取码的类型不同,可分为条码扫 码 设备和二维码扫码设备。按读取物理原理可分为红外扫码设备、激光扫码设备。 8) 商户证书商户证书是微信提供的二进制文件,商户系统发起与微信支付后台服务器通信请求的时候,作为微信支付 后 台识别商户真实身份的凭据。 9) 签名 商户后台和微信支付后台根据相同的密钥和算法生成一个结果,用于校验双方身份合法性。签名的算法由 微信支付制定并公开,常用的签名方式有:MD5、SHA1、SHA256、HMAC等。10) JSAPI 网页支付 即前文说的微信内网页支付,可在微信公众号、朋友圈、聊天会话中点击页面链接,或者用 微信“扫一扫” 扫描页面地址二维码在微信中打开商户 HTML5 页面,在页面内下单完成支付。 11) Native 原生支付 Native 原生支付属于扫码支付,商户根据微信支付协议格式生成的二维码,用户通过微信“扫一扫”扫描 二维码后即进入付款确认界面,输入密码即完成支付。 12) 支付密码 支付密码是用户开通微信支付时单独设置的密码,用于确认支付完成交易授权。该密码与微信登录密码不 同。 13) Openid 用户在公众号内的身份标识,不同公众号拥有不同的 openid。商户后台系统通过登录授权、支付通知、 查 询订单等 API 可获取到用户的 openid。主要用途是判断同一个用户,对用户发送客服消息、模版消息等。3. 支付账户商户在微信公众平台(申请扫码原生支付、微信内网页支付)或开放平台(申请 APP 支付)按照相应提示,申 请相应微信支付模式。 微信支付工作人员审核资料无误后开通相应的微信支付权限。 微信支付申请审核通过后, 商 户在申请资料填写的邮箱中收取到由微信支付小助手发送的邮件,此邮件包含开发时需要使用的支付账户信 息,见图 3.1 所示。 图 3.1 微信审核通过邮件模板 邮件中的账户参数与接口 API 参数对应关系见表格 3.1: 表 3.1:账户参数说明邮件中参数 API 参数名 称 APPID appid appid 是微信公众账号或开放平台 APP 的唯一标识,在公众平台申请公众账号或 者在开放平台申请 APP 账号后, 微信会自动分配对应的 appid, 用于标识该应用。 商户的微信支付审核通过邮件中也会包含该字段值。 微信支付商户号 API 密钥 mch_id key 商户申请微信支付后,由微信支付分配的商户收款账号。 交易过程生成签名的密钥,仅保留在商户系统和微信支付后台,不会在网络中传 播。商户妥善保管该 Key,切勿在网络中传输,不能在其他客户端中存储,保证 key 不会被泄漏。商户可根据邮件提示登录微信商户平台进行设置。 Appsecret secret AppSecret 是 APPID 对应的接口密码,用于获取接口调用凭证 access_token 时 使用。在微信支付中,先通过 OAuth2.0 接口获取用户 openid,此 openid 用于微 信内网页支付模式下单接口使用。在开发模式中获取 AppSecret(成为开发者且 帐号没有异常状态)。 详细说明4. 接口规则1. 协议规则 商户接入微信支付,调用 API 必须遵循以下规则: 表 4.1:接口规则传输方式 提交方式 数据格式 字符编码 签名算法 签名要求 证书要求 判断逻辑 为保证交易安全性,采用 HTTPS 传输 采用 POST 方法提交 提交和返回数据都为 XML 格式,根节点名为 xml 统一采用 UTF-8 字符编码 MD5,后续会兼容 SHA1、SHA256、HMAC 等。 请求和接收数据均需要校验签名,签名的详细方法请参考下文第 4.3.1 节 调用申请退款、撤销订单接口需要商户证书 先判断协议字段返回,再判断业务返回,最后判断交易状态 2. 1)参数规定 交易金额交易金额默认为人民币交易,接口中参数支付金额单位为【分】,参数值不能带小数。对账单中的交易金 额 单位为【元】。 外币交易的支付金额精确到币种的最小单位,参数值不能带小数点。 2) 货币类型 货币类型的取值列表: CNY:人民币 GBP: 英镑 HKD:港币 USD:美元 JPY:日元 CAD:加 拿大元 AUD:澳大利 亚元 EUR:欧元 注:退款币种与支付币种必须一致 3) 时间 标准北京时间,时区为东八区;如果商户的系统时间为非标准北京时间。参数值必须根据商户系统所在 时 区先换算成标准北京时间, 例如商户所在地为 0 时区的伦敦,当地时间为 2014 年 11 月 11 日 0 时 0 分 0 秒, 换算成北京时间为 2014 年 11 月 11 日 8 时 0 分 0 秒。 4) 时间戳标准北京时间,时区为东八区,自 1970 年 1 月 1 日 0 点 0 分 0 秒以来的秒数。注意:部分系统取到的值 为毫秒级,需要转换成秒(10 位数字)。 5) 商户订单号 商户支付的订单号由商户自定义生成,微信支付要求商户订单号保持唯一性(建议根据当前系统时间加随 机序列来生成订单号)。 重新发起一笔支付要使用原订单号,避免重复支付; 已支付过或已调用关单、撤销(请 见后文的 API 列表)的订单号不能重新发起支付。 6) 交易类型JSAPI:即微信网页内支付 NATIVE:即扫码支付 APP: 即 APP 支付 MICROPAY:即被扫支付 WAP:非微信手机浏览器支付3. 1安全规范 签名算法 签名生成的通用 步骤如下:第一步,设所有发送或者接收到的数据为集合 M,将集合 M 内非空参数值的参数按照参数名称的 ASCII 码从小到大排序 (字典序) , 使用 URL 键值对的格式 (即 key1=value1&key2=value2…) 拼接成字符串 stringA。 特别注意以下重要规则: 》 》 》 》 参数名称 ASCII 码从小到大排序(字典序); 如果参数的值为空不参与签名; 参数名称区分大小写; 验证调用返回或微信主动通知签名时,传送的 sign 参数不参与签名,将生成的签名与该 sign 值 作校验。 》 微信接口可能增加字段,验证签名时必须支持增加的扩展字段第二步,在 stringA 最后拼接上 key=(API 密钥的值)得到 stringSignTemp 字符串,并对 stringSignTemp 进行 MD5 运算,再将得到的字符串所有字符转换为大写,得到 sign 值 signValue。 举例 : 假设传送的参数如下: appid: mch_id: wxd930ea5d5a258f4f device_info: 1000 body: nonce_str: test ibuaiVcKdpRxkhJA第一步:对参数按照 key=value 的格式,并按照参数名称 ASCII 字典序排序如下: stringA=&appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_id=&nonce_str=ib uaiVcKdpRxkhJA&; 第二步:拼接 API 密钥: stringSignTemp=&stringA&key=c09247ec02edce69f6a2d& sign=MD5(stringSignTemp).toUpperCase()=&9A0AA9CF3B7& 最终得到最终发送的数据:&xml& &appid&wxd930ea5d5a258f4f&/appid& &mch_id&&/mch_id& &device_info&1000&device_info& &body&test&/body& &nonce_str&ibuaiVcKdpRxkhJA&/nonce_str&&sign&9A0AA9CF3B7&/sign&&xml&微信提供相关接口在线签名验证工具:点击进入。 2 生成随机数算法微信支付 API 接口协议中包含字段 nonce_str,主要保证签名不可预测。我们推荐生成随机数算法如下: 调用随机数函数生成,将得到的值转换为字符串。 3 1) 商户证书 获取商户证书 微信支付接口中,涉及资金回滚的接口会使用到商户证书,包括退款、撤销接口。商家在申请微信支付成 功后,收到的相应邮件通知中,附件会包含接口需要用到的证书文件,有四个证书文件,分别说明如下。 表 4.2:证书文件说明证书附件 pkcs12 格式 (apiclient_cert.p12) 描述 包含了私钥信息的证书文 件,为 p12(pfx)格式,由微 信支付签发给您用来标识和 界定您的身份 证书 pem 格式 从 apiclient_cert.p12 中导出 式,请妥善保管不要泄漏和 被他人复制 证书密钥 pem 格式 从 apiclient_cert.p12 中导出 式 PHP 等不能直接使用 p12 文 件,而需要使用 pem,为了 方便您使用,已为您直接提 供 PHP 等不能直接使用 p12 文 件,而需要使用 pem,为了 方便您使用,已为您直接提 供 CA 证书 (rootca.pem) 微信支付 api 服务器上也部 署了证明微信支付身份的服 务器证书,您在使用 api 进 行调用时也需要验证所调用 服务器及域名的真实性 该文件为签署微信支付证书 的权威机构的根证书,可以 用来验证微信支付服务器证 书的真实性 使用场景 撤销、退款申请 API 中调用 备注 windows 上可以直接双击导入系统, 导入过程中会提示输入证书密码,证 书密码默认为您的商户 ID(如: ) 您也可以使用 openssl 命令来自己导 出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem 您也可以使用 openssl 命令来自己导 出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem 部分工具已经内置了若干权威机构的 根证书,无需引用该证书也可以正常 进行验证,这里提供给您在未内置所 必须根证书的环境中载入使用(apiclient_cert.pem) 证书部分的文件, 为 pem 格(apiclient_key.pem) 密钥部分的文件, 为 pem 格2)使用商户证书 。 。 。apiclient_cert.p12 是商户证书文件,除 PHP 外的开发均使用此证书文件。 商户如果使用.NET 环境开发,请确认 Framework 版本大于 2.0,必须在操作系统上双击安装证书 apiclient_cert.p12 后才能被正常调用。 商户证书调用或安装都需要使用到密码,该密码的值为微信商户号(mch_id)◆ PHP 开发环境请使用商户证书文件 apiclient_cert.pem 和 apiclient_key.pem ,rootca.pem 是 CA 证 书。 各版本的调用实例请参考微信支付提供的 3) 商户证书安全 Demo。证书文件不能放在 web 服务器虚拟目录,应放在有访问权限控制的目录中,防止被他人下载。商户服务器 要做好病毒和木马防护工作,不被非法侵入者窃取证书文件。 4 商户回调 API 安全在普通的网络环境下,HTTP 请求存在 DNS 劫持、运营商插入广告、数据被窃取,正常数据被修改等安 全风险。商户回调接口使用 HTTPS 协议可以保证数据传输的安全性。所以微信支付建议商户提供给微信支付 的各种回调采用 HTTPS 协议。请参考:HTTPS 搭建指南。5. 被扫支付模式开发指引1. 场景介绍 步骤 1:用户选择被扫支付付款并打开微信,进入“我”-&“钱包”-&“刷卡”条码界面(如图 5.1 所示) ; 步骤 步骤 2:收银员在商户系统操作生成支付订单,用户确认支付金额; 3:商户收银员用扫码设备扫描用户的条码/二维码,商户收银系统提交支付;步骤 4:微信支付后台系统收到支付请求,根据验证密码规则判断是否验证用户的支付密码,不需要验证 密码的交易直接发起扣款,需要验证密码的交易会弹出密码输入框(如图 5.2 所示)。支付成功后微信端会弹 出成功页面(如图 5.3 所示),支付失败会弹出错误提示。 图 5.1 我的钱包刷卡界面图 5.2 输入密码,确认支付图 5.3 支付成功后页面提示2. ? ? ?支付验证密码规则 支付金额&300 元的交易需要验证用户支付密码;用户账号每天最多有 10 笔交易可以免密,超过后需要验证密码; 微信支付后台判断用户支付行为有异常情况,符合免密规则的交易也会要求验证密码;3.案例介绍 目前已上线被扫支付案例,商户可自行前往店 里实际体验。 便利店:711 便利店、国大 36524、好邻居 等 连锁药店:老百姓大药房、国大药房、海王星辰等 超 市:天虹等4.商户侧流程 根据商户具体的情况,被扫支付接入模式可分为:商户后台接入和门店接入;根据用户是否需要输入支付 密码可分为:免密模式和验密模式。 1 接入模式-商户后台接入 该模式适合具备统一后台系统的商户。门店收银台与商户后台通信,商户后台系统负责与微信支付系统发 送交易请求和接收返回结果。 图 5.4 商户后台接入被扫支付 2 接入模式-门店接入 该模式适合门店收银台通过公网直接与微信后台通信的商户。门店收银台直接发起交易请求和处理返回结 果。商户可以根据实际需要,处理门店和商户后台系统之间的其它业务流程。图 5.5 门店接入被扫支付 3 免密支付流程 本节以商户后台接入模式说明支付流程,请参 看以下时序图: 图 5.6 被扫支付免密流程时序图 流程详细说明: 1) 2) 3) 4) 5) 6) 收银员在商户收银台生成支付订单,向用户展示支付金额; 用户打开微信客户端,点击“我的钱包”,选择“刷卡”,进入条码界面; 使用扫码设备读取用户手机屏幕上的条码; 扫码设备将读取的信息上传给门店收银台; 门店收银台得到支付信息后,向商户收银后台发起支付请求。 商户后台对门店收银台的支付请求进行处理,生成签名后调用【提交被扫支付 发起支付请求。 API】向微信支付系统7) 微信支付系统得到商户侧的支付请求之后会对请求进行验证,验证通过之后会对请求数据进行处理, 最后将处理后的支付结果返回给商户收银后台。如果支付成功,微信支付系统会将支付结果返回给商 户 ,同时把支付结果通知给用户(以短信、微信消息的形式通知)。 8) 9) 4商户收银后台对得到的支付结果进行签名验证和处理,再将支付结果返回给门店收银台。 收银员看到门店收银台的支付结果后给用户发货。验密支付流程场景交互与免密模式相同,不同的是在商户调用【提交被扫支付 API】发起支付请求之后,微信支付后台 提示用户输入密码确认支付,接口同步返回 USERPAYING 状态,商户系统再轮询调用查询订单接口来确认当 前用户是否已经支付成功。 以下时序图说明验密支付流程:图 5.7 被扫支付验证密码流程时序图 由于在商户收银后台向微信支付系统发起支付请求之前的流程是完全一样的,所以这里只介绍商户发起支 付 请求之后的逻辑。 1) 2) 3) 4) 5) 6) 7) 8) 商户门店生成订单后,收银台向后台系统发起支付请求。 后台调用微信支付【提交被扫支付 API】生成支付交易。微信支付系统对商户请求进行验证,验证通过后判断当前用户需要输入密码。 微信支付系统返回 USERPAYING 状态,商户后台系统将应答结果返回给商户门店收银台。微信支付系统通知用户微信客户端输入密码。 用户得到输入密码提示后,确认支付并输入密码。 完成密码输入,提交微信支付。 微信客户端在用户完成支付后提示微信支付后台系统返回的支付结果,而且微信支付系统会通过短 信 、微信消息给用户发送支付结果提醒。 商户收银台得到 USERPAYING 状态后,经过商户后台系统调用【查询订单 API】(详见公共 API) 查询实际支付结果。9)10) 如果支付结果仍为 USERPAYING,则每隔 5 秒循环调用【查询订单 API】判断实际支付结果,如果 用户取消支付或累计 30 秒用户都未支付,商户收银台退出查询流程后继续调用【撤销订单 API】撤 销支付交易。 5 异常处理 用户遇到支付异常,请按如 下说明处理 1) 用户微信端弹出系统错误提示框,用户可在交易列表查看交易情况,如果未找到订单,需要商户重新 发起支付交易;如果订单显示成功支付,商户收银系统再次调用【查询订单 API】查询实际支付结果; 用户微信端弹出支付失败提示,例如:余额不足,信用卡失效。需要重新发起支付; 当交易超时或支付交易失败,商户收银系统必须调用【撤销支付 易。 API】(详见公共 API),撤销此交2) 3)4)由于银行系统异常、用户余额不足、不支持用户卡种等原因使当前支付交易失败,商户收银系统应该 把 错误提示明确展示给收银员。 根据返回的错误码,判断是否需要撤销交易,具体详见 API 返回错误码列表5)5.提交被扫支付 API 应用场景 收银员使用扫码设备读取微信用户刷卡授权码以后,二维码或条码信息传送至商户收银台,由商户1收银台 或者商户后台调用该接口发起支付。 2接口地址 https://api.mch./pay/micropay3是否需要证书 不需要。4输入参数变量名 类型 必 填 示例值 描述名称公众账号 ID 商户号 子商户公 众账号 ID 子商户号appidString(32)是wx8888微信分配的公众账号 IDmch_id sub_appidString(32) String(32)是 否 微信分配的子商户公众账 号 ID微信支付分配的商户号 子商户公众账号 IDsub_mch_idString(32)是微信支付分配的子商户号, 子商户号 受理模式下必填设备号device_infoString(32)否764终端设备号(商户自定义,如门店编 号)随机字符 串 签名nonce_strString(32)是5K8264ILTKCH16CQ250 2SI8ZNMTM67VS随机字符串,不长于 32 位。推荐生 成算法详见第 4.3.2 节 签名,详见 4.3.1 节签名生成算法signString(32)是C380BEC2BFD727A4B68 AD6商品描述 商品详情 附加数据body detail attachString(127) String(8192) String(127)是 否 否Q 币购买订单支付 Ipad mini 自定义数据 16G 白色商品或支付单描述,展示给用户 传详细的商品列表 商户扩展字段,提交支付后在查询 API 和支付通知中原样返回商户订单 号out_trade_n oString(32)是68018商户系统内部的订单号,32 个字符 内、可包含字母, 其他说明见第 4.2 节商户订单号总金额total_feeInt是888订单总金额,单位为分,只能为整 数,详见第 4.2 节支付金额货币类型fee_typeString(16)否CNY符合 ISO 4217 标准的三位字母代 码,默认人民币:CNY,其他值列 表详见第 4.2 节货币类型终端 IPspbill_create _ipString(16)是8.8.8.8调用微信支付 API 的机器 IP交易起始 时间time_startString(14)否10订单生成时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 25 日 9 点 10 分 10 秒表示为 10。 其他详见第 4.2 节时间规则交易失效 时间time_expireString(14)否10订单失效时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 27 日 9 点 10 分 10 秒表示为 10。 其他详见第 4.2 节时间规则商品标记goods_tagString(32)否商品标记, 代金券或立减优惠 功 能的参数,说明详见第 10 节代金券或立减优惠授权码 auth_code String(128) 是 009406 扫码支付授权码,设备读取用户微 信中的条码或者二维码信息举例如下:&xml& &appid&wx0ec43b&/appid& &attach&订单额外描述&/attach& &auth_code&844649&/auth_code& &body&被扫支付测试&/body& &device_info&1000&/device_info& &goods_tag&&/goods_tag& &mch_id&&/mch_id& &nonce_str&8aaee146b1dee7cec9100add9b96cbe2&/nonce_str& &out_trade_no&&/out_trade_no& &spbill_create_ip&14.17.22.52&/spbill_create_ip& &time_expire&&/time_expire& &total_fee&1&/total_fee& &sign&C29DB7DB1FDC&/sign& &/xml& 注:参数值用 XML 转义即可,CDATA 标签用于说明数据不被 XML 解析器解析。5返回结果变量名 必 填 类型 示例值 描述字段名返回状态码return_code是String(16)SUCCESSSUCCESS/FAIL 此字段是通信标识,非交易标识,交易是否成功 需要查看 result_code 来判断 返回信息 return_msg 否 String(128) 签名失败 返回信息,如非空,为错误原因 签名失败 具体某个参数格式校 验错误当 return_code 为 SUCCESS 的时候,还会包括以下字段:字段名 变量名 必 填 公众账号 ID 商户号 子商户公 众账号 ID mch_id sub_appid 是 否 String(32) String(32)
oUpF8uJY5nl mGIikjDUkck vxtdoo 子商户号 sub_mch_id 是 String(32) oUpF8uJY5nl mGIikjDUkck vxtdoo 设备号 device_info 否 String(32)
5764 随机字符 串 nonce_str 是 String(32) Fsdfds1235df 231asdfg321 45gfdse 签名 sign 是 String(32) C380BEC2B FD727A4B68
AD6 业务结果 错误代码 result_code err_code 是 否 String(16) String(32) SUCCESS SYSTEMER ROR 错误描述 err_code_de s 否 String(128) 系统错误 结果信息描述 SUCCESS/FAIL 详细参见第 6 节错误列表 返回数据的签名,验证签名算法详见第 4.3.1 节 微信返回的随机字符串,不长于 32 位 返回提交的终端设备号, 子商户号 返回提交的商户号 子商户公众账号 ID appid 是 String(32) 微信分配的公众账号 ID 类型 示例值 描述当 return_code 和 result_code 都为 SUCCESS 的时,还会包括以下字段:字段名 变量名 必 类型 示例值 描述 填 用户标识 用户子标识 是否关注公 众账号 openid sub_openid is_subscribe 否 否 是 String(128) String(128) String(1) Y 用户标识 用户子标识 用户是否关注公众账号,仅在公众账号类型支付 有效,取值范围:Y 或 N Y-关注 N-未关注 是否关注子 公众账号 sub_is_subsc ribe 是 String(1) Y 用户是否关注子公众账号,仅在公众账号类型支 付有效,取值范围:Y 或 N Y-关注 N-未关注 交易类型 付款银行 货币类型 trade_type bank_type fee_type 是 是 否 String(16) String(16) String(16) MICROPAY CMC CNY 支付类型为 MICROPAY(即扫码支付) 银行类型,采用字符串类型的银行标识 符合 ISO 4217 标准的三位字母代码,默认人民 币:CNY,其他值列表详见第 4.2 节货币类型 总金额 现金支付货 币类型 现金支付金 额 total_fee cash_fee_typ e cash_fee 是 Int 是 否 Int String(16) 100 CNY 订单总金额,说明详见第 4.2 节支付金额 符合 ISO 4217 标准的三位字母代码,默认人民 币:CNY,其他值列表详见第 4.2 节货币类型 订单现金支付金额,说明详见第 4.2 节支付金额代金券或立 减优惠金额coupon_fee否Int100“代金券或立减优惠” 金额 &= 订单总金额, 订单总金额 - “ 代金券或立减优惠” 金额= 现金支 付金额微信支付订 单号transaction_i d是String(32)
368018微信支付订单号商户订单号out_trade_no是String(32)
368018商户系统的订单号,与请求一致。商家数据包 支付完成时 间attach time_end否 是String(128) String(14)商家数据包,原样返回 订单生成时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 25 日 9 点 10 分 10 秒表示为 10。其他详见第 3.2 节时间规则举例如下:&xml& &return_code&&![CDATA[SUCCESS]]&&/return_code& &return_msg&&![CDATA[OK]]&&/return_msg& &appid&&![CDATA[wx0ec43b]]&&/appid& &mch_id&&![CDATA[]]&&/mch_id& &device_info&&![CDATA[1000]]&&/device_info& &nonce_str&&![CDATA[GOp3TRyMXzbMlkun]]&&/nonce_str& &sign&&![CDATA[D6C76CB785F07992CDE0FD]]&&/sign& &result_code&&![CDATA[SUCCESS]]&&/result_code& &openid&&![CDATA[oUpF8uN95-Ptaags6E_roPHg7AG0]]&&/openid& &is_subscribe&&![CDATA[Y]]&&/is_subscribe& &trade_type&&![CDATA[MICROPAY]]&&/trade_type& &bank_type&&![CDATA[CCB_DEBIT]]&&/bank_type& &total_fee&1&/total_fee& &coupon_fee&0&/coupon_fee& &fee_type&&![CDATA[CNY]]&&/fee_type& &transaction_id&&![CDATA[0873]]&&/transaction_id& &out_trade_no&&![CDATA[]]&&/out_trade_no& &attach&&![CDATA[订单额外描述]]&&/attach& &time_end&&![CDATA[43]]&&/time_end& &/xml&6错误码描述 接口返回错误 原因 系统超时 解决方案 请立即调用被扫订单结果查询 API,查询 当前订单状态, 并根据订单的状态决定下 一步的操作。名称 SYSTEMERRORPARAM_ERROR参数错误请求参数未按指引 进行填写请根据接口返回的详细信息检查您的程 序. 请确认该订单号是否重复支付, 如果是新 单,请使用新订单号提交ORDERPAID订单已支付订单号重复NOAUTH商户无权限商户没有开通被扫 支付权限请开通商户号权限。 请联系产品或商务申 请 请收银员提示用户, 请用户在微信上刷新 条码,然后请收银员重新扫码。 直接将错误展示给收银员AUTHCODEEXPIR E二维码已过期,请用户在微 信上刷新后再试用户的条码已经过 期NOTENOUGH余额不足用户的零钱余额不 足请收银员提示用户更换当前支付的卡, 然 后请收银员重新扫码。 建议:商户系统返回给收银台的提示为 “用户余额不足.提示用户换卡支付” NOTSUPORTCARD 不支持卡类型 用户使用卡种不支 持当前支付形式 建议:商户系统返回给收银台的提示为 “该卡不支持当前支付, 提示用户换卡支 付或绑新卡支付” ORDERCLOSED BANKERROR 订单已关闭 银行系统异常 该订单已关闭 银行端超时 商户订单号异常,请重新下单支付 请立即调用被扫订单结果查询 API,查询 当前订单的不同状态,决定下一步的操 作。 USERPAYING 用户支付中,需要输入密码 该笔交易因为业务 规则要求,需要用 户输入支付密码。 AUTH_CODE_ERR OR AUTH_CODE_INVA LID XML_FORMAT_ER ROR ORDERREVERSED 订单已撤销 当前订单已经被撤 销 REQUIRE_POST_ METHOD SIGNERROR 签名错误 请使用 post 方法 未使用 post 传递参 数 参数签名结果不正 确 LACK_PARAMS 缺少参数 缺少必要的请求参 数 NOT_UTF8 编码格式错误 未使用指定编码格 式 BUYER_MISMATC H APPID_NOT_EXIST MCHID_NOT_EXIS T APPID 不存在 MCHID 不存在 支付帐号错误 暂不支持同一笔订 单更换支付方 参数中缺少 APPID 参数中缺少 MCHID 请检查 APPID 是否正确 请检查 MCHID 是否正确 请确认支付方是否相同 请使用 NOT_UTF8 编码格式 请检查签名参数和方法是否都符合签名 算法要求 请检查参数是否齐全 当前订单状态为“订单已撤销”,请提示 用户重新支付 请检查请求参数是否通过 post 方法提交 XML 格式错误 授权码检验错误 授权码参数错误 请求参数未按指引 进行填写 收银员扫描的不是 微信支付的条码 XML 格式错误 请检查 XML 参数格式是否正确 请扫描微信支付被扫条码/二维码 等待 5 秒,然后调用被扫订单结果查询 API,查询当前订单的不同状态,决定下 一步的操作。 每个二维码仅限使用一次,请刷新再试 请用户重新选择卡种 OUT_TRADE_NO_ USED APPID_MCHID_NO T_MATCH商户订单号重复同一笔交易不能多 次提交请核实商户订单号是否重复提交appid 和 mch_id 不匹配appid 和 mch_id 不 匹配请确认 appid 和 mch_id 是否匹配7API 工具6.查询订单 API 详见【公共 API 第 9.2 节查询订单】7.申请退款 API 详见【公共 API 第 9.4 节申请退款】8.查询退款 API 详见【公共 API 第 9.5 节查询退款】9.撤销支付 API 应用场景 支付交易返回失败或支付系统超时,调用该接口撤销交易。如果此订单用户支付失败,微信支付系1统会将 此订单关闭;如果用户支付成功,微信支付系统会将此订单资金退还给用户。 注意:7 天以内的交易单可调用撤销,其他正常支付的单如需实现相同功能请调用申请退款 付交易后调用【查询订单 API】,没有明确的支付结果再调用【撤销订单 API】。 2 接口链接 https://api.mch./secapi/pay/reverse 3 是否需要证书 请求需要双向证书。 详见第 4.3.3 节使用证书 4 请求参数变量名 必 填 类型 示例值 描述API。提交支字段名 公众账号 IDappid是String(32)wx88888微信分配的公众账号 ID商户号 子商户公众 账号 IDmch_id sub_appid是 否String(32) String(32) 微信分配的子 商户公众账号 ID微信支付分配的商户号 子商户公众账号 ID子商户号sub_mch_id是String(32)微信支付分配 的子商户号, 受理模式下必 填子商户号否 微信订单号 transaction_idString(32)
368018 微信的订单号,优先使用是 商户订单号 out_trade_noString(32)
368018商户系统内部的订单号, transaction_id、out_trade_no 二选一,如果同时存在优 先级:transaction_id& out_trade_no 随机字符串,不长于 32 位。推荐生成算法详见第 4.3.2 节随机字符串nonce_str是String(32)5K8264ILTK CH16CQ250 2SI8ZNMTM 67VS签名sign是String(32)C380BEC2B FD727A4B68
AD6签名,详见 4.3.1 节签名生成算法提交参数举例如下:&xml& &appid&wx0ec43b&/appid& &mch_id&&/mch_id& &nonce_str&b7ffb16adb472c5f5bdae&/nonce_str& &out_trade_no&&/out_trade_no& &sign&9B2EA16C05A5CEF8E53B14D&/sign& &/xml&返回结果 字段名 变量名 必 填 返回状态码 return_code 是 String(16) SUCCESS SUCCESS/FAIL 类型 示例值 描述 返回信息return_msg否String(128)签名失败返回信息,如非空,为错误原因 签名失败 参数格式校验错误以下字段在 return_code 为 SUCCESS 的时候有返回字段名 公众账号 ID 变量名 appid 必填 是 类型 String(32) 示例值 wx88888 88 商户号 mch_id 是 String(32)
子商户公众账 号 ID sub_appid 否 String(32) 微信分配 的子商户 公众账号 ID 子商户号 sub_mch_id 是 String(32) 微信支付 分配的子 商户号,受 理模式下 必填 随机字符串 nonce_str 是 String(32) 5K8264ILT KCH16CQ 2502SI8Z NMTM67V S 签名 sign 是 String(32) C380BEC 2BFD727A 4B9F3AD 6 业务结果 result_code 是 String(16) SUCCESS SUCCESS/FAIL SUCCESS 表示撤销成功, 此笔订单不能再 发起支付;若已支付完成,则会发起退款; FAIL 其它表示撤销接口异常,根据 recall 判断是否可再次发起撤销操作; 是否重调 recall 是 String(1) Y 是否需要继续调用撤销,Y-需要,N-不需要 签名,验证签名算法详见第 4.3.1 节 微信返回的随机字符串,不长于 32 位 子商户号 子商户公众账号 ID 微信支付分配的商户号 描述 微信分配的公众账号 ID 错误代码err_code否String(32)SYSTEME RROR详细参见第 6 节错误列表错误描述err_code_de s否String(128 )系统错误结果信息描述返回参数举例如下&xml& &return_code&&![CDATA[SUCCESS]]&&/return_code& &return_msg&&![CDATA[OK]]&&/return_msg& &appid&&![CDATA[wx0ec43b]]&&/appid& &mch_id&&![CDATA[]]&&/mch_id& &nonce_str&&![CDATA[o5bAKF3o2ypC8hwa]]&&/nonce_str& &sign&&![CDATA[6F5080EDDD196FFCDE53F786BBB93899]]&&/sign& &result_code&&![CDATA[SUCCESS]]&&/result_code& &recall&&![CDATA[N]]&&/recall& &/xml&5错误码描述 接口返回错误 无效 transaction_idI原因 系统超时 请求参数未按指引进行填 写 参数错误 请求参数未按指引进行填 写 参数错误,请重新检查 解决方案 请尝试再次调用查询 API。 参数错误,请重新检查名称 SYSTEMERROR INVALID_TRANSAC TIONID PARAM_ERRORREQUIRE_POST_M ETHOD SIGNERROR请使用 post 方法未使用 post 传递参数请检查请求参数是否通过 post 方法提交签名错误参数签名结果不正确请检查签名参数和方法是否都符合签名算 法要求10.下载对账单 API 详见【公共 API 第 9.6 节下载对账单】11.上报测速 API 发给微信支付后台。详见【公为提高支付服务质量,建议商户系统将支付接口时延情况通过上报测速 共 API 上报测速 API】。 6. 扫码原生支付模式开发指引1. 场景介绍 用户扫描商户展示在各种场景的二维 码进行支付。 步骤 1:商户根据微信支付的规则,为不同商品生成不同的二维码(如图 用户扫描购买。 步骤 2:用户使用微信“扫一扫”(如图 图 6.3)。 6.1),展示在各种场景,用于6.2)扫描二维码后,获取商品支付信息,引导用户完成支付(如图 6.1 支付二维码图 6.2 打开微信扫一扫二维码图 6.3 确认支付页面步骤(3):用户确认支付,输入支付密码(如图 图 处理。6.4)。 步骤(4):支付完成后会提示用户支付成功(如6.5),商户后台得到支付成功的通知,然后进行发货 图 6.4 用户确认支付,输入密码图 6.5 支付成功提示2.案例介绍 目前已上线支付案例,商户可进 行实际体验。 线下:上品折扣线下店。 线上 :京东、携程等3. 1扫码原生支付开发步骤 开通支付权限 在微信公众平台设置支付权限,进入栏目微信支付-》开发配置-》修改,如图 6.6 所示。图 6.6 原生支付参数设置栏目入口 进入修改页面后, 找到公众号支付-》 Native 原生支付, 勾选 Native 原生支付开通该权限, 在支付回调 URL 上填写商户支付后台系统的网页地址。图 6.7 原生支付设置权限及支付回调地址 2 根据应用场景选择实现模式 扫码支付可分为两种模式,商户 根据支付场景选择相应模式。 模式一:商户后台系统根据微信支付规则链接生成二维码,链接中带固定参数 productid(可定义为产品标 识或订单号)。用户扫码后,微信支付系统将 productid 和用户 openid(用户标识)回调商户后台系统,商户后 台系统根据 productid 生成支付交易,最后微信支付系统发起用户支付流程。 模式二:商户后台系统调用微信支付【统一下单 API】生成预付交易,将接口返回的链接生成二维码,用 户扫码后输入密码完成支付交易。注意:该模式的预付单有效期为 2 小时,过期后无法支付。 4. 模式一 实现的功能:接收用户扫码后微信支模式一开发前,商户必须在公众平台后台设置支付回调 URL。URL 付系统回调的 productid 和 openid;URL 设置详见本章第 6.3.1 节。 1业务流程时序图图 6.8:原生支付接口模式一时序图 业务流程说明: 1) 2) 商户后台系统根据微信支付规定格式生成二维码(规则见本章第 6.4.2 节),展示给用户扫码。用户打开微信“扫一扫”扫描二维码,微信客户端将扫码内容发送到微信支付系统。 3)微信支付系统收到客户端请求,发起对商户后台系统支付回调 URL 的调用。调用请求将带 productid 和用户的 openid 等参数,并要求商户系统调返回 prepay_id(【统一下单 API】返回的交易会话标识, 有效期 2 小时)才能发起用户支付。 商户后台系统收到微信支付系统的回调请求,根据 productid 生成商户系统的订单。 商户系统调用微信支付【统一下单 API】请求生成交易会话标识。 prepay_id。4) 5) 6) 7) 8) 9)微信支付系统根据商户系统的请求生成预支付交易,返回交易会话标识 商户后台系统得到交易会话标识 prepay_id。商户后台系统将 prepay_id 返回给微信支付系统。 微信支付系统根据交易会话标识,发起用户端授权支付流程。10) 用户在微信客户端输入密码,确认支付后,微信客户端提交支付授权。 11) 微信支付系统验证后扣款,完成支付交易。 12) 微信支付系统完成支付交易后给微信客户端返回交易结果,并将交易结果通过短信、微信消息提示用 户。微信客户端展示支付交易结果页面。 微信支付系统通过发送异步消息通知商户后台系统支付结果。商户后台系统需回复接收情况,通知微 信后台系统不再发送该单的支付通知。13)14) 未收到支付通知的情况,商户后台系统调用【查询订单 API】。 15) 商户确认订单已支付后给用户发货。 2 生成二维码规则 二维码中的内容 为链接,形式为: weixin://wxpay/bizpayurl?sign=XXXXX&appid=XXXXX&mch_id=XXXXX&product_id=XXXXXX&time _stamp=XXXXXX&nonce_str=XXXXX 其中 XXXXX 为商户需要填写的内容,商户将该链接生成二维码,如需要打印发布二维码,需要采用此格 式。商户可调用第三方库生成二维码图片。参数说明如下: 表 6.1 生成二维码所需参数列表字段名 变量名 必 填 公众账号 ID 商户号 appid mch_id 是 是 String(32) String(32) wx109
微信分配的公众账号 ID 微信支付分配的商户号 系统当前时间, 定义规则见第 4.2 节时间 戳 类型 示例值 描述时间戳time_stamp是String(10) 随机字符串nonce_str是String(32)5K8264ILTKCH16CQ2 502SI8ZNMTM67VS 8BEC2BFD727A4 BF3AD6随机字符串,不长于 32 位。推荐生成算 法详见第 4.3.2 节 商户定义的商品 id 或者订单号商品 IDproduct_id是String(32)签名sign是String(32)签名,详见 4.3.1 节签名生成算法举例:weixin://wxpay/bizpayurl?appid=wx0ec43b&mch_id=&nonce_str=f5ec87a8c&product_id=1&time _stamp=&sign=512F6DA4A45DA79CC7EFE9D3回调商户支付 URL商户提供的支付回调 URL(设置请见 6.3.1 节)需要实现以下功能:接收用户扫码后微信支付系统发送的 数据,根据接收的数据生成支付订单,调用【统一下单 API】提交支付交易。 1. 输入参数 表 6.2 输入参数说明字段名 变量名 必 填 公众账号 ID 用户标识 openid 商户号 是否关注公众 号 is_subscribe appid 是 String(32) wx8888 o8GeHuLAsgefS_80exEr 1cTqekUs
Y 微信支付分配的商户号 用户是否关注公众账号,Y-关注,N-未关 注 5K8264ILTKCH16CQ25 02SI8ZNMTM67VS 8BEC2BFD727A4B6 AD6 随机字符串,不长于 32 位。推荐生成算法 详见第 4.3.2 节 商户定义的商品 id 或订单号 微信分配的公众账号 ID 类型 示例值 描述是String(128)用户在商户 appid 下的唯一标识mch_id是String(32)是String(1)随机字符串nonce_str是String(32)商品 IDproduct_id是String(32)签名sign是String(32)签名,详见 4.3.1 节签名生成算法2.输出参数 表 6.3 输出参数说明字段名变量名必填类型示例值说明 返回状态码 返回信息return_code return_msg是 否String(16) String(128)SUCCESS 签名失败SUCCESS/FAIL 返回信息,如非空,为错误原因 签名失败 参数格式校验错误公众账号 ID 商户号appid mch_id是 是String(32) String(32)wx109 5K8264ILTKCH16CQ2 502SI8ZNMTM67VS wxa微信分配的公众账号 ID 微信支付分配的商户号 微信返回的随机字符串,不长于 32 位 调用统一下单接口生成的预支付 ID随机字符串nonce_str是String(32)预支付 IDprepay_id是String(64)业务结果 错误描述result_code err_code_des是 否String(16) String(128)SUCCESSSUCCESS/FAIL 当 result_code 为 FAIL 时, 商户展示 给用户的错误提示。签名sign是String(32)签名,验证签名算法详见第 4.3.1 节5.模式二模式二与模式一相比,流程更为简单,不依赖设置的回调支付 URL。商户后台系统先调用微信支付的统一 下单接口,微信后台系统返回链接参数 code_url,商户后台系统将 code_url 值生成二维码图片,用户使用微信 客户端扫码后发起支付。注意:code_url 有效期为 2 小时,过期后扫码不能再发起支付。 1业务流程时序图图 6.9 原生支付模式二时序图 业务流程说明: 1) 2) 3) 4) 5) 商户后台系统根据用户选购的商品生成订单。 用户确认支付后调用微信支付【统一下单 API】生成预支付交易; code_url。微信支付系统收到请求后生成预支付交易单,并返回交易会话的二维码链接 商户后台系统根据返回的 code_url 生成二维码。用户打开微信“扫一扫”扫描二维码,微信客户端将扫码内容发送到微信支付系统。 6) 7) 8) 9)微信支付系统收到客户端请求,验证链接有效性后发起用户支付,要求用户授权。 用户在微信客户端输入密码,确认支付后,微信客户端提交授权。 微信支付系统根据用户授权完成支付交易。 微信支付系统完成支付交易后给微信客户端返回交易结果,并将交易结果通过短信、微信消息提示用 户 。微信客户端展示支付交易结果页面。 微信支付系统通过发送异步消息通知商户后台系统支付结果。商户后台系统需回复接收情况,通知微 信后台系统不再发送该单的支付通知。10)11) 未收到支付通知的情况,商户后台系统调用【查询订单 API】。 12) 商户确认订单已支付后给用户发货。2生成二维码规则 code_url 生成二维码图片。该对应链接格式:weixin://wxpay/bizpayurl?sr=XXXXX 。请商户调用第三方库将 模式链接较短,生成的二维码打印到结账小票上的识别率较高。 例如,将 weixin://wxpay/s/An4baqw 生成二维码见图 6.10。图 6.10 原生支付“模式二”二维码示例6.统一下单 API 注意交易类型(trade_type) 填写:NATIVE。 详见【公共 API 第 9.1 节统 一下单】 7.查询订单 API 详见【公共 API 第 9.2 节查询订单】8.关闭订单 API 详见【公共 API 第 9.3 节关闭订单】9.申请退款 API 详见【公共 API 第 9.4 节申请退款】10.查询退款 API 详见【公共 API 第 9.5 节查询退款】11.下载对账单 API 详见【公共 API 第 9.6 节下载对账单】12.上报测速 API 发给微信支付后台。详见【公为提高支付服务质量,建议商户系统将支付接口时延情况通过上报测速 共 API 上报测速 API】。13.二维码相关知识 二维码背 景知识介绍: /qr-code-tutorial/ /articles/10590.html7. 微信内网页支付1. 场景介绍 H5 商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购商户已有 买的流程。 步骤(1):如图 步骤(2):如图7.1,商户下发图文消息或者通过自定义菜单吸引用户点击进入商户网页。 7.2,进入商户网页,用户选择购买,完成选购流程。图 7.1 商户自定义消息界面图 7.2 商户网页下单 步骤(3):如图7.3,调起微信支付控件,用户开始输入支付密码。 步骤(4):如图7.4,密码验证通过,支付成功。商户后台得到支付成功的通知。图 7.3 用户确认支付,输入密码图 7.4 用户支付成功提示 步骤(5):如图 ):如图7.5,返回商户页面,显示购买成功。该页面由商户自定义。 步骤(6 7.6,公众号下发消息,提示发货成功。该步骤可选。 图 7.5 返回商户页面提示图 7.6 用户收到发货微信通知 注意:商户也可以把商品网页的链接生成二维码,用户扫一扫打开后即可完成购买支付。 交互细节: 以下是支付场景的交互细节,请认真阅读,设计商户页面的逻辑: (1) 用户打开商户网页选购商品, 发起支付, 在网页通过 JavaScript 调用 getBrandWCPayRequest 接口, 发起微信支付请求,用户进入支付流程。 (2)用户成功支付点击完成按钮后,商户的前端会收到 功的静态页面进行展示。 JavaScript 的返回值。商户可直接跳转到支付成(3)商户后台收到来自微信开放平台的支付成功回调通知,标志该笔订单支付成功。 注: (2)和(3)的触发不保证遵循严格的时序。JS API 返回值作为触发商户网页跳转的标志,但商户后台应 该只在收到微信后台的支付成功回调通知后,才做真正的支付成功的处理。2.案例介绍 目前已上线支付案例,商户可进 行实际体验。 线下:新版友宝售卖机等。 线 上:京东、易迅公众号内下单支付等 3. 1微信内网页支付开发步骤 设置测试目录在微信公众平台设置,栏目见图 7.7。支付测试状态下,设置测试目录,测试人的微信号添加到白名单, 发起支付的页面目录必须与设置的精确匹配。并将支付链接发到对应的公众号会话窗口中才能正常发起支付测 试 。注意正式目录一定不能与测试目录设置成一样,否则支付会出错。图 7.7 微信内网页支付设置栏目入口 2 设置正式支付目录根据图中栏目顺序进入修改栏目,勾选 JSAPI 网页支付开通该权限,并配置好支付授权目录,该目录必须 是发起支付的页面的精确目录,子目录下无法正常调用支付。具体界面如图 7.8 所示: 图 7.8 微信网页内支付接口授权目录设置 4.业务流程时序图图 7.9 微信内网页支付时序图 商户系统和微信支付系统主要交互 : 1. 商户 server 调用统一下单接口请求订单,api 参见公共 api【统一下单】 2. 商户 server 接收支付通知,api 参见公共 api【通用通知 api】 3. 商户 server 查询支付结果,api 参见公共 api【查询订单 api】 5.获取微信版本号由于微信 5.0 版本后才加入微信支付模块, 低版本用户调用微信支付功能将无效。 因此, 建议商户通过 user agent 来确定用户当前的版本号后再调用支付接口。以 iPhone 版本为例,可以通过 user agent 可获取如下微 信版本示例信息: &Mozilla/5.0(CPU iphone OS 5_1_1 like Mac OS X) AppleWebKit/534.46(KHTML,like Geocko) Mobile/9B206 MicroMessenger/5.0& 其中 5.0 为用户安装的微信版本号, 商户可以解析以上 HTTP 头, 获取到微信版本号是否高于或者等于 5.0。6.显示微信安全支付标题 对于商户具有支付权限且需要调用微信支付的页面,为了让用户增加购买信心,确认交易环境安全,微信 强烈建议商户使用“微信安全支付”标题。安全支付标题的如下图。图 7.10 微信安全支付标题 显示支付安全标题,需将原始链接添加上&showwxpaytitle=1&的尾串。通过这种方 式,商户的页面将出现 微信安全支付的标识。例如,原始 URL 为:,显示安全支付标题的 URL 为: ?showwxpaytitle=1。 当用户在微信里打开
不会直接出现微信安全支付的标题,而打开 ?showwxpaytitle=1 后将出现微信安全支付标题。7.H5 网页端调起支付 API 在微信浏览器里面打开 H5 网页中执行 JS 调起支付。接口输入输出数据格式为 JSON。 注意: WeixinJSBridge 内置对象在其他浏览器中无效;列表中参数名称区分大小。 getBrandWCPayRequest参数以及返回值定义见图 7.1,返回列表值说明见图 7.2。 表 7.1 网页端接口参数列表字段名 变量名 必 填 公众号 id appId 是 String(16) wx 88888 时间戳 timeStamp 是 String(32)
商户注册具有支付权限的公众号成功后即 可获得 当前的时间, 规则详见其他详见第 4.2 节时 类型 示例值 描述 间戳规则 随机字符串 nonceStr 是 String(32) 5K8264ILTKCH 16CQ2502SI8Z NMTM67VS 订单详情扩展字 符串 签名方式 签名 signType paySign 是 是 String(32) String(64) package 是 String(128) prepay_id= MD5 C380BEC2BFD 727A4BF3AD6 签名,详见 4.3.1 节签名生成算法 统一下单接口返回的 prepay_id 参数值, 提 交格式如:prepay_id=*** 签名算法,暂支持 MD5 随机字符串,不长于 32 位。推荐生成算法 详见第 4.3.2 节表 7.2 网页内支付接口返回结果值说明 字段名err_msg返回值get_brand_wcpay_request:ok get_brand_wcpay_request:cancel get_brand_wcpay_request:fail描述支付成功 支付过程中用户取消 支付失败注: JS API 的返回结果 get_brand_wcpay_request:ok 仅在用户成功完成支付时返回。 由于前端交互复杂, get_brand_wcpay_request:cancel 或者 get_brand_wcpay_request:fail 可以统一处理为用户遇到错误或者主动 放弃,不必细化区分。 示例代码如下:function onBridgeReady(){ WeixinJSBridge.invoke( &#39;getBrandWCPayRequest&#39;, { &appId& : &wx0ec43b&, //公众号名称,由商户传入 &timeStamp&:& &, //时间戳,自 1970 年以来的秒数 &nonceStr& : &e61463f8efacccfbbb444&, //随机串 &package& : &prepay_id=u802345jgfjsdfgsdg888&, &signType& : &MD5&, //微信签名方式: &paySign& : &70EABB79628FBCAFADD89& //微信签名 }, function(res){ if(res.err_msg == &get_brand_wcpay_request:ok& ) {} 成功后返回 ok,但并不保证它绝对可靠。 } ); } if (typeof WeixinJSBridge == &undefined&){ if( document.addEventListener ){ document.addEventListener(&#39;WeixinJSBridgeReady&#39;, onBridgeReady, false); }else if (document.attachEvent){ document.attachEvent(&#39;WeixinJSBridgeReady&#39;, onBridgeReady); document.attachEvent(&#39;onWeixinJSBridgeReady&#39;, onBridgeReady); } }else{// 使用以上方式判断前端返回,微信团队郑重提示: res.err_msg 将在用户支付 onBridgeReady(); }8.统一下单 API 注意交易类型(trade_type )填写:JSAPI。 详见【公共 API 第 9.1 节 统一下单】9.查询订单 API 详见【公共 API 第 9.2 节查询订单】10.关闭订单 API 详见【公共 API 第 9.3 节关闭订单】11.申请退款 API 详见【公共 API 第 9.4 节申请退款】12.查询退款 API 详见【公共 API 第 9.5 节查询退款】13.下载对账单 API 详见【公共 API 第 9.6 节下载对账单】8. APP 支付模式1. 场景介绍 适用于商户在移动端 APP 中集成微信支付功能。 商户 APP 调用微信提供的 SDK 调用微信支付模块,商户 APP 会跳转到微信中完成支付,支付完后跳回 到商户 APP 内,最后展示支付结果。 目前微信支付支持手机系统有:IOS(苹果)、Android(安卓)和 WP(Windows 如下: Phone)。 交互细节 步骤 1:用户进入商户 APP,选择商品下单、确认购买,进入支付环节。商户服务后台生成支付订单,签 名后将数据传输到 APP 端。以微信提供的 DEMO 为例,见图 8.1。 步骤 步骤 2:用户点击后发起支付操作,进入到微信界面,调起微信支付,出现确认支付界面,见图 8.2。 8.3。3:用户确认收款方和金额,点击立即支付后出现输入密码界面,可选择零钱或银行卡支付见图图 8.1 商户 APP 界面实例图 8.2 跳转到微信支付图 8.3 用户确认支付第四步:输入正确密码后,支付完成,用户端微信出现支付详情页面。见图8.4。 第五步:回跳到商户 APP 中,商户 APP 根据支付结果个性化展示订单处理结果。见图 8.5。图 8.4 支付成功提示页面图 8.5 返回到商户 APP 提示2.案例介绍 目前已上线支付案例,如京东、易迅 手机 APP 等。 3.业务流程以下是交互时序图,统一下单 API、接受支付通知和查询 API 等都涉及签名过程,调用都必须在商户服务 器端完成。如图 8.6 所示。 图 8.6 APP 支付时序图商户系统和微信支付系统主要交互说明: 步骤 1:用户在商户 APP 中选择商品,提交订单,选择微信支付。 步骤 2:商户后台系统收到用户支付单,调用微信支付统一下单接口。参见公共 api【统一下单 API】。 步骤 3:统一下单接口返回正常的 prepay_id,再按签名规范重新生成签名后,将数据传输给 APP。参与 签名的字段名为 appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package 的值格式为 prepay_id=wx 步骤 4:商户 APP 调起微信支付。api 参见本章节【app 端开发说明】 步骤 5:商户 server 接收支付通知。api 参见公共 api【通用通知 api】 步 骤 6:商户 server 查询支付结果。,api 参见公共 api【查询订单 api】4.API 详细说明 1.请详细参考开放平台 API手册: IOS: https://open./zh_CN/htmledition/res/dev/document/sdk/ios/index.html 安卓: https://open./zh_CN/htmledition/res/dev/document/sdk/android/index.html WP: 待提供 2.APP 端调起支付接口 APP 端调起支付参数列表字段,具体调用根据提供的 SDK 说明。字段名 公众账号 ID 商户号 交易会话标 识 随机字符串变量名 appId partnerId prepayId必填 是 是 是类型 String(32) String(32) String(64)示例值 wx109 wxa描述 微信分配的公众账号 ID 微信支付分配的商户号 调用微信支付统一下单会返回的交易会话 标识 随机字符串,不长于 32 位。推荐生成算法 详见第 4.3.2 节 填写订单详情字段nonceStr是String(32)5K8264ILTKCH16CQ2 502SI8ZNMTM67VS订单扩展字 段package是String(256)prepay_id=wxa7商品描述timeStam p是String(12)时间戳 5. 1APP 端开发步骤说明 IOS 开发要点说明 以下项目开发环境以 Xcode10.0,运行环境为 IOS7.0 为例,说明其开发中需要的操作。1)项目设置 APPID商户在微信开放平台申请开发 APP 应用后,微信开放平台会生成 APP 的唯一标识 APPID。在 Xcode 中 打开项目,设置项目属性中的 URL Schemes 为您的 APPID。如图 8.7 标红位置所示。图 8.7 2) 注册 APPID 商户 APP 工程中引入微信 lib 库和头文件,调用 API 前,需要先向微信注册您的 APPID,代码如下:[WXApi registerApp:@&wxd930ea5d5a258f4f& withDescription:@&demo 2.0&];3)调起支付商户服务器生成支付订单,先调用统一下单 API(详见第 9.1 节)生成预付单, 获取到 prepay_id 后将参数再 次签名传输给 APP 发起支付。以下是调起微信支付的关键代码:PayReq *request = [[[PayReq alloc] init] autorelease]; request.partnerId = @&&; request.prepayId= @&fc314aa427&; request.package = @&Sign=WXPay&; request.nonceStr= @&a462b76eed6e13c64b4fd1c&; request.timeStamp= @&&; request.sign= @&dd2b03ad8cb16e7a256&; [WXApi safeSendReq:request];4)支付结果回调照微信 SDK Sample,net.sourceforge.simcpux.wxapi 包路径中实现 WXPayEntryActivity 类(包名或类名 不一致会造成无法回调),类中实现 onResp 函数,支付完成后,微信 APP 会返回到商户 APP 并回调 onResp 函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实 际 支付结果。注意一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询 API 返 回的结果为准。代码示例如下:- (void)onResp:(BaseResp *)resp { if ([resp isKindOfClass:[PayResp class]]) { PayResp *response = (PayResp *) switch (response.errCode) { case WXSuccess: //服务器端查询支付通知或查询 API 返回的结果再提示成功 NSlog(@&支付成功&); default: NSlog(@&支付失败, retcode=%d&,resp.errCode); } } }回调中 errCode 值列表:名称 描述 解决方案0成功展示成功页面-1错误可能的原因:签名错误、未注册 APPID、项目设置 APPID 不正确、注册的 APPID 与设置 的不匹配、其他异常等。-2用户取消无需处理。发生场景:用户不支付了,点击取消,返回 APP。2Android 开发要点说明 1) 后台设置商户在微信开放平台申请开发应用后,微信开放平台会生成 APP 的唯一标识 APPID。由于需要保证支付 安全,需要在开放平台绑定商户应用包名和应用签名,设置好后才能正常发起支付。设置界面在【开放平台】 中 的栏目【管理中心 / 修改应用 / 修改开发信息】里面,如图 8.8 红框内所示。 图 8.8 应用包名:是在 APP 项目配置文件 AndroidManifest.xml 中声明的 package 值,例如 DEMO 中的 package=&net.sourceforge.simcpux&。 应用签名:根据项目的应用包名和编译使用的 keystore,可由签名工具生成一个 32 位的 md5 串,在调试 的手机上安装签名工具后,运行可生成应用签名串,如图 8.9 所示,绿色串即应用签名。签名工具下载地址: https://open./zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk 图 8.9 2) 注册 APPID商户 APP 工程中引入微信 JAR 包,调用 API 前,需要先向微信注册您的 APPID,代码如下: API 调用前,需要先向微信注册您的 APP,代码如下:final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);// 将该 app 注册到微信msgApi.registerApp(&wxd930ea5d5a258f4f&);3)调起支付商户服务器生成支付订单,先调用统一下单 API(详见第 7 节)生成预付单,获取到 prepay_id 后将参数再 次签名传输给 APP 发起支付。以下是调起微信支付的关键代码:IWXAPI PayReq request = new PayReq(); request. appId = &wxd930ea5d5a258f4f&; request. partnerId = &&; request.prepayId= &fc314aa427&,; request. packageValue = &Sign=WXPay&; request.nonceStr= &f&; request.timeStamp= &&; request.sign= &7ffecb600d810d2d8f28bc2811827b&; api.sendReq(req);4)支付结果回调参照微信 SDK Sample,在 WXPayEntryActivity 类中实现 onResp 函数,支付完成后,微信 APP 会返回 到商户 APP 并回调 onResp 函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后 台查询支付结果再展示用户实际支付结果。注意一定不能以客户端返回作为用户支付的结果,应以服务器端的 接 收的支付通知或查询 API 返回的结果为准。代码示例如下: public void onResp(BaseResp resp) { if (resp.getType() == MAND_PAY_BY_WX) { Log.d(TAG, &onPayFinish, errCode = & + resp.errCode); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.app_tip); } }回调中 errCode 值列表:名称 描述 解决方案0成功展示成功页面-1错误可能的原因:签名错误、未注册 APPID、项目设置 APPID 不正确、注册的 APPID 与设置的不匹配、其他异常等。-2用户取消无需处理。发生场景:用户不支付了,点击取消,返回 APP。6.统一下单 API 注意交易类型(trade_type)填写:APP。 详见【公共 API 第 9.1 节统一下单】7.查询订单 API 详见【公共 API 第 9.2 节查询订单】8.关闭订单 API 详见【公共 API 第 9.3 节关闭订单】9.申请退款 API 详见【公共 API 第 9.4 节申请退款】10.查询退款 API 详见【公共 API 第 9.5 节查询退款】 11.下载对账单 API 详见【公共 API 第 9.6 节下载对账单】9. 公共 API公共 API 主要包括统一下单、通用通知、查询订单、关闭订单、退款申请、退款查询、对账单对账、短链 接转换。以下对接口使用进行详细说明。1. 1统一下单 应用场景 除被扫支付场景以外,商户系统先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付 交易回话标识后再按扫码、JSAPI、APP 2 接口链接 URL 3等不同场景生成交易串调起支付。地址:https://api.mch./pay/unifiedorder是否需要证书 不需要4请求参数变量名 必 填 类型 示例值 描述字段名公众账号 ID 商户号 子商户公众 账号 ID 子商户号appid mch_id sub_appid是 是 否String(32) String(32) String(32)wx109 微信分配的子商户公众 账号 ID微信分配的公众账号 ID 微信支付分配的商户号 子商户公众账号 IDsub_mch_id是String(32)微信支付分配的子商户 号,受理模式下必填子商户号设备号 随机字符串device_info nonce_str否 是String(32) String(32)764 5K8264ILTKCH16CQ2 502SI8ZNMTM67VS微信支付分配的终端设备号,商户自定义 随机字符串,不长于 32 位。推荐生成算法 详见第 4.3.2 节 签名,详见 4.3.1 节签名生成算法签名sign是String(32)C380BEC2BFD727A4B F3AD6 商品描述 商品详情 附加数据 body detail attach 是 否 否 String(32) String(8192) String(127) Ipad mini 16G 白色 Ipad mini 16G 白色 说明 商品或支付单简要描述 商品名称明细列表 附加数据,在查询 API 和支付通知中原样 返回,该字段主要用于商户携带订单的自 定义数据 商户订单号 out_trade_n o 货币类型 fee_type 否 String(16) 是 String(32) 368018 CNY 商户系统内部的订单号,32 个字符内、可包 含字母, 其他说明见第 4.2 节商户订单号 符合 ISO 4217 标准的三位字母代码,默认 人民币:CNY,其他值列表详见第 4.2 节 货币类型 总金额 total_fee 是 Int 888 订单总金额,只能为整数,详见第 4.2 节 支付金额 终端 IP spbill_create _ip 交易起始时 间 time_start 否 String(14) 10 是 String(16) 8.8.8.8 APP 和网页支付提交用户端 ip,Native 支 付填调用微信支付 API 的机器 IP。 订单生成时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 25 日 9 点 10 分 10 秒表示为 10。其他详见第 4.2 节时间 规则 交易结束时 间 time_expire 否 String(14) 10 订单失效时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 27 日 9 点 10 分 10 秒表示为 10。其他详见第 4.2 节时间 规则 商品标记 goods_tag 否 String(32) WXG 商品标记,代金券或立减优惠功能的参 数,说明详见第 10 节代金券或立减优惠 通知地址 交易类型 notify_url trade_type 是 是 String(256) String(16) / JSAPI 接收微信支付异步通知回调地址 取值如下:JSAPI,NATIVE,APP,详细 说明见第 4.2 节参数规定 8 oUpF8uMuAJO_M 2pxb1Q9zNjWeS6o trade_type=NATIVE,此参数必传。此 id 为二维码中包含的商品 ID, 商户自行定义。 trade_type=JSAPI ,此参数必传,用 户在商户 appid 下的唯一标识。 下单前需要 调用【网页授权获取用户信息】接口获取商品 IDproduct_id否String(32)用户标 识openid 28)String(1 到用户的 Openid。用户子标识sub_openid否String(128)oUpF8uMuAJO_M2pxb 1Q9zNjWeS6otrade_type 为=JSAPI 时,此参数必 传,用户在商户 sub_appid 下的唯一标识。 下单前需要调用【网页授权获取用户信息】 接口获取到用户的 Openid。举例如下:&xml& &appid&wx0ec43b&/appid& &attach&支付测试&/attach& &body&JSAPI 支付测试&/body& &mch_id&&/mch_id& &nonce_str&1add1a30ac87aa2db72f57a2375d8fec&/nonce_str& &notify_url&http://wxpay./pub_v2/pay/notify.v2.php&/notify_url& &openid&oUpF8uMuAJO_M2pxb1Q9zNjWeS6o&/openid& &out_trade_no&&/out_trade_no& &spbill_create_ip&14.23.150.211&/spbill_create_ip& &total_fee&1&/total_fee& &trade_type&JSAPI&/trade_type& &sign&0CBEFBCA001&/sign& &/xml& 注:参数值用 XML 转义即可,CDATA 标签用于说明数据不被 XML 解析器解析。5返回结果变量名 必 填 类型 示例值 描述字段名返回状态码return_code是String(16)SUCCESSSUCCESS/FAIL 此字段是通信标识,非交易标识,交易是否成 功需要查看 result_code 来判断返回信息return_msg否String(128)签名失败返回信息,如非空,为错误原因 签名失败 参数格式校验错误以下字段在 return_code 为 SUCCESS 的时候有返回字段名 变量名 必 填 公众账号 ID appid 是 String(32) wx 888888 调用接口提交的公众账号 ID 类型 示例值 描述 商户号 子商户公众账号 IDmch_id sub_appid是 否String(32) String(32) 微信分配的子 商户公众账号 ID调用接口提交的商户号 子商户公众账号 ID子商户号sub_mch_id是String(32)微信支付分配 的子商户号,受 理模式下必填子商户号设备号device_info否String(32) 764调用接口提交的终端设备号,随机字符串nonce_str是String(32)5K8264ILTKC H16CQ2502SI 8ZNMTM67VS微信返回的随机字符串签名sign是String(32)C380BEC2BF D727A4BF3AD6微信返回的签名,验证签名算法详见第 4.3.1 节业务结果 错误代码result_code err_code是 否String(16) String(32)SUCCESS SYSTEMERR ORSUCCESS/FAIL 详细参见第 6 节错误列表错误代码描述err_code_de s否String(128)系统错误错误返回的信息描述以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回字段名 变量名 必 填 交易类型 trade_type 是 String(16) JSAPI 调用接口提交的交易类型, 取值如下: JSAPI, NATIVE,APP,详细说明见第 4.2 节参数规 定 预支付交易会话 标识 prepay_id 是 String(64) wx a
微信生成的预支付回话标识,用于后续接口调 用中使用,该值有效期为 2 小时 类型 示例值 描述二维码链接code_url否String(64)URl: weixin://wxpay/ s/An4baqwtrade_type 为 NATIVE 是有返回, 可将该参数 值生成二维码展示出来进行扫码支付举例如下: &xml& &return_code&&![CDATA[SUCCESS]]&&/return_code& &return_msg&&![CDATA[OK]]&&/return_msg& &appid&&![CDATA[wx0ec43b]]&&/appid& &mch_id&&![CDATA[]]&&/mch_id& &nonce_str&&![CDATA[IITRi8Iabbblz1Jc]]&&/nonce_str& &sign&&![CDATA[EB8ED0CED72F]]&&/sign& &result_code&&![CDATA[SUCCESS]]&&/result_code& &prepay_id&&![CDATA[wx507cbf6ffd8b]]&&/prepay_id& &trade_type&&![CDATA[JSAPI]]&&/trade_type& &/xml&6名称错误码描述 商户无此接口权限 余额不足 原因 商户未开通此接口权限 用户帐号余额不足 解决方案 请商户前往申请此接口权限 用户帐号余额不足,请用户充值或更换支付 卡后再支付NOAUTH NOTENOUGHORDERPAID商户订单已支付商户订单已支付,无需重复 操作商户订单已支付,无需更多操作ORDERCLOSED SYSTEMERROR APPID_NOT_EXI ST MCHID_NOT_EX IST APPID_MCHID_ NOT_MATCH LACK_PARAMS OUT_TRADE_N O_USED SIGNERROR订单已关闭 系统错误 APPID 不存在当前订单已关闭,无法支付 系统超时 参数中缺少 APPID当前订单已关闭,请重新下单 系统异常,请用相同参数重新调用 请检查 APPID 是否正确MCHID 不存在参数中缺少 MCHID请检查 MCHID 是否正确appid 和 mch_id 不 匹配 缺少参数 商户订单号重复appid 和 mch_id 不匹配请确认 appid 和 mch_id 是否匹配缺少必要的请求参数 同一笔交易不能多次提交请检查参数是否齐全 请核实商户订单号是否重复提交签名错误参数签名结果不正确请检查签名参数和方法是否都符合签名算法 要求XML_FORMAT_E RROR REQUIRE_POST _METHODXML 格式错误XML 格式错误请检查 XML 参数格式是否正确请使用 post 方法未使用 post 传递参数请检查请求参数是否通过 post 方法提交 POST_DATA_EM PTY NOT_UTF8post 数据为空post 数据不能为空请检查 post 数据是否为空编码格式错误未使用指定编码格式请使用 NOT_UTF8 编码格式7API 工具2. 1查询订单 应用场景 该接口提供所有微信支付订单的查询,商户可以通过该接口主动查询订单状态,完成下一步的业务 逻辑。 需要调用查询接口的情况: 1. 当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知; 2. 调用支付接口后,返回系统错误或未知交易状态情况; 3. 调用被扫支付 API,返回 USERPAYING 的状态; 4. 调用关单或撤销接口 API 之前,需确认支付状态;2接口链接 https://api.mch./pay/orderquery3是否需要证书 不需要4请求参数变量名 必 填 类型 示例值 描述字段名公众账号 IDappid是String(32)wx88888微信分配的公众账号 ID商户号 子商户公众账 号 IDmch_id sub_appid是 否String(32) String(32) 微信分配的子 商户公众账号 ID微信支付分配的商户号 子商户公众账号 ID 子商户号sub_mch_id是String(32)微信支付分配 的子商户号, 受理模式下必 填子商户号微信订单号transaction_i d否String(32) 5764微信的订单号,优先使用否 商户订单号 out_trade_noString(32)
368018商户系统内部的订单号,当没提供 transaction_id 时 需要传这个。随机字符串nonce_str是String(32)C380BEC2B FD727A4B68
AD6随机字符串,不长于 32 位。推荐生成算法详见第 4.3.2 节签名sign是String(32)5K8264ILTK CH16CQ250 2SI8ZNMTM 67VS签名,详见 4.3.1 节签名生成算法举例如下:&xml& &appid&wx0ec43b&/appid& &mch_id&&/mch_id& &nonce_str&ecfaa3aacf3cc599e8730f&/nonce_str& &transaction_id&0873&/transaction_id& &sign&FDD167FAA74BAF4F4CA2&/sign& &/xml&5返回结果变量名 必 填 类型 示例值 描述字段名返回状态码return_code是String(16)SUCCESSSUCCESS/FAIL 此字段是通信标识,非交易标识,交易是否成功需要 查看 trade_state 来判断返回信息return_msg否String(128)签名失败返回信息,如非空,为错误原因 签名失败 参数格式校验错误以下字段在 return_code 为 SUCCESS 的时候有返回字段名 变量名 必 类型 示例值 描述 填 公众账号 ID appid 是 String(32) wx88888 商户号 子商户公众账 号 ID mch_id sub_appid 是 否 String(32) String(32)
微信分配的子 商户公众账号 ID 子商户号 sub_mch_id 是 String(32) 微信支付分配 的子商户号, 受理模式下必 填 随机字符串 nonce_str 是 String(32) 5K8264ILTK CH16CQ250 2SI8ZNMTM 67VS 签名 sign 是 String(32) C380BEC2B FD727A4B68
AD6 业务结果 错误代码 result_code err_code 是 否 String(16) String(32) SUCCESS SYSTEMER ROR 错误代码描述 err_code_de s 否 String(128) 系统错误 结果信息描述 SUCCESS/FAIL 详细参见第 6 节错误列表 签名,验证签名算法详见第 4.3.1 节 随机字符串,不长于 32 位 子商户号 微信支付分配的商户号 子商户公众账号 ID 微信分配的公众账号 ID以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回字段名 变量名 必 填 设备号 device_info 否 String(32)
5764 用户标识 openid 否 String(128) oUpF8uJY5nlm GIikjDUkckvx tdoo 用户子标识 sub_openid 否 String(128) oUpF8uJY5nl mGIikjDUkckv xtdoo 用户子标识 用户标识 微信支付分配的终端设备号, 类型 示例值 描述 是否关注公 众账号is_subscribe是String(1)Y用户是否关注公众账号,仅在公众账号类型支付有 效,取值范围:Y 或 N Y-关注 N-未关注是否关注子 公众账号sub_is_subscri be是String(1)Y用户是否关注子公众账号,仅在公众账号类型支付 有效,取值范围:Y 或 N Y-关注 N-未关注交易类型trade_type是String(16)JSAPI调用接口提交的交易类型,取值如下:JSAPI, NATIVE,APP,MICROPAY,详细说明见第 4.2 节参数规定交易状态trade_state是String(32)SUCCESSSUCCESS―支付成功 REFUND―转入退款 NOTPAY―未支付 CLOSED ―已关闭 REVOKED―已 撤销 USERPAYING--用户 支付中 NOPAY--未支付(输入密码或确认支付超时) PAYERROR--支付失败(其他原因,如银行返回失败)付款银行 总金额 货币种类bank_type total_fee fee_type是 是 否String(16) Int String(8)CMC 100 CNY银行类型,采用字符串类型的银行标识 订单总金额,单位为分 货币类型,符合 ISO 4217 标准的三位字母代码, 默认人民币:CNY,其他值列表详见第 4.2 节货币 类型现金支付金 额 现金支付货 币类型cash_fee是Int100现金支付金额订单现金支付金额,详见第 4.2 节支 付金额cash_fee_type否String(16)CNY货币类型,符合 ISO 4217 标准的三位字母代码, 默认人民币:CNY,其他值列表详见第 4.2 节货币 类型代金券或 立减优惠金额coupon_fee否Int“代金券或立减优惠”金额&=订单总金额,订单 总金额-“代金券或立减优惠”金额=现金支付金 额,详见第 4.2 节支付金额 代金券或 立减优惠使用数量coupon_count否Int1代金券或立减优惠使用数量代金券或 立减优惠批次 IDcoupon_batch_i d_$n否String(20)100代金券或立减优惠批次 ID ,$n 为下标,从 1 开始编号代金券或 立减优惠ID 单个代金coupon_id_$n否String(20)10000代金券或立减优惠 ID, $n 为下标,从 1 开始编号coupon_fee_$n否Int100单个代金券或立减优惠支付金额, $n 为下标, 从1 开始编号券或立减 优惠支付金额 微信支付订 单号 transaction_id 是 String(32)
368018 商户订单号 out_trade_no 是 String(32)
368018 商家数据包 支付完成时 间 attach time_end 否 是 String(128) String(14) 微信支付订单号商户系统的订单号,与请求一致。商家数据包,原样返回 订单支付时间,格式为 yyyyMMddHHmmss,如 2009 年 12 月 25 日 9 点 10 分 10 秒表示为 10。其他详见第 4.2 节时间规则举例如下:&xml& &return_code&&![CDATA[SUCCESS]]&&/return_code& &return_msg&&![CDATA[OK]]&&/return_msg& &appid&&![CDATA[wx0ec43b]]&&/appid& &mch_id&&![CDATA[]]&&/mch_id& &device_info&&![CDATA[1000]]&&/device_info& &nonce_str&&![CDATA[TN55wO9Pba5yENl8]]&&/nonce_str& &sign&&![CDATA[BDFBC6B1585FBB110AB635]]&&/sign& &result_code&&![CDATA[SUCCESS]]&&/result_code& &openid&&![CDATA[oUpF8uN95-Ptaags6E_roPHg7AG0]]&&/openid& &is_subscribe&&![CDATA[Y]]&&/is_subscribe& &trade_type&&![CDATA[MICROPAY]]&&/trade_type& &bank_type&&![CDATA[CCB_DEBIT]]&&/bank_type& &total_fee&1&/total_fee& &fee_type&&![CDATA[CNY]]&&/fee_type& &transaction_id&&![CDATA[0873]]&&/transaction_id& &out_trade_no&&![CDATA[]]&&/out_trade_no& &attach&&![CDATA[订单额外描述]]&&/attach& &time_end&&![CDATA[43]]&&/time_end& &trade_state&&![CDATA[SUCCESS]]&&/trade_state& &/xml&6名称错误码描述 此交易订单号 不存在 原因 查询系统中不存在此交易订 单号 解决方案 该 API 只能查提交支付交易返回成功 的订单, 请商户检查需要查询的订单号 是否正确ORDERNOTEXISTSYSTEMERROR系统错误后台系统返回错误系统异常,请再调用发起查询3. 1关闭订单 应用场景 以下情况需要调用关单接口:商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单, 避免重复支付;系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口。 2 接口链接 https://api.mch./pay/closeorder 3 是否需要证书 不需要。 4 请求参数变量名 必 填 公众账号 ID appid 是 String(32) wx888888 商户号 mch_id 是 String(32)
子商户公众账号 ID sub_appid 否 String(32) 微信分配的 子商户公众 账号 ID 子商户号 sub_mch_id 是 String(32) 微信支付分 配的子商户 号, 受理模式 子商户号 子商户公众账号 ID 微信支付分配的商户号 微信分配的公众账号 ID 类型 示例值 描述字段名 下必填 否 商户订单号 out_trade_n o String(32)
随机字符串 nonce_str 是 String(32) 5K8264ILT KCH16CQ2 502SI8ZNM TM67VS 签名 sign 是 String(32) C380BEC2 BFD727A4 BF3AD6 签名,详见 4.3.1 节签名生成算法 商户系统内部的订单号,32 个字符内、可包含 字母, 其他说明见第 4.2 节商户订单号 商户系统内部的订单号示例代码:&xml& &appid&wx0ec43b&/appid& &mch_id&&/mch_id& &nonce_str&4ca93f17ddf3443ceabf72f26d64fe0e&/nonce_str& &out_trade_no&&/out_trade_no& &sign&59FF1DF214B2D279A0EAD&/sign& &/xml&5返回结果变量名 必 填 类型 示例值 描述字段名返回状态码 返回信息return_code return_msg是 否String(16) String(128)SUCCESS 签名失败SUCCESS/FAIL 返回信息,如非空,为错误原因 签名失败 参数格式校验错误以下字段在 return_code 为 SUCCESS 的时候有返回字段名 变量名 必 填 公众账号 ID appid 是 String(32) wx888888 商户号 mch_id 是 String(32)
微信支付分配的商户号 微信分配的公众账号 ID 类型 示例值 描述 9 子商户公众账号 ID sub_appid 否 String(32) 微信分配的 子商户公众 账号 ID 子商户号 sub_mch_i d 是 String(32) 微信支付分 配的子商户 号,受理模 式下必填 随机字符串 nonce_str 是 String(32) 5K8264ILT KCH16CQ2 502SI8ZNM TM67VS 签名 sign 是 String(32) C380BEC2 BFD727A4 BF3AD6 错误代码 err_code 否 String(32) SYSTEME RROR 错误代码描述 err_code_d es 否 String(128) 系统错误 结果信息描述 详细参见第 6 节错误列表 签名,验证签名算法详见第 4.3.1 节 随机字符串,不长于 32 位 子商户号 子商户公众账号 ID示例代码&xml& &return_code&&![CDATA[SUCCESS]]&&/return_code& &return_msg&&![CDATA[OK]]&&/return_msg& &appid&&![CDATA[wx0ec43b]]&&/appid& &mch_id&&![CDATA[]]&&/mch_id& &nonce_str&&![CDATA[BFK89FC6rxKCOjLX]]&&/nonce_str& &sign&&![CDATA[72B321D92A7BFA0BC7B1631]]&&/sign& &result_code&&![CDATA[SUCCESS]]&&/result_code& &/xml&6错误码描述 订单已支付 原因 订单已支付,不能发起关单 解决方案 订单已支付, 不能发起关单,请当作已 支付的正常交易名称 ORDERPAIDSYSTEMERROR ORDERNOTEXIST ORDERCLOSED系统错误 订单不存在 订单已关闭系统错误 订单系统不存在此订单 订单已关闭,无法重复关闭系统异常,请重新调用该 API 不需要关单, 当作未提交的支付的订单 订单已关闭,无需继续调用 SIGNERROR签名错误参数签名结果不正确请检查签名参数和方法是否都符合签 名算法要求REQUIRE_POST_MET HOD XML_FORMAT_ERROR请使用 post 方 法 XML 格式错误未使用 post 传递参数请检查请求参数是否通过 pos

我要回帖

更多关于 微信文档发错了怎么办 的文章

 

随机推荐