最近帮朋友做了一个简单的微分销系统,实现从企业付款到零钱分润的功能,简单记录一下微信企业付款到零钱的开发过程,

主要就是按规则封装好请求参数调用微信接口,涉及一些签名校验;

A.接口流程

1. 获取用户OPENID ,不同用户在不同公众号下的OPENID都是唯一的, 这里主要讲企业付款到零钱,已经实现微信获取用户信息的骚年可以跳过这一步
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839

2. 参数签名,需要将参数签名传递到微信企业付款接口,如果之前有实现其他微信接口,可以复用原来签名方法
https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=4_3

3. 调用企业付款接口
https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2

B.前置条件

1. 已开通微信应用(服务号或者小程序),主要用到APPID+OPENID
2. 已开通微信商户,并且开通企业付款到零钱,主要用到商户号+商户秘钥+商户证书

C.代码实现:

核心代码就是下面这个方法,其实把需要的参数准备好后逻辑就很简单了,实现的就是开发流程中定义的几个步骤;

 

D.最终效果

微信企业付款API的JAVA代码我打了个压缩包,有兴趣的骚年可以自己下载到本地,项目可以直接跑起来,需要把参数根据自己的实际情况进行配置;小程序和微信服务号操作流程都是一样的。

--企业付款DEMO下载--   提取码: s7ps

E.常见问题

文章主要还是给大家提供思路,有网友留言说付款还是会遇到问题,可以加我的QQ:2172931891,尽可能帮助定位;
我了解反馈最多的是下面这几类问题,如果有遇到的话可以先自己排查下:

app_id (商户关联的应用ID)  
mch_id (商户ID) 
key (商户秘钥)

1.SIGNERROR 签名错误
-- 请求时编码要是全部设置为UTF-8; 
-- key传的不正确,key和app_id一定要对的上,如果已经接入过微信支付,要确认这里的传的就是微信支付中用到的key; 
-- 签名的参数和传递给微信的参数不匹配,一般是拼接参数不正确导致的,DEMO中参数已经配置好了,只要不修改参数的个数基本不会有问题;

2.NO_AUTH 此IP地址不允许调用接口
-- 新版本商户后台默认需要IP校验,有些人填192.168.1.XXX这种内网IP是不行的,可以访问ip168之类的网站获取自己的外网地址;在开发阶段也可以先关掉校验,方便本地调试;

3.OPENID_ERROR Openid错误
-- app_id和openid没对上导致的,比如公司同时开通了小程序和微信服务号,两个应用关联了同一个商户,极有可能就是用的小程序app_id作为参数,但是传的是微信服务号关联的openid

企业付款到个人零钱差不多就这些内容,希望可以给大家一点帮助 : )

原文链接(本人博客搬迁):https://blog.csdn.net/angryjiji/article/details/97398100

JAVA微信企业付款到零钱(十分钟搞定),附完整DEMO下载的更多相关文章

  1. 十分钟搞定pandas内容

    目录 十分钟搞定pandas 一.创建对象 二.查看数据 三.选择器 十二.导入和保存数据 参考:http://pandas.pydata.org/pandas-docs/stable/whatsne ...

  2. 关于微信企业付款到零钱X509Certificate2读取证书信息,发布到服务器访问不到的解决方案

     前言: 最近做了一个通过调用微信企业付款到用户零钱的功能,真的挺奇怪的,在我本地调试的时候都没有问题,但是当我发布到服务上的时候却一直无法读取到我的证书信息.读取的代码如下,使用的是微信官方文档提供 ...

  3. 十分钟搞定微信企业帐号“echostr校验失败,请您检查是否正确解密并输出明文echostr”

    问题域:在这里我们只解决密文可以正确解密,但微信验证提示“echostr校验失败,请您检查是否正确解密并输出明文echostr”的问题. 干货:没有正确验证的原因是:你给微信返回的是字符串,而微信需要 ...

  4. 【原】十分钟搞定pandas

    http://www.cnblogs.com/chaosimple/p/4153083.html 本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译 ...

  5. 十分钟搞定 pandas

    原文:http://pandas.pydata.org/pandas-docs/stable/10min.html 译者:ChaoSimple 校对:飞龙 官方网站上<10 Minutes to ...

  6. 十分钟搞定pandas

    转至:http://www.cnblogs.com/chaosimple/p/4153083.html 本文是对pandas官方网站上<10 Minutes to pandas>的一个简单 ...

  7. 【Python笔记】十分钟搞定pandas

    本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook .习惯 ...

  8. 十分钟搞定mongodb副本集

    mongodb副本集配置 最近项目中用到了mongodb,由于是用mongodb来记录一些程序的日志信息和日常的统计,为了增加应用的可靠性,一直在找mongodb集群的一些资料,下面是对最近做的一个小 ...

  9. 十分钟搞定CSS选择器

    在最近的web开发中是不是就会用到一些选择器,发现很多尤其是CSS3新增的不太熟悉,在此总结一下. 优先级 不同级别 1. 在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式. ...

