PHP编程实现微信企业向用户付款的方法示例


Posted in PHP onJuly 26, 2017

本文实例讲述了PHP编程实现微信企业向用户付款的方法。分享给大家供大家参考,具体如下:

<?php
header('content-type:text/html;charset=utf-8');
$data['mch_appid']='##################';//商户的应用appid
$data['mchid']='################';//商户ID
$data['nonce_str']='123456';//unicode();//这个据说是唯一的字符串下面有方法
$data['partner_trade_no']='LB123456';//.time();//这个是订单号。
$data['openid']='123';//这个是授权用户的openid。。这个必须得是用户授权才能用
$data['check_name']='NO_CHECK';//这个是设置是否检测用户真实姓名的
$data['re_user_name']='######';//用户的真实名字
$data['amount']='1';//提现金额
$data['desc']='服务费';//订单描述
$data['spbill_create_ip']=$_SERVER['SERVER_ADDR'];//这个最烦了,,还得获取服务器的ip
$secrect_key='#################################';///这个就是个API密码。32位的。。随便MD5一下就可以了
$data=array_filter($data);
ksort($data);
$str='';
foreach($data as $k=>$v) {
  $str.=$k.'='.$v.'&';
}
$str.='key='.$secrect_key;
$data['sign']=md5($str);
$xml=arraytoxml($data);
// echo $xml;
$url='https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';
$res=curl($xml,$url);
$return=xmltoarray($res);
print_r($return);
// echo getcwd().'/cert/apiclient_cert.pem';die;
function unicode() {
  $str = uniqid(mt_rand(),1);
  $str=sha1($str);
  return md5($str);
}
function arraytoxml($data){
  $str='<xml>';
  foreach($data as $k=>$v) {
    $str.='<'.$k.'>'.$v.'</'.$k.'>';
  }
  $str.='</xml>';
  return $str;
}
function xmltoarray($xml) {
   //禁止引用外部xml实体
  libxml_disable_entity_loader(true);
  $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
  $val = json_decode(json_encode($xmlstring),true);
  return $val;
}
function curl($param="",$url) {
  $postUrl = $url;
  $curlPost = $param;
  $ch = curl_init();                   //初始化curl
  curl_setopt($ch, CURLOPT_URL,$postUrl);         //抓取指定网页
  curl_setopt($ch, CURLOPT_HEADER, 0);          //设置header
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);      //要求结果为字符串且输出到屏幕上
  curl_setopt($ch, CURLOPT_POST, 1);           //post提交方式
  curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);      // 增加 HTTP Header(头)里的字段
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    // 终止从服务端进行验证
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/cert/apiclient_cert.pem'); //这个是证书的位置
  curl_setopt($ch,CURLOPT_SSLKEY,getcwd().'/cert/apiclient_key.pem'); //这个也是证书的位置
  $data = curl_exec($ch);                 //运行curl
  curl_close($ch);
  return $data;
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
提升PHP执行速度全攻略(下)
Oct 09 PHP
PHP 防恶意刷新实现代码
May 16 PHP
PHP 命名空间实例说明
Jan 27 PHP
php 对输入信息的进行安全过滤的函数代码
Jun 29 PHP
关于初学PHP时的知识积累总结
Jun 07 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
php随机抽奖实例分析
Mar 04 PHP
php截取视频指定帧为图片
May 16 PHP
PHP iconv()函数字符编码转换的问题讲解
Mar 22 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
Aug 26 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 #PHP
PHP异常处理定义与使用方法分析
Jul 25 #PHP
PHP实现防盗链的方法分析
Jul 25 #PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 #PHP
php 删除指定文件夹的实例讲解
Jul 25 #PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 #PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 #PHP
You might like
PHP程序员最常犯的11个MySQL错误小结
2010/11/20 PHP
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
2017/02/13 Javascript
解决html input验证只能输入数字,不能输入其他的问题
2017/07/21 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
微信小程序自定义弹出层效果
2020/05/26 Javascript
Openlayers实现测量功能
2020/09/25 Javascript
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
Python实现破解12306图片验证码的方法分析
2017/12/29 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
python获取微信小程序手机号并绑定遇到的坑
2018/11/19 Python
python进行文件对比的方法
2018/12/24 Python
Python logging设置和logger解析
2019/08/28 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
python time.strptime格式化实例详解
2021/02/03 Python
python定义具名元组实例操作
2021/02/28 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
交通法规咨询中心工作职责
2013/11/27 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS