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

参考官方文档

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. 理想的计算机职业作文100,我的理想作文100字(通用30篇)
  2. Android之简单背景颜色渐变实现
  3. 【官方文档】《暗黑世界V1.4》API说明!
  4. 文本或代码中 \n 和 \r 的区别
  5. java文件服务器_JavaWeb项目架构之NFS文件服务器
  6. [西瓜书习题] 第二章 模型评估与选择
  7. nparray和tensor的相互转化
  8. 都说不建议使用递归操作,到底为什么?
  9. linux awk 管道,shell使用管道,配合awk,一句代码清空大于设定大小的日志文件
  10. velocity java 静态方法_java – 如何访问Velocity模板中的静态成员?
  11. nginx解决浏览器跨域问题_使用nginx解决浏览器跨域
  12. CUDA + QT Creator + Win7的集成
  13. SiteMesh2-示例工程
  14. Android ListView 获取Item的值和得到每一个Item的view对象以及得到他们所对应的控件值
  15. 中国第一代技术网红,阿里云P10技术专家褚霸:我只是一个程序员 。
  16. shell获取系统当前时间、本月1日、下月1日、本月月底、上月月底、上月同期日期
  17. numpy dot用法解释
  18. 学计算机拼音摇号,电脑摇号:作弊100%!
  19. jquery获取当前时间戳的正确时间
  20. CMD控制台提示“telnet不是内部或外部命令,也不是可运行的程序或批处理文件”

热门文章

  1. #115 二维数组数据行列互换
  2. 七日杀服务器无限刷空投,七日杀空投物资怎么显示在地图_七日杀空投物资显形方法_牛游戏网...
  3. 生活对我们每个人而言意味着什么?
  4. 三维电磁仿真ANSYSAnsoftMaxwellv16中文汉化版含英文
  5. python普通人有学习的必要吗?
  6. python中date用法_Python教程--date 对象用法
  7. mysql 平均值 排序_sql server 查询记录平均值及并排序 的语句
  8. 百万年薪之间的对话(自由职业者访谈录)
  9. python中uppercase是什么意思_Python string.uppercase方法代码示例
  10. Wi-Fi万能钥匙:说是破解,其实有危险(转)