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 18 PHP
php 遍历数据表数据并列表横向排列的代码
Sep 05 PHP
一个简单php扩展介绍与开发教程
Aug 19 PHP
使用bcompiler对PHP文件进行加密的代码
Aug 29 PHP
php编程实现获取excel文档内容的代码实例
Jun 28 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
PHP中使用socket方式GET、POST数据实例
Apr 02 PHP
php获得文件夹下所有文件的递归算法的简单实例
Nov 01 PHP
PHP使用redis消息队列发布微博的方法示例
Jun 22 PHP
php中字符串和整数比较的操作方法
Jun 06 PHP
详解Laravel制作API接口
May 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
Windows2003下php5.4安装配置教程(Apache2.4)
2016/06/30 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
限制文本框输入N个字符的js代码
2010/05/13 Javascript
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
javascript比较两个日期的先后示例代码
2014/12/31 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
2015/09/02 Javascript
js正则表达式注册页面表单验证
2016/10/11 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
layui table 获取分页 limit的方法
2019/09/20 Javascript
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
利用Python破解验证码实例详解
2016/12/08 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
python批量修改图片大小的方法
2018/07/24 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
学习Python爬虫的几点建议
2020/08/05 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
浅谈css3中calc在less编译时被计算的解决办法
2017/12/04 HTML / CSS
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
大学生创业计划书的用途
2014/01/08 职场文书
卫校中专生的自我评价
2014/01/15 职场文书
学生出入校管理制度
2014/01/16 职场文书
民主生活会整改措施(党员)
2014/09/18 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
Linux中各个目录的作用与内容
2022/06/28 Servers