public function tixian($openid,$money,$id){$name = '余额';$appid = '';//商户账号appid$secret = "##########";//api密码$mch_id = '';//商户号$mch_no = "#######";
//        $openid = $openid;//授权用户openid$arr = array();$arr['mch_appid'] = $appid;$arr['mchid'] = $mch_id;$arr['nonce_str'] = $this->get_unique_value();//随机字符串,不长于32位$arr['partner_trade_no'] = 'E' . date("Ymd") . rand(10000, 90000) . rand(10000, 90000);//商户订单号$arr['openid'] = $openid; // 用户授权获取的openid$arr['check_name'] = 'NO_CHECK';//是否验证用户真实姓名,这里不验证$arr['amount'] = $money;//付款金额,单位为分$desc = "提现";$arr['desc'] = $desc;//描述信息$arr['spbill_create_ip'] = $_SERVER['SERVER_ADDR'];//获取服务器的ip$key = ''; // 商户密钥$arr['sign'] = $this->getSign($arr,$key);//签名//        if (TbkConfig::where('id',6)->value('type') == 1){//            return json(['code'=>500,'msg'=>'提交成功,待审核']);
//        }$var = $this->arraytoxml($arr);$xml = $this->curl_post_ssl('https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers', $var, 30, array(), 1);$rdata = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);$return_code = (string)$rdata->return_code;$result_code = (string)$rdata->result_code;$create_time = (string)$rdata->payment_time;$partner_trade_no = (string)$rdata->partner_trade_no;$return_code = trim(strtoupper($return_code));$result_code = trim(strtoupper($result_code));$create_time = trim(strtoupper($create_time));  // 返回时间$partner_trade_no = trim(strtoupper($partner_trade_no)); // 订单号if ($return_code == 'SUCCESS' && $result_code == 'SUCCESS') {// 业务代码} else {$returnmsg = (string)$rdata->return_msg;$isrr = array('error' => 1,'errmsg' => $returnmsg,);return ['code'=>500,'msg'=>'提现失败,请联系客服'];}}public function curl_post_ssl($url, $vars, $second = 30, $aHeader = array()){$isdir = "../extend/cert/";//证书位置$ch = curl_init();//初始化curlcurl_setopt($ch, CURLOPT_TIMEOUT, $second);//设置执行最长秒数curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 终止从服务端进行验证curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');//证书类型curl_setopt($ch, CURLOPT_SSLCERT, $isdir . 'apiclient_cert.pem');//证书位置curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');//CURLOPT_SSLKEY中规定的私钥的加密类型curl_setopt($ch, CURLOPT_SSLKEY, $isdir . 'apiclient_key.pem');//证书位置curl_setopt($ch, CURLOPT_CAINFO, 'PEM');curl_setopt($ch, CURLOPT_CAINFO, $isdir . 'rootca.pem');if (count($aHeader) >= 1) {curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);//设置头部}curl_setopt($ch, CURLOPT_POST, 1);//post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);//全部数据使用HTTP协议中的"POST"操作来发送$data = curl_exec($ch);//执行回话if ($data) {curl_close($ch);return $data;} else {$error = curl_errno($ch);echo "call faild, errorCode:$error\n";curl_close($ch);return false;}}public function getSign($data,$key){ksort($data);//排序//使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串$str='';foreach($data as $k=>$v) {$str.=$k.'='.$v.'&';}//拼接API密钥$str.='key='.$key;$data['sign']=md5($str);//加密return $data['sign'];}public function arraytoxml($data){$str='<xml>';foreach($data as $k=>$v) {$str.='<'.$k.'>'.$v.'</'.$k.'>';}$str.='</xml>';return $str;}public 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;}public function get_unique_value(){$str = uniqid(mt_rand(), 1);$str = sha1($str);return md5($str);}

php 微信企业付款到余额相关推荐

  1. 微信 企业付款到余额 开发 教程

    开发流程概述 开通企业付款到余额功能 去商户后台获取商户账号appid.商户号.证书 生成签名 生成请求XML 向微信请求付款 付款结果分析保存 1.开通企业付款到余额功能 可以参照官方教程 2.获取 ...

  2. 微信零钱数据在服务器,关于微信企业付款到零钱X509Certificate2读取证书信息,发布到服务器访问不到的解决方案...

    前言: 最近做了一个通过调用微信企业付款到用户零钱的功能,真的挺奇怪的,在我本地调试的时候都没有问题,但是当我发布到服务上的时候却一直无法读取到我的证书信息.读取的代码如下,使用的是微信官方文档提供的 ...

  3. java 企业付款_java实现微信企业付款到个人功能

    微信官方提供了微信企业账户付款到微信个人零钱接口,提供企业向用户付款的功能,支持企业通过API接口付款,或通过微信支付商户平台网页功能操作付款.该接口并不是直接所有的商户都拥有,企业要开启必须满足以下 ...

  4. PHP实现微信企业付款

    一.封装微信企业付款类WeiXinPayToUser,如下图代码所示: class WeixinPayToUser {/*** API 参数* @var array* 'mch_appid' # 公众 ...

  5. java实现微信企业付款到个人零钱(微信红包)

    今天公司打算做一个活动,就是可以让用户领取平台发送的红包,根据微信官方文档实现微信企业付款到零钱(因为商户号不满足一些条件无法使用红包,红包跟零钱实现方法基本一样),然后又加入了一些简单的红包算法.微 ...

  6. java实现微信企业付款到个人账户

    微信官方提供了微信企业账户付款到微信个人零钱接口,提供企业向用户付款的功能,支持企业通过API接口付款,或通过微信支付商户平台网页功能操作付款.该接口并不是直接所有的商户都拥有,企业要开启必须满足以下 ...

  7. 微信企业付款至零钱包实现详细流程Demo

    微信企业付款实现详细流程Demo 大家好,我是 梦辛工作室的灵,下面来讲一下微信企业付款实现的流程 1.准备数据 微信企业付款需要 准备 微信支付API秘钥.支付证书:下面是获取流程: 先登录微信支付 ...

  8. 微信支付、微信企业付款到零钱工具类

    微信支付.微信企业付款到零钱工具类 主要依赖:apache httpclient 4.5 jdk1.8 工具类主要功能: xml参数拼接 签名算法实现 post加密请求 import lombok.e ...

  9. 微信企业付款至银行卡 设置转账备注信息问题

    最近发现一个问题,还是用户反馈的,就是我们调起微信企业付款的接口,按照API中的参数都赋予响应的值之后,发现在一个参数desc(转账备注)中添加文字说明后,转账到微信零钱,收款方上面有我的备注信息,但 ...

最新文章

  1. python对MySQL进行添加修改删除以及字符串的操作
  2. 最强大的多线程解决方案!!
  3. android获取string.xml的值
  4. ncbi查找目的基因序列_教你如何利用NCBI寻找目的基因
  5. “新型肺炎患者同乘查询系统”上线,超2千万用户使用
  6. opencv4.0.1配合contrib在linux下面安装编译全过程
  7. Discuz!NT 和网站整合
  8. linux脚本编写规则,shell脚本编写守则
  9. 论文浅尝 | 通过共享表示和结构化预测进行事件和事件时序关系的联合抽取
  10. 番茄花园win11 32位官方纯净版镜像v2021.07
  11. 【ES7(2016)】幂运算符**
  12. Python深度剖析贪吃蛇游戏的设计与实现
  13. php ado 建立注册,如何注册ADO与DAO [Access软件网]
  14. matlab算法用python做_机器学习笔记—朴素贝叶斯算法实现(matlab/python)
  15. Java学习(四)异常
  16. C语言下取整下半个方括号,c语言易错知识点总结[工作范文](28页)-原创力文档...
  17. devcpp 的各种快捷键
  18. 机器人基础原理1_2——机器人分类与常见坐标系
  19. java BMI体重测量代码
  20. 数据库原理及安全技术教学实验报告SQL实践(一)

热门文章

  1. 金三银四,给你换工作的5条提醒!
  2. 神经网络与深度学习——神经网络基础——计算图的导数运算
  3. 一代程序员如何突破自身技术瓶颈:与敏捷的初接触
  4. 谷歌机器学习规则 (Rules of Machine Learning)
  5. 拼团php开发逻辑思维罗振宇_2019罗胖罗振宇跨年演讲手动整理稿,看了两遍
  6. 设计模式:结构型模式-桥接、外观、组合、享元模式
  7. Shader学习的基础知识( 三十)消融效果
  8. clickhouse 查询优化_如何提升查询速度?试试ClickHouse
  9. java ee是什么_javaee是什么?
  10. xml是啥?是干啥用的?