随机推荐

  1. spark-3.0 application 调度算法解析

    spark 各个版本的application 调度算法还是有这明显的不同之处的.从spark1.3.0 到 spark 1.6.1.spark2.0 到 现在最新的spark 3.0 ,调度算法有了一 ...

  2. js中数组去重方法及性能对比

    js中数组的 数组去重 常用的数组去重方法以及效率分析: 首先我们先构建一个数组,主要是用于进行去重实验,我们主要实验的量级为1000,10000,100000,500000.具体的生成数组的方法如下 ...

  3. 一篇文章看懂JS闭包,都要2020年了,你怎么能还不懂闭包?

     壹 ❀ 引 我觉得每一位JavaScript工作者都无法避免与闭包打交道,就算在实际开发中不使用但面试中被问及也是常态了.就我而言对于闭包的理解仅止步于一些概念,看到相关代码我知道这是个闭包,但闭包 ...

  4. HUE备份已定义好的workflow

    HUE备份已定义好的workflow 最近使用HUE定义了一个很复杂的调度,但是调度执行到一半就开始报错....  这个可真让人头疼呀, 从头开始跑数据吧 太费时间了,而且会容易造成Hive库总数据冗 ...

  5. SpringBoot系列-整合Mybatis(XML配置方式)

    目录 一.什么是 MyBatis? 二.整合方式 三.实战 四.测试 本文介绍下SpringBoot整合Mybatis(XML配置方式)的过程. 一.什么是 MyBatis? MyBatis 是一款优 ...

  6. ribbon客户端负载均衡

    Ribbon简介 参考:https://blog.csdn.net/chengqiuming/article/details/80711168 Ribbon是Netflix发布的负载均衡器,它有助于控 ...

  7. Nginx 入门学习

    什么是 Nginx Nginx 是一款轻量级高性能的web 和 反向代理服务器,类似于Apache,也是一个 IMAP/POP3/SMTP (电子邮件)代理服务器.由俄罗斯程序设计师 Igor Sys ...

  8. Java学习笔记--线程day01

    线程的概念:一个线程是进程的顺序执行流: 同类的多个线程共享一块内存空间和一组系统资源,线程本身有一个供程序执行时的堆栈.线程在切换时负荷小,因此,线程也被称为轻负荷进程.一个进程中可以有多个线程. ...

  9. Unable to connect to the server: x509: certificate signed by unknown authority

    0x00 Problem 在使用二进制搭建 k8s 集群的过程中,使用 kubectl get 等操作时始终显示 x509: certificate signed by unknown authori ...

  10. 《HTTPS权威指南》读书笔记——SSL/TLS协议

    记录协议(record protocol) 负责在传输连接上交换所有底层信息 每一条记录以短标头开始,标头包含记录内容的类型.协议版本和长度 握手协议(handshake protocol) 整个过程 ...