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 相关文章推荐
手把手教你使用DedeCms的采集的图文教程
Mar 11 PHP
ThinkPHP采用模块和操作分析
Apr 18 PHP
php小型企业库存管理系统的设计与实现代码
May 16 PHP
PHP动态分页函数,PHP开发分页必备啦
Nov 07 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
PHP实现抓取HTTPS内容
Dec 01 PHP
PHP生成各种常见验证码和Ajax验证过程
Jan 10 PHP
php mongodb操作类 带几个简单的例子
Aug 25 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
Jan 15 PHP
PHP小程序支付功能完整版【基于thinkPHP】
Mar 26 PHP
使用laravel和ECharts实现折线图效果的例子
Oct 09 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
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
网站被黑的假象--ARP欺骗之页面中加入一段js
2007/05/16 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
AngularJS基础 ng-mousemove 指令简单示例
2016/08/02 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
Puppeteer环境搭建的详细步骤
2018/09/21 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
[01:10:16]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第一局
2016/02/27 DOTA
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
Python抓取京东图书评论数据
2014/08/31 Python
使用paramiko远程执行命令、下发文件的实例
2017/10/01 Python
python绘制立方体的方法
2018/07/02 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
Python并行分布式框架Celery详解
2018/10/15 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
python 多线程重启方法
2019/02/18 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
Python脚本调试工具安装过程
2021/01/11 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
LINUX下线程,GDI类的解释
2012/04/17 面试题
水务局局长岗位职责
2013/11/28 职场文书
薪资证明范本
2015/06/19 职场文书
迎客户欢迎词三篇
2019/09/27 职场文书
Python图像处理之图像拼接
2021/04/28 Python