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

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

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

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

第四步:打开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);      

        }