第一步:去商户平台账户中心->API安全下载证书会得到一个包cert.

第二步:将cert放入项目根目录下Static/Common/

第三步:将第三方企业向个人付款类库包Weixin放入Application/Common/Libs,类库包Weixin里面目录结构如下图:

第四步:打开lib里面的WxPay.Config.php文件,证书路径如下所示:

//=======【证书路径设置】=====================================
    /**
     * TODO:设置商户证书路径
     * 证书路径,注意应该填写绝对路径(仅退款、撤销订单时需要,可登录商户平台下载,
     * API证书下载地址:https://pay.weixin.qq.com/index.php/account/api_cert,下载之前需要安装商户操作证书)
     * @var path
     */
    const SSLCERT_PATH = './Static/Common/cert/apiclient_cert.pem';//SSLCERT_PATH;
    const SSLKEY_PATH = './Static/Common/cert/apiclient_key.pem';//SSLKEY_PATH;

第五步:所在的控制器里面上面引入相关类:

use \Common\Libs\Weixin\WechatAuth;//JSSDK 需要用到accessToken
    use \Common\Libs\Weixin\JSSDK;//JSSDK
    use \Common\Libs\Weixin\ComPay;//红包与企业支付

第五步:类里开始定义构造方法:

//初始化
       public function __construct(){  
        parent::__construct();   
        define("APPID", 'wx19a64824b7e720c1');//微信公众号APPID
        define("MCHID","1375278702");//微信商户号
        define("KEY","Ze0Bai1Tong2Qi3Jian4Dian5Gaoshan");//微信商户自定义32为KEY
        define("APPSECRET",'d9b2ac41c635e9fbcc3c6085d5cfae5b');//微信公众号appsecret
           
       }

第六步:所用到的方法里面:

//个人现金账户提现
        public function getmoney(){
            $id=$_GET['id'];//当前登录用户id
            $ordercode=$_POST['ordercode'];//订单号
            $value=$_POST['money'];//提现的金额
            $userdata=M('user')->where(array("id"=>$id))->find();
            $xianjin=$userdata['xianjin'];
            if($value>$xianjin){
                $this->error('提现金额不能超过现金账户余额,且为整数');
            }
            $fandata=M('fans')->where(array("uid"=>$id))->find();
            $openid=$fandata['openid'];
            // //生成预订单
            $data=[
                "user_id"=>$id,
                "change"=>-$value,
                "ctype"=>"3",
                "cmethod"=>"7",
                "changetime"=>time(),
                "yue_before"=>$xianjin,
                "yue_after"=>$xianjin-$value,
                "ocode"=>$ordercode,
                "status"=>0,
            ];
            //存入记录表log
            $reslog=M('log')->add($data);
            //企业付款(第一种方法)
            $rb = new ComPay();
            $fee = $value*100;
            $body = '企业支付';
            $rb->setOpenid($openid);
            $rb->setAmount($fee);
            $rb->setMchid(MCHID);
            $rb->setApiKey(KEY);
            $rb->setMchAppid(APPID);
            $rb->setDesc($body);        
            $res =  $rb->ComPay();
            if($res){
                $new_xianjin=$xianjin-$value;
                $data=[
                    "xianjin"=>$new_xianjin,
                ];
                $res=M('user')->where(array("id"=>$id))->save($data);
                $da=[
                    "status"=>1,
                ];
                $relogs=M('log')->where(array("ocode"=>$ordercode))->save($da);
                $this->success('提现成功');
            }else{
                $this->error($rb->error());
            }
            
            //第二种方法(未测试)
            // $params["desc"]="现金账户提现";
            // $params["openid"]=$openid;
            // $params["mch_appid"]=APPID;
            // $params["mchid"]=MCHID;
            // $key= KEY;
            // $params["amount"]=$value;
            // $apicent_cert='./Static/Common/cert/apiclient_cert.pem';
            // $apiclient_key='./Static/Common/cert/apiclient_key.pem';  
            // Wxpay::payToUser($params, $key, $apicent_cert, $apiclient_key);
            // $appId = "wx19a64824b7e720c1";
            // $mchid = "1375278702";
            // $nonce_str=date('YmdHis',time()).rand(10000,99999);
            // $sign=md5($appId);
            // $partner_trade_no=date('YmdHis',time()).rand(10000,99999);
            // $check_name="NO_CHECK";
            // $amount=$value;
            // $desc="现金账户提现";
            // $spbill_create_ip="47.94.44.189";
            // $url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers&mch_appid=".$appId."&mchid=".$mchid."&nonce_str=".$nonce_str."&sign=".$sign."&partner_trade_no=".$partner_trade_no."&check_name=".$check_name."&amount=".$amount."&desc=".$desc."&spbill_create_ip=".$spbill_create_ip;
            // //初始化curl
            // $ch = curl_init($url);
            // //3.设置参数
            // curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
            // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//跳过证书验证
            // curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);  // 从证书中检查SSL加密算法是否存在
            // //4.调用接口
            // $res = curl_exec($ch);
            // if(curl_errno($ch)){
            //     var_dump(curl_error($ch));
            // }
            // $resArr = json_decode($res,true);
            // //5.关闭curl
            // curl_close($ch);  
            // var_dump($resArr);

}

