企业付款到零钱API开发~~~ 付款到微信

近日,在开发“微信企业付款到零钱”的功能。之前有过微信开发的经验,但是第一次接触“付款到零钱“这一块的业务,查询了很多的博客资料以及走了很多的弯路。也发现“企业付款到零钱”分享的博客并不多。特地写了该博客,希望对你们有帮助。个人浅薄的见解

代码下载地址如下:
链接:https://pan.baidu.com/s/1h6_ZSz5RbFARlY9yxkvj5w
提取码:weft
有任何关于微信开发的问题可以相互交流, 推荐QQ:2172931891 , 另外有微商城、微分销、微信小游戏等系统源码,有需要可以联系免费提供。
在这里插入图片描述
【稍微提一下:】上一篇博客分享了“企业付款到银行卡API~~”文章,有位博友留言了,遇到了“产品权限验证失败 请查看您当前是否具有该产品的权限”。这是因为没有在微信商务后台开通对应的功能。API里面已经明确提示了。这里我是建议:大家一定要先去看文档,看完再来看这篇文章。文档也就三四页而已,也就20分钟
这里写图片描述
一、企业付款到零钱API
https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1
【建议还是看看】
这里写图片描述
二、开发准备
(1)证书的准备:java开发需要用到:apiclient_cert.p12证书的,在微信商户平台(pay.weixin.qq.com)–>账户设置–>API安全–>证书中下载的 。
这里写图片描述

【何时用到证书?】与支付不一样,企业支付功能在发送post请求的时候,需要加载自己的一个证书之后,带着证书去请求退款才可以。这里使用到证书–很多人不知道证书在哪里使用
(2)了解好数字签名 — 简单来解释,就是对自己要发送的数据进行加密处理、换句话说假如说你要传递A/B/C,就对这三者进行加密。初开发者的误区:不知道该加密什么数据、观看网上的博客胡乱进行签名,导致签名错误
【温馨提示:】数字签名是一般开发人员容易遇到的错误,记住“你没遇到数字签名错误,都不好意思说自己做过微信退款支付订单查询等功能”。 签名工具类见:我这里就不贴出来了
http://blog.csdn.net/xiaozhegaa/article/details/79127283

耐心解决就行
(3) xml到map、map到xml转化、发送Post请求、签名等操作。具体见下篇文章。方法和类都分享出来了,copy即可
http://blog.csdn.net/xiaozhegaa/article/details/79127283

三、API截图解释
~~ 开通条件:
这里写图片描述
~ 接口说明 + 是否需要证书
这里写图片描述

~ 证书说明 java开发只需要:apiclient_cert.p12
这里写图片描述

四、开发步骤如下
这里写图片描述

1、拼凑所需要传递的参数 map集合
2、根据要传递的参数生成自己的签名
3、把签名放到map集合中【因为签名也要传递过去,看API】
4、将当前的map结合转化成xml格式
5、发送请求到企业付款到零钱的Api。发送请求是一个方法来的POST
6、解析返回的xml数据===》map集合

7、根据map中的result_code AND return_code来判断是否成功与失败

不得不再啰嗦一下。下面设计到签名、mapToXml转化、xmlToMap转化、发送请求到API。这些方法都可以在下面网址看到。这里我Xml转化成Map。我是习惯用一个Bean接收,也有范例的代码,大家模仿能力要强一点。这次贴出来给大家看看吧
http://blog.csdn.net/xiaozhegaa/article/details/79127283

