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 相关文章推荐
留言板翻页的实现详解
Oct 09 PHP
增加反向链接的101个方法 站长推荐
Jan 31 PHP
PHP实现采集程序原理和简单示例代码
Mar 18 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
PHP 自定义错误处理函数trigger_error()
Mar 26 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
Nov 26 PHP
PHP和javascript常用正则表达式及用法实例
Jul 01 PHP
php+mysql实现用户注册登陆的方法
Jan 03 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
Laravel学习教程之本地化模块
Aug 18 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
laradock环境docker-compose操作详解
Jul 29 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
珊瑚虫IP库浅析
2007/02/15 PHP
PHP实现MVC开发得最简单的方法――模型
2007/04/10 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
不错的新闻标题颜色效果
2006/12/10 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
2013/11/21 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
微信小程序登录时如何获取input框中的内容
2019/12/04 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
[10:53]2018DOTA2国际邀请赛寻真——EG
2018/08/11 DOTA
用Python中的__slots__缓存资源以节省内存开销的方法
2015/04/02 Python
python实现C4.5决策树算法
2018/08/29 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
SQL Server面试题
2016/10/17 面试题
小学生竞选班长演讲稿
2014/04/24 职场文书
2019旅游导游工作总结
2019/06/27 职场文书