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桌面中心(四) 数据显示
Mar 11 PHP
木翼下载系统中说明的PHP安全配置方法
Jun 16 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
php实现批量修改文件名称的方法
Jul 23 PHP
WAF的正确bypass
Jan 05 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
Apr 18 PHP
PHP PDO操作MySQL基础教程
Jun 05 PHP
PHP递归实现快速排序的方法示例
Dec 18 PHP
php往mysql中批量插入数据实例教程
Dec 12 PHP
PHP中->和=>的意思
Mar 31 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
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
php 三维饼图的实现代码
2008/09/28 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
2016/05/18 PHP
详解laravel安装使用Passport(Api认证)
2018/07/27 PHP
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
javascript 支持ie和firefox杰奇翻页函数
2008/07/22 Javascript
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
微信小程序slider组件使用详解
2018/01/31 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
Python使用PyCrypto实现AES加密功能示例
2017/05/22 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
Python实现的线性回归算法示例【附csv文件下载】
2018/12/29 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
2020/04/30 Python
Tensorflow加载Vgg预训练模型操作
2020/05/26 Python
python算的上脚本语言吗
2020/06/22 Python
python怎么对数字进行过滤
2020/07/05 Python
最新pycharm安装教程
2020/11/18 Python
matplotlib对象拾取事件处理的实现
2021/01/14 Python
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
服装促销活动方案
2014/02/23 职场文书
2015入党自荐书范文
2015/03/05 职场文书
小学生反邪教心得体会
2016/01/15 职场文书
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android