@SuppressWarnings("unchecked") public static EnterpriceToCustomer parseXmlToMapEnterpriceToCustomer(String xml){ EnterpriceToCustomer enterpriceToCustomer = new EnterpriceToCustomer(); try { StringReader read = new StringReader(xml); // 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入 InputSource source = new InputSource(read); // 创建一个新的SAXBuilder SAXBuilder sb = new SAXBuilder(); // 通过输入源构造一个Document Document doc; doc = (Document) sb.build(source); Element root = doc.getRootElement();// 指向根节点 List<Element> list = root.getChildren(); if(list!=null&&list.size()>0){ for (Element element : list) { System.out.println("key是:"+element.getName()+",值是:"+element.getText()); if("return_code".equals(element.getName())){ enterpriceToCustomer.setReturn_code(element.getText()); } if("return_msg".equals(element.getName())){ enterpriceToCustomer.setReturn_msg(element.getText()); } if("mchid".equals(element.getName())){ enterpriceToCustomer.setMchid(element.getText()); }if("nonce_str".equals(element.getName())){ enterpriceToCustomer.setNonce_str(element.getText()); }if("result_code".equals(element.getName())){ enterpriceToCustomer.setResult_code(element.getText()); }if("partner_trade_no".equals(element.getName())){ enterpriceToCustomer.setPartner_trade_no(element.getText()); }if("payment_no".equals(element.getName())){ enterpriceToCustomer.setPayment_no(element.getText()); }if("payment_time".equals(element.getName())){ enterpriceToCustomer.setPayment_time(element.getText()); }	//错误的编码/*private String err_code;private String err_code_des;* */if("err_code".equals(element.getName())){ enterpriceToCustomer.setErr_code(element.getText()); }if("err_code_des".equals(element.getName())){ enterpriceToCustomer.setErr_code_des(element.getText()); }	}}} catch (JDOMException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }catch (Exception e) { e.printStackTrace(); } return enterpriceToCustomer; } 
@Testpublic void OldBook(){//1.0 拼凑企业支付需要的参数String appid = wxconfig.AppID;  //微信公众号的appidString mch_id = wxconfig.mch_id; //商户号String nonce_str = RandomStringGenerator.getRandomStringByLength(32); //生成随机数String partner_trade_no =  RandomStringGenerator.getRandomStringByLength(32); //生成商户订单号String openid = "oYiAh0ypHoaYFoVFhAsnv1aJ****"; // 支付给用户openidString check_name = "NO_CHECK"; //是否验证真实姓名呢String re_user_name = "小郑";   //收款用户姓名String amount = "100"; 				//企业付款金额,单位为分String desc = "测试开发,稍后会还给公司的";   //企业付款操作说明信息。必填。String spbill_create_ip = "192.168.**.****;		////2.0 生成map集合SortedMap<Object, Object> packageParams = new TreeMap<Object, Object>(); packageParams.put("mch_appid", appid);         //微信公众号的appidpackageParams.put("mchid", mch_id);       //商务号packageParams.put("nonce_str",nonce_str);  //随机生成后数字,保证安全性packageParams.put("partner_trade_no",partner_trade_no); //生成商户订单号packageParams.put("openid",openid);            // 支付给用户openidpackageParams.put("check_name",check_name);    //是否验证真实姓名呢packageParams.put("re_user_name",re_user_name);//收款用户姓名packageParams.put("amount",amount);            //企业付款金额,单位为分packageParams.put("desc",desc);    			   //企业付款操作说明信息。必填。packageParams.put("spbill_create_ip",spbill_create_ip); //调用接口的机器Ip地址//3.0 生成自己的签名String sign  = WeixinPayBack.createSign("utf-8",packageParams);//4.0 封装退款对象packageParams.put("sign", sign);//5.0将当前的map结合转化成xml格式String reuqestXml = WXPayUtil.getRequestXml(packageParams);//6.0获取需要发送的url地址String wxUrl = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers"; //获取退款的api接口try {String weixinPost = ClientCustomSSL.doRefund(wxUrl, reuqestXml).toString();//7.0 解析返回的xml数据com.fh.entity.nrb.xiaozheng.EnterpriceToCustomer refundResult = WeixinPayBack.parseXmlToMapEnterpriceToCustomer(weixinPost);if("SUCCESS".equalsIgnoreCase(refundResult.getResult_code()) && "SUCCESS".equalsIgnoreCase(refundResult.getReturn_code())){//8表示退款成功//TODO 执行成功付款后的业务逻辑//return successPayMoneyByBankCard(submitMoney,cmms_amt,enterpriceToCustomerByCard,applyId,companyId);}else{//9 表示退款失败//TODO 调用service的方法 ,存储失败提现的记录咯//failToPayMoneyByBankCard(enterpriceToCustomerByCard,applyId);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}

这里写图片描述

五、结果演示
这里写图片描述
自此,我们就学会了“企业付款到个人零钱”的开发,希望对你们有帮助
具体的、在调用改方法自己加上自己的业务逻辑就行了。希望对大家有帮助

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/251190.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

滴滴出行平台业务架构演进

桔妹导读&#xff1a;为了满足不同用户在价格、体验等方面的差异化诉求&#xff0c;滴滴提供了越来越丰富的品类&#xff0c;这些品类大体流程是类似的&#xff0c;在一些细节体验上有差异&#xff0c;一套架构如何兼顾隔离和复用&#xff0c;同时支持这些品类&#xff0c;且看…

【第三章:存储系统】

目录 知识框架No.0 引言No.1 存储器概述一、存储器的层次结构二、储存器的分类1、按照层次结构进行分类2、按照存储介质3、按照存取方式4、信息的可更改性5、信息的可保存性 三、存储器的性能指标1、存储容量2、单位成本3、存储速度 No.2 主存储器的基本组成一、基本的半导体元…

数字后的顿号变成斜杠 - 解决方案

前言 PC端键盘输入数字后的顿号变成斜杠&#xff0c;这并不是因为Office的自动校正功能引起的&#xff0c;而是由搜狗输入法的智能调整数字后标点功能引起的&#xff0c;该功能也会将数字后的中文句号改为英文句号&#xff0c;若不需要这些功能&#xff0c;则可以关闭搜狗输入…

邓号用计算机怎么输入,电脑上顿号怎么打出来

【电脑上顿号怎么打出来】电脑最为重要的一个用途就是编辑文档&#xff0c;而文编文档就要涉及到符号&#xff0c;一般的句号、逗号键盘上都要。那么&#xff0c;顿号这类电脑键盘上没有的符号怎么打出来呢&#xff1f;很多人反映键盘上没有顿号的按键&#xff0c;使用时打不出…

在电脑上顿号咋打?

按照以下步骤可以打出顿号&#xff1a; 1、首先将输入法的中英文切换到中文&#xff0c;如图所圈出的位置&#xff1b; 2、在键盘上敲击下图所圈出的键&#xff0c;便可打出顿号。&#xff08;有的电脑敲击“\”按键哦&#xff01;&#xff09; 需注意的是&#xff0c;如果输入…

数据分割,顿号替换成制表符

有些时候我们需要向数据库里导入一些现有数据&#xff0c;而数据格式的清理则是很重要的一部分&#xff0c;本文就将存在顿号的数据串分割成一个一个的数据。 需要使用到的工具是&#xff1a;EditPlus

Office 顿号怎么输

中文状态下回车上面一个按键就是 转载于:https://www.cnblogs.com/acetaohai123/p/6589431.html

html中键盘分别对应的值,电脑键盘键值所对应的功能详解

虽然&#xff0c;电脑的键盘看上去很相似&#xff0c;但是&#xff0c;只要仔细观察&#xff0c;不同的电脑配置的键盘的键值还是有些许细微的差异。好在一些常用键值都是一样的&#xff0c;这里详解的就是这些通用键值所对应的功能。有兴趣的朋友可以参考一下哦&#xff01; E…

关于CentOS系统中键盘错乱的解决window10默认输入法顿号句号失灵

关于CentOS系统中键盘错乱的解决 首先&#xff1a;我的CentOS是装在windows系统的虚拟机中。 错误如图&#xff1a; 在网上查了很多解决办法&#xff0c;然而不太行 首先&#xff0c;可以使用localectl status查看&#xff0c;正常如下 如果不对则修改&#xff1a; System Lo…

搜狗拼音linux 知乎,搜狗拼音知乎专版下载

搜狗拼音输入法知乎专版是知乎和搜狗联合发布的「刘看山定制版输入法」&#xff0c;内置刘看山动态皮肤&#xff0c;当输入情景关键词的时候&#xff0c;还会有可爱的刘看山系列表情。而在功能上也更贴近了知乎用户的使用习惯&#xff0c;包括直角引号「」的快捷输入&#xff0…

微信小黄鸡php,微信表情包小黄鸡含义

这是微信表情包小黄鸡含义下载&#xff0c;微信表情包小黄鸡含义小黄鸡高登表情包是一款小黄鸡系列又一给力大作&#xff0c;撩人的表情再搭配污污的标语&#xff0c;想必对女生朋友杀伤力巨大&#xff0c;非常适合情人节撩妹所用&#xff0c;内含的动画图片&#xff0c;丰富的…

他用科技复活传统艺术:发现甲骨文的终极浪漫

导读&#xff1a;古文字研究&#xff0c;如今已经不单纯是语言学家、考古学家的工作。许多工程师也在用科技的手段去研究、阐释古老文字背后的意义。谷歌与清华大学美术学院陈楠教授&#xff0c;在今年 GDD&#xff08;谷歌开发者大会&#xff09;上推出的「智绘甲骨」项目&…

提前体验让人回归Windows怀抱的Windows Terminal

前言 在一年一度的微软开发者大会Build 2019登场的Windows Terminal饱受好评&#xff0c;大家对其也是充满了兴趣和热情&#xff0c;程序员的朋友圈都被微软发布的最新终端 windows Terminal短短几天时间内就已登顶Github。当然与此同时&#xff0c;微软还新出一款萌萌的等宽字…

这本Go语言也太萌了,各就各位,预备,Go!

Go作为一门广受关注的热门语言&#xff0c;在市场上从来不缺少相关的书&#xff0c;特别是面向初学者的书。然而&#xff0c;跟市面上很多声称是入门书却只会一股脑儿地将各种语言细节硬塞给读者的“伪入门书”不一样&#xff0c;《Go语言趣学指南》是一本真正面向初学者的书。…

Emoji的编码以及常见问题的解决方法

原文&#xff1a;https://segmentfault.com/a/1190000007594620 一个Emoji的趣闻 我在 虎嗅上 看过一篇关于Emoji的文章,特别有意思,在这里跟大家分享一下. 里面提到了Emoji是怎么诞生的。 1999年前后&#xff0c;日本一个名叫栗田穰崇的年轻人&#xff0c;和许多直男一样&…

【实用篇】SpringCloud02

文章目录 SpringCloud020.学习目标1.Nacos配置管理1.1.统一配置管理1.1.1.在nacos中添加配置文件1.1.2.从微服务拉取配置 1.2.配置热更新1.2.1.方式一1.2.2.方式二 1.3.配置共享1&#xff09;添加一个环境共享配置2&#xff09;在user-service中读取共享配置3&#xff09;运行两…

数学计算机学具制作,神奇的数学

神奇的数学 神奇的数学1 好玩的数学&#xff0c; 加减乘除的运用&#xff0c; 就像奇妙的游戏&#xff0c; 带来无穷的乐趣&#xff0c; 数学真好玩。 奇妙的数学&#xff0c; 就像头脑一样&#xff0c; 知识永无止境&#xff0c; 有着魔力般的吸引力&#xff0c; 让人想成长。…

html 掉爱心特效,微信发什么会掉爱心特效(微信特效词语合集)

微信特效词语一览 财源滚滚&#xff0c;金币&#xff0c;下! 满屏掉金币特效&#xff0c;注意别输错符号。 鸡年大吉!小黄鸡蹦蹦蹦! 满屏出现萌萌的小黄鸡特效&#xff0c;十分可爱。 发年终奖!钞票雨!落! 满屏飞钞票&#xff0c;十分霸气壮观。 么么哒 不用说了&#xff0c;一…

(一)JS 基础篇—基础知识总结

⛺️ 欢迎大家拜访我的&#xff1a;个人博客 ⛽️ 前端加油站之【JavaScript】⛽️ 内容地址&#xff08;一&#xff09;JS 基础篇—基础知识总结⛳️ 【快来点点我 ~】&#xff08;二&#xff09;JS 基础篇—函数与作用域⛳️ 【快来点点我 ~】&#xff08;三&#xff09;JS 基…

采用CAD刀模插件(飞狼刀模工具箱)批理倒圆角

批理倒圆角的操作过程&#xff1a; 1.先打开装有飞狼刀模工具箱的CAD。 2.在CAD里打开需要批量倒角的文件。 3.找到批量倒 角图标。 4.点击图标。 5.输入倒角半径。 6.选择需要倒角的线条回车。 软件下载链接包装盒自动绘制刀模图CAD工具箱-制造文档类资源-CSDN下载