很久很久之前,写了打通接口时遇到的坑,最近,终于写代码啦哈哈哈哈
好了,正题:

参考官方文档

https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2java

  • 有序参数生成签名(复制的官方文档代码~~~)
  • 将参数值data按照ASCII码值排序,ksort() 解决
  • data的元素参考下方xml参数(不包括sign)
function createSign($data){$stringA = '';foreach ($data as $key => $value) {$stringA .= '&'.$key.'='.$value;}$stringA = substr($stringA, 1);$stringSignTemp = $stringA."&key=key"; //注:key为商户平台设置的密钥key$sign = strtoupper(MD5($stringSignTemp)); //注:MD5签名方式//$sign = strtoupper(hash_hmac("sha256", $stringSignTemp, $key)); //注:HMAC-SHA256签名方式$data['sign'] = $sign;return $data;}
  • 发送的xml参数
  • 把xml参数拼接成字符串$xml,再发送
<xml><amount>amount</amount>                              //金额以分为单位,最低限额可在企业账号平台进行设置<check_name>NO_CHECK</check_name>                    //是否校验真实姓名,如果值为FORCE_CHECK,下面注释的re_user_name代码也要作为参数传递<desc>desc</desc>                                    //描述,用户收到打款信息详情显示的提示<mch_appid>mch_appid</mch_appid>                     //进行打款的公众号的openid<mchid>mchid</mchid>                                 //商户号<nonce_str>sdfklqswdcfec</nonce_str>                 //随机字符串<openid>openid</openid>                              //收到打款的用户,在当前公众号下的openid<partner_trade_no>no</partner_trade_no>              //系统内部订单号,不是微信的,是我们开发的系统内部的订单号<!--<re_user_name>张三</re_user_name>-->              //真实姓名<spbill_create_ip>ip</spbill_create_ip>              //该IP同在商户平台设置的IP白名单中的IP没有关联,该IP可传用户端或者服务端的IP。<sign>025FE0384AQS28E11DCF2D3A023435AE</sign>        //通过算法处理得到的签名
</xml><!--把xml参数拼接成字符串$xml,再发送-->
  • 通过httpcurl携带证书发送请求
  • $url = ‘https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers’;
$url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';function withdraw_post($url,$xml,$second=30){$ch = curl_init();curl_setopt($ch,CURLOPT_TIMEOUT,$second);curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);curl_setopt($ch,CURLOPT_SSLKEY,'/证书在服务器上的绝对路径key.pem');curl_setopt($ch,CURLOPT_SSLCERT,'/证书在服务器上的绝对路径cert.pem');curl_setopt($ch,CURLOPT_POST, 1);curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);$data = curl_exec($ch);if($data){curl_close($ch);return $data;}else{$error = curl_errno($ch);echo "call faild, errorCode:$error\n";curl_close($ch);return false;}}
  • 处理接口返回的xml数据
$xmlstring = simplexml_load_string($res, 'SimpleXMLElement', LIBXML_NOCDATA);
//simplexml_load_string() 函数转换形式良好的 XML 字符串为 SimpleXMLElement 对象
$arr = json_decode(json_encode($xmlstring),true);

微信企业支付 公众号付款到零钱(二)代码实现相关推荐

  1. 微信企业支付发送到零钱

    微信企业支付发送到零钱 企业微信付款到零钱,是微信提供的一个支付接口. 一下是代码的具体实现 前置条件 已开通微信应用(服务号或者小程序),主要用到APPID+OPENID 已开通微信商户,并且开通企 ...

  2. 企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET

    企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET 原文:企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET 先看效果 1.本文演示的是 ...

  3. 微信jsapi支付获取code_JAVA开发微信支付-公众号支付/微信浏览器支付(JSAPI)

    写这篇文章的目的有2个,一是自己的项目刚开发完微信支付功能,趁热回个炉温习一下,二也是帮助像我这样对微信支付不熟悉,反复看了多天文档还是一知半解,原理都没摸清,更不要说实现了.本以为网上的微信开发教程 ...

  4. SpringBoot从入门到精通教程(二十九)- 微信企业支付集成(五分钟集成)

    需求背景 SpringBoot用法:微信企业支付集成(五分钟集成) 问题痛点 通过SpringBoot框架,集成服务端微信企业支付接口,做到下载即用(填写好相关微信支付后台相关Key信息),最快五分钟 ...

  5. 微信企业支付(一)注意

    今天看了微信企业支付,没用代码实现,用postman简单测试了借口,看看返回数据,折腾大半天,总结: ca证书,官方给的证书工具无法运行,检查了dll文件,下载了各种修复工具什么的,结果,换个电脑好了 ...

  6. 微信小程序公众号开发

    微信小程序&公众号开发 一.什么是微信开发 二.微信开放平台 三.微信公众平台 四.小程序与公众号的区别 1. 用途不同 2. 运营方式不同 3. 操作方法不同 4. 用户体验不同(公众号操作 ...

  7. 微信公众号扫描带参数二维码实现自动分组?

    2019独角兽企业重金招聘Python工程师标准>>> 最近很多人都在问微信公众号扫描带参数二维码实现自动分组,通过微号帮平台操作实现,这个功能不止如此,微信二维码来源统计分析.微信 ...

  8. 如何推广企业微信号?企业进行公众号的推广有哪些方法?

    如何推广企业微信号?企业运营公众号最头痛的是如何将微信公众号推广出去,如何让微信公众号得到大量的曝光,下面伯乐传媒给大家分享一些推广企业公众号的方法记得点攒收藏哦 ! 一.进行线下推广 **1.以传单 ...

  9. 微信企业支付RSA加密报错

    在微信企业支付的"转账到银行卡"接口中,卡号和姓名需要通过rsa加密传输,但是在开发过程中,加密一直报错,是因为Java开发的rsa加密的jar包问题, 两个jar包:local_ ...

最新文章

  1. 使用按钮控制HTML5背景音乐开关
  2. python专科就业_利用Python分析复旦大学近五年转专业失败的情况
  3. 西湖大学鞠峰组:环境微生物的宏基因组学实例与新发现
  4. 【jQuery 区别】attr()和prop()的区别
  5. PyCharm——运行错误【Process finished with exit code -1073741819 (0xC0000005)】解决方案之一
  6. Android NDK带来什么
  7. 网络演算(Networkcalculus)
  8. centos重新安装yum
  9. 人这辈子没法做太多的事情
  10. java servlet是单例吗_关于java:为什么apache servlet是单例?
  11. mysql查询库中所有的表名,mysql查询指定表中的所有字段名及其相关信息
  12. h.264保存flv文件
  13. Lighttpd 启用 HTTPS 并重定向 HTTP 为 HTTPS 访问配置
  14. 用matlab的dsp软件仿真,基于MATLAB的DSP软件仿真
  15. #3,Android Studio Android开发APP的开发语言和APP连接的数据库 总结
  16. DOM Scripting 学习六 - Image Gallery
  17. 网易2017春招笔试——集合
  18. web项目欢迎页设置
  19. 声音的频率与主观听感
  20. 厦门大学校园导游系统(图论)

热门文章

  1. 成都拓嘉启远:拼多多直播间人气值提升
  2. Android 中 字符串比较
  3. 《开源圆桌派》第十一期“冰与火之歌”——如何平衡开源与安全间的天然矛盾?...
  4. 【nginx】画龙点睛之服务器安全与完善
  5. 计算机毕业设计ssm高校职称申报系统337gs系统+程序+源码+lw+远程部署
  6. catia里画铰链_汽车门铰链三维造型
  7. 【Windows常用快捷键,建议收藏】
  8. 扫地机器人黑色耐脏吗_扫地机好用吗?给大家讲讲扫地机买后感受
  9. 使用memcache 心得和注意事项
  10. 自然语言处理NLP星空智能对话机器人系列:第4、5、6、7次星空智能对话机器人Zoom线上演示安排