微信企业转账实例之理论介绍
2016-08-24 13:11
447 查看
最近在搞公司的电商项目时,客户要求加上一个微信转账的功能。由于项目中并没有对应的插件,没法,只有现学现用。我先去微信商户平台官网上读取各种文档,最终做了一个demo。最后集成到了公司的项目中,大功告成。下面,我就一步一步的带大家来了解这个微信转账功能并公布自己的demo源码。
企业转账:提供企业向用户付款的功能,支持企业通过API接口付款至目标用户(企业可根据APPID+OpenID锁定目标用户)。针对已实名认证的用户,微信支付可提供校验真实姓名一致性的可选功能。付款资金将进入目标用户的零钱(微信-我-钱包-零钱)。微信支付将做零钱入账消息通知,零钱收支明细会展示相应记录。
API接口:https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers
cert证书:需要下载证书 证书使用
请求参数:
返回参数:
以下字段在return_code为SUCCESS的时候有返回
以下字段在return_code 和result_code都为SUCCESS的时候有返回
错误代码:转账失败的时候会返回错误代码,我们可以根据这些代码判断具体出错的内容
OK,理论知识其实并没有多少。简单点来说就是我们向指定的API地址post数据,再根据返回的数据进行下一步的判断。
下面的文章会在本文理论的基础上进行具体的代码实现。
企业转账:提供企业向用户付款的功能,支持企业通过API接口付款至目标用户(企业可根据APPID+OpenID锁定目标用户)。针对已实名认证的用户,微信支付可提供校验真实姓名一致性的可选功能。付款资金将进入目标用户的零钱(微信-我-钱包-零钱)。微信支付将做零钱入账消息通知,零钱收支明细会展示相应记录。
API接口:https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers
cert证书:需要下载证书 证书使用
请求参数:
字段名 | 变量名 | 必填 | 示例值 | 类型 | 描述 |
---|---|---|---|---|---|
公众账号appid | mch_appid | 是 | wx8888888888888888 | String | 微信分配的公众账号ID(企业号corpid即为此appId) |
商户号 | mchid | 是 | 1900000109 | String(32) | 微信支付分配的商户号 |
设备号 | device_info | 否 | 013467007045764 | String(32) | 微信支付分配的终端设备号 |
随机字符串 | nonce_str | 是 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | String(32) | 随机字符串,不长于32位 |
签名 | sign | 是 | C380BEC2BFD727A4B6845133519F3AD6 | String(32) | 签名,详见签名算法 |
商户订单号 | partner_trade_no | 是 | 10000098201411111234567890 | String | 商户订单号,需保持唯一性 |
用户openid | openid | 是 | oxTWIuGaIt6gTKsQRLau2M0yL16E | String | 商户appid下,某用户的openid |
校验用户姓名选项 | check_name | 是 | OPTION_CHECK | String | NO_CHECK:不校验真实姓名 FORCE_CHECK:强校验真实姓名(未实名认证的用户会校验失败,无法转账) OPTION_CHECK:针对已实名认证的用户才校验真实姓名(未实名认证用户不校验,可以转账成功) |
收款用户姓名 | re_user_name | 可选 | 马花花 | String | 收款用户真实姓名。 如果check_name设置为FORCE_CHECK或OPTION_CHECK,则必填用户真实姓名 |
金额 | amount | 是 | 10099 | int | 企业付款金额,单位为分 |
企业付款描述信息 | desc | 是 | 理赔 | String | 企业付款操作说明信息。必填。 |
Ip地址 | spbill_create_ip | 是 | 192.168.0.1 | String(32) | 调用接口的机器Ip地址 |
字段名 | 变量名 | 必填 | 示例值 | 类型 | 描述 |
---|---|---|---|---|---|
返回状态码 | return_code | 是 | SUCCESS | String(16) | SUCCESS/FAIL 此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断 |
返回信息 | return_msg | 否 | 签名失败 | String(128) | 返回信息,如非空,为错误原因 签名失败 参数格式校验错误 |
字段名 | 变量名 | 必填 | 示例值 | 类型 | 描述 |
---|---|---|---|---|---|
商户appid | mch_appid | 是 | wx8888888888888888 | String | 微信分配的公众账号ID(企业号corpid即为此appId) |
商户号 | mchid | 是 | 1900000109 | String(32) | 微信支付分配的商户号 |
设备号 | device_info | 否 | 013467007045764 | String(32) | 微信支付分配的终端设备号, |
随机字符串 | nonce_str | 是 | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | String(32) | 随机字符串,不长于32位 |
业务结果 | result_code | 是 | SUCCESS | String(16) | SUCCESS/FAIL |
错误代码 | err_code | 否 | SYSTEMERROR | String(32) | 错误码信息 |
错误代码描述 | err_code_des | 否 | 系统错误 | String(128) | 结果信息描述 |
字段名 | 变量名 | 必填 | 示例值 | 类型 | 描述 |
---|---|---|---|---|---|
商户订单号 | partner_trade_no | 是 | 1217752501201407033233368018 | String(32) | 商户订单号,需保持唯一性 |
微信订单号 | payment_no | 是 | 1007752501201407033233368018 | String | 企业付款成功,返回的微信订单号 |
微信支付成功时间 | payment_time | 是 | 2015-05-19 15:26:59 | String | 企业付款成功时间 |
错误代码 | 描述 | 原因 | 解决方案 |
---|---|---|---|
NOAUTH | 没有权限 | 没有授权请求此api | 请联系微信支付开通api权限 |
AMOUNT_LIMIT | 付款金额不能小于最低限额 | 付款金额不能小于最低限额 | 每次付款金额必须大于1元 |
PARAM_ERROR | 参数错误 | 参数缺失,或参数格式出错,参数不合法等 | 请查看err_code_des,修改设置错误的参数 |
OPENID_ERROR | Openid错误 | Openid格式错误或者不属于商家公众账号 | 请核对商户自身公众号appid和用户在此公众号下的openid。 |
NOTENOUGH | 余额不足 | 帐号余额不足 | 请用户充值或更换支付卡后再支付 |
SYSTEMERROR | 系统繁忙,请稍后再试。 | 系统错误,请重试 | 使用原单号以及原请求参数重试 |
NAME_MISMATCH | 姓名校验出错 | 请求参数里填写了需要检验姓名,但是输入了错误的姓名 | 填写正确的用户姓名 |
SIGN_ERROR | 签名错误 | 没有按照文档要求进行签名 | 签名前没有按照要求进行排序。 没有使用商户平台设置的密钥进行签名 参数有空格或者进行了encode后进行签名。 |
XML_ERROR | Post内容出错 | Post请求数据不是合法的xml格式内容 | 修改post的内容 |
FATAL_ERROR | 两次请求参数不一致 | 两次请求商户单号一样,但是参数不一致 | 如果想重试前一次的请求,请用原参数重试,如果重新发送,请更换单号。 |
CA_ERROR | 证书出错 | 请求没带证书或者带上了错误的证书 | 到商户平台下载证书 请求的时候带上该证书 |
下面的文章会在本文理论的基础上进行具体的代码实现。
相关文章推荐
- 实例学习SSIS(五)--理论介绍SSIS
- iPhone企业应用实例分析之一:系统介绍和需求及主要用例
- 某企业WSUS服务实例介绍
- 实例学习SSIS(五)--理论介绍SSIS
- 【微信开发】-- 企业转账到用户_0
- 【微信开发】-- 企业转账到用户
- 实例学习SSIS(五)--理论介绍SSIS
- 微信企业转账【完整DEMO代码】
- 图文介绍报表与企业微信公众号集成方案
- 【微信开发】-- 企业转账到用户_0
- 微信小程序 实战实例开发流程详细介绍
- iPhone企业应用实例分析之一:系统介绍和需求及主要用例
- 以 Python 为实例,介绍贝叶斯理论
- 微信企业转账之入口类分装
- 微信企业转账【完整DEMO代码】
- 微信开发--企业转账到用户
- 企业微信有什么用,介绍企业微信6个强大的功能
- 实例学习SSIS(五)--理论介绍SSIS