tp3.2中企业向个人微信钱包零钱付款相关推荐

  1. asp php微信支付,Asp微信支付接口代码 微信中生成订单后可以直接调出微信钱包直接付款_随便下源码网...

    Asp微信支付接口代码 微信中生成订单后,可以直接调出微信钱包直接付款 软件介绍: 众所周到,目前微信支付已经十分普及,无论是商场.超市.网站上,微信支付的发展十分迅速,而ASP版微信支付在微信公众平 ...

  2. [经验教程]微信钱包零钱可以转到支付宝余额吗?

    微信的钱可以转到支付宝吗? 不可以,微信钱包零钱不可以直接转账到支付宝. 微信的钱如何转到支付宝? 一.将微信钱包领钱提现到银行卡 1.1打开微信,点击底部我的,并进入微信服务: 1.2.在微信钱包内 ...

  3. 微信支付账户更换实名认证微信钱包零钱余额还在吗?怎么更换微信钱包实名认证?

    原文来源:https://www.caochai.com/article-4119.html 微信支付账户更换实名认证微信钱包零钱余额还在吗? 微信支付账户更换实名认证微信钱包的零钱余额将清空,因为更 ...

  4. 余额 微信钱包图片_微信储值会员卡小程序,微信会员卡功能系统。

    现在店铺做会员管理,一般都是给顾客发放卡片类的实体会员卡,顾客会把这个会员卡放在哪里呢?常见的是放在自己的钱包中,如果卡片多了,就会购买一个专门的卡包来存储这些卡.这样是不是感觉很安全,不会丢失呢?但 ...

  5. 老赖整治升级,不还钱直接扣微信钱包!

    都说欠钱还钱天经地义,但是偏偏有人就是喜欢耍赖,欠钱不还跟债主躲猫猫. 但是大家都知道,如果欠钱不还,债主起诉到法院之后,老赖的银行账户是要被冻结的,如果账户有余额,会优先用于偿还债权人的钱. 当然有 ...

  6. 微信钱包里的钱居然不见了,微信支付绑卡的用户要注意这几点

    科技发展的脚步越来越快,我们的支付手段也从以前的现金支付变成了现在的电子支付.电子支付的方式十分便利,无论是超市.菜场还是饭店,只要是有金钱交易的地方就可以使用电子支付.用户只需要打开手机扫一扫就可以 ...

  7. 快递企业玩转微信扫一扫教程

    近日,"微信扫快递"能力正式向快递品牌及快递第三方全面开放了(请戳).用户们纷纷表示:"Word天,懒癌患者的福音啊"."这功能真接地气"- ...

  8. 微信开发中的php代码,从源代码中带你解析微信开发

    这两天项目需要在微信上面开一个接口,就研究了一下,过程很艰难,结果很理想,下面我就介绍一下微信开发需要注意的地方. 1,账号问题 /* 首先说第一个你得选择公众平台(开放平台貌似是做应用集成的,这个没 ...

  9. 白杨SEO:企业如何做微信营销推广?微信营销技巧有哪些?

    前言:这是白杨SEO公众号原创第218篇.为什么想到写这个?因为微信几乎人人都有.在微信上做营销也很常见,但很多传统企业并不知道如何利用好微信这个渠道,所以分享一下. 微信营销是什么?2B企业适合吗? ...

最新文章

  1. EXT3与EXT4的主要区别
  2. PSVR开发者需要了解的9件事
  3. android ndk程序UnsatisfiedLinkError解决方案
  4. Error -26612: HTTP Status-Code=500 (Internal Server Error) ...
  5. jquery中$(document).ready(function(){//todo});window.onload时间线关系
  6. MFC编程入门之十三(对话框:属性页对话框及相关类的介绍)
  7. 搞定面试算法系列 | 分治算法三步走
  8. 2014北科计算机原理试题答案,北科_计算机组成原理考题-A卷答案
  9. 今天的快乐从何而来的飞鸽传书
  10. iOS App的图标,启动画面及其它
  11. 下载所有需要的rpm文件路径
  12. OpenBSD操作系统(1)——服务管理程序rcctl 类似linux下的service或systemctl
  13. mysql中更改字符集为utf8mysql中文输入不了问题解决
  14. 搞个这样的APP要多久? (转)
  15. 1分钟看懂区块链和分布式网络
  16. HQChart使用教程78-分时图集合竞价
  17. python根据题库答案自动答题_Selenium实现百度自动答题 懒人获取积分
  18. Android 自定义apk名称
  19. 5.2 主机扫描:主机探测
  20. Ubuntu20.04切换阿里源镜像(清华源、网易源)

热门文章

  1. SpringBoot 自动生成API文档
  2. 大天使之剑游戏超详细图文架设教程
  3. Mysql高性能pdf阅读内容整理
  4. mac卸载软件如何彻底卸载?试试这个mac储存空间清理法
  5. 去除Windows安全警报
  6. 【nlp论文笔记】 Glyce: Glyph-vectors for Chinese Character Representations
  7. 教你如何用CSS修改图片颜色
  8. linux防火墙关闭启用增减端口号命令
  9. 解决Linux端口被占用问题
  10. 单位、家庭建筑物电气、电子设备防雷举措