• 微信消息模板


      1 <?php
      2 class refund_success {
      3     public $appid = ''; //wxcf1349c1fd949597
      4     public $appsecret = ''; //0d5e3d5ee7955e524088291d4fbe7546__construct  ($_POST['mid'])
      5     public $mid = '';
      6     function __construct($mid) {
      7         //echo $mid;die;
      8         $config = M('cashier_payconfig')->getwxuserConf($mid);
      9         // var_dump($config['appid']);die;
     10         //file_put_contents('./upload/log/tet.txt', $config);
     11         $this->appid = $config['appid'];
     12         $this->appsecret = $config['appSecret'];
     13         //file_put_contents('./upload/log/appsecret.txt', $this->appsecret);
     14         //file_put_contents('./upload/log/mmmmmid.txt', $mid);
     15         $this->mid = $mid;
     16     }
     17     public function bonus_success($openid, $wxmodel_id, $order_id, $price) {
     18         if ($_SESSION['mid'] == '') {
     19             $urlback = 'https://lepay.51ao.com/merchants.php?m=Index&c=index&a=bonus&mid=' . $this->mid;
     20         } else {
     21             $urlback = 'https://lepay.51ao.com/merchants.php?m=Index&c=index&a=bonus&mid=' . $this->mid . '&openid=' . $openid;
     22         }
     23         $template = array('touser' => $openid, 'template_id' => $wxmodel_id, //'eEKd8R0JVbod1yx2xPWFMrRoXGgOI-KuOqyBvk5CeAg',
     24         'url' => $urlback, 'topcolor' => '#FF0000', 'data' => array('first' => ['value' => urlencode('您好,您的分红返现已成功到账,请注意查收'), 'color' => '#173177'], 'order' => ['value' => urlencode($order_id) ], 'money' => ['value' => urlencode($price . '') ], 'remark' => ['value' => urlencode('分红返现已成功到账至您的余额账户,乐呗收银祝您生活愉快!') ],),);
     25         $url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=' . $this->getAccessToken();
     26         // file_put_contents('./upload/log/889.txt', $url);
     27         $ret = $this->post($url, urldecode(json_encode($template)));
     28         return $ret;
     29     }
     30     public function refund($openid, $nickname, $order_id, $price, $wxmodel_id) {
     31         if ($_SESSION['mid'] == '') {
     32             $urlback = 'https://lepay.51ao.com/merchants.php?m=Index&c=index&a=bonus&mid=' . $this->mid;
     33         } else {
     34             $urlback = 'https://lepay.51ao.com/merchants.php?m=Index&c=index&a=bonus&mid=' . $this->mid . '&openid=' . $openid;
     35         }
     36         $template = array('touser' => $openid, 'template_id' => $wxmodel_id, //fPOz4DE8P-NsaohwYolCSpuFbXRNJluGa29QU2_K_II
     37         'url' => $urlback, 'topcolor' => '#FF0000', 'data' => array('first' => ['value' => urlencode('您好,' . $nickname . ',乐呗收银通知您,您的退款申请已成功办理'), 'color' => '#173177'], 'keyword1' => ['value' => urlencode($order_id) ], 'keyword2' => ['value' => urlencode($price . '') ], 'remark' => ['value' => urlencode('您的退款已成功办理,退款金额已打至原支付账户,请注意查收!') ],),);
     38         $url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=' . $this->getAccessToken();
     39         // file_put_contents('./upload/log/27.txt',$url);
     40         $ret = $this->post($url, urldecode(json_encode($template)));
     41         // file_put_contents('./upload/log/28.txt',$ret);
     42         // if($ret){
     43         //    return true;
     44         // }else{
     45         //   return false;
     46         // }
     47         return $ret;
     48     }
     49     public function wxBalance($openid, $price, $order_id, $wxmodel_id) {
     50         if ($_SESSION['mid'] == '') {
     51             $urlback = 'https://lepay.51ao.com/merchants.php?m=Index&c=index&a=bonus&mid=' . $this->mid;
     52         } else {
     53             $urlback = 'https://lepay.51ao.com/merchants.php?m=Index&c=index&a=bonus&mid=' . $this->mid . '&openid=' . $openid;
     54         }
     55         $template = array('touser' => $openid, 'template_id' => $wxmodel_id, //'DihsJV0kGP4BkdGPjS9pxC6wMZBD4BjKTuPKfDV2N-Y',
     56         'url' => $urlback, 'topcolor' => '#FF0000', 'data' => array('first' => ['value' => urlencode('您好,您的余额支付已成功!'), 'color' => '#173177'], 'keyword1' => ['value' => urlencode($order_id) ], 'keyword2' => ['value' => urlencode($price . '') ], 'remark' => ['value' => urlencode('余额支付成功,乐呗收银祝您生活愉快!') ],),);
     57         $url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=' . $this->getAccessToken();
     58         //echo $url;die;
     59         //file_put_contents('./upload/log/wxBalance.txt', $url);
     60         $ret = $this->post($url, urldecode(json_encode($template)));
     61         // file_put_contents('./upload/log/881.txt', $ret);
     62         return $ret;
     63     }
     64     function sendMsg($openid, $price, $nickname, $wxmodel_id) {
     65         if ($_SESSION['mid'] == '') {
     66             $urlback = 'https://lepay.51ao.com/merchants.php?m=Index&c=index&a=bonus&mid=' . $this->mid;
     67         } else {
     68             $urlback = 'https://lepay.51ao.com/merchants.php?m=Index&c=index&a=bonus&mid=' . $this->mid . '&openid=' . $openid;
     69         }
     70         //echo $this->appid;die;
     71         $template = array('touser' => $openid, 'template_id' => $wxmodel_id, 'url' => $urlback, 'topcolor' => '#FF0000', 'data' => array('first' => ['value' => urlencode('您好,欢迎来到乐呗收银,您的提现申请已提交'), 'color' => '#173177'], 'keyword1' => ['value' => urlencode($nickname) ], 'keyword2' => ['value' => urlencode(date('Y-m-d H:i:s', time())) ], 'keyword3' => ['value' => urlencode($price . '') ], 'keyword4' => ['value' => urlencode('微信提现') ], 'remark' => ['value' => urlencode('您的申请已提交,请耐心等待商家审核,祝您生活愉快!') ],),);
     72         $url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=' . $this->getAccessToken();
     73         // file_put_contents('./upload/log/99999999999999.txt', $url);
     74         $ret = $this->post($url, urldecode(json_encode($template)));
     75         // file_put_contents('./upload/log/888888881.txt', $ret);
     76         // echo $ret;die;
     77         return $ret;
     78     }
     79     function secondMsg($openid, $price, $wxmodel_id) //secondMsg
     80     {
     81         if ($_SESSION['mid'] == '') {
     82             $urlback = 'https://lepay.51ao.com/merchants.php?m=Index&c=index&a=bonus&mid=' . $this->mid;
     83         } else {
     84             $urlback = 'https://lepay.51ao.com/merchants.php?m=Index&c=index&a=bonus&mid=' . $this->mid . '&openid=' . $openid;
     85         }
     86         $template = array('touser' => $openid, 'template_id' => $wxmodel_id, //'TQmLhxpxKybOnEcUDBqgbWX6tbOUWIX8uJoVfRfSU18',
     87         'url' => $urlback, 'topcolor' => '#FF0000', 'data' => array('first' => ['value' => urlencode('您好,乐呗收银提醒您,您的秒提申请办理失败'), 'color' => '#173177'], 'money' => ['value' => urlencode($price . '') ], 'time' => ['value' => urlencode(date('Y-m-d H:i:s', time())) ], 'remark' => ['value' => urlencode('您的秒提现办理失败,请及时联系商家核实,谢谢合作!') ],),);
     88         $url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=' . $this->getAccessToken();
     89         // file_put_contents('./upload/log/33.txt',$url);
     90         $ret = $this->post($url, urldecode(json_encode($template)));
     91         // var_dump($ret);die;
     92         // file_put_contents('./upload/log/22222.txt', $ret);
     93         return $ret;
     94     }
     95     public function post($url, $data = '', $isHttps = TRUE) {
     96         // 创建curl对象
     97         $ch = curl_init();
     98         // 配置这个对象
     99         curl_setopt($ch, CURLOPT_URL, $url); // 请求的URL地址
    100         if ($isHttps) {
    101             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
    102             curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在
    103             
    104         }
    105         curl_setopt($ch, CURLOPT_POST, 1); // 是否是POST请求
    106         curl_setopt($ch, CURLOPT_HEADER, 0); // 去掉HTTP协议头
    107         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 返回接口的结果,而不是输出
    108         curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // 提交的数据
    109         // 发出请求
    110         $return = curl_exec($ch);
    111         // 返回数据
    112         return $return;
    113         // 关闭对象
    114         curl_close($ch);
    115     }
    116     public function getAccessToken1() {
    117         $access_token = getCache('Cache_access_token_' . $this->_mid);
    118         if ($access_token && is_array($access_token) && ($access_token['expires_in'] > time())) {
    119             return $access_token['access_token'];
    120         }
    121         $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $this->appid . '&secret=' . $this->appsecret;
    122         $Tokenarr = $this->https_request($url);
    123         if (isset($Tokenarr['access_token'])) {
    124             $Tokenarr['expires_in'] = time() + $Tokenarr['expires_in'];
    125             setCache('Cache_access_token_' . $this->_mid, $Tokenarr);
    126             return $Tokenarr['access_token'];
    127         }
    128         return false;
    129     }
    130     protected function https_request($url, $data = null, $noprocess = false) {
    131         $curl = curl_init();
    132         curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
    133         curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0");
    134         $header = array("Accept-Charset: utf-8");
    135         curl_setopt($curl, CURLOPT_URL, $url);
    136         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    137         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    138         //curl_setopt($curl, CURLOPT_SSLVERSION, 3);
    139         curl_setopt($curl, CURLOPT_HTTPHEADER, $header); /* * *$header 必须是一个数组** */
    140         curl_setopt($curl, CURLOPT_HEADER, FALSE);
    141         curl_setopt($curl, CURLINFO_HEADER_OUT, true);
    142         if (!empty($data)) {
    143             curl_setopt($curl, CURLOPT_POST, 1);
    144             curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    145         }
    146         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    147         $output = curl_exec($curl);
    148         if ($noprocess) return $output;
    149         $errorno = curl_errno($curl);
    150         if ($errorno) {
    151             return array('curl' => false, 'errorno' => $errorno);
    152         } else {
    153             $res = json_decode($output, 1);
    154             if ($res['errcode']) {
    155                 return array('errcode' => $res['errcode'], 'errmsg' => $res['errmsg']);
    156             } else {
    157                 return $res;
    158             }
    159         }
    160         curl_close($curl);
    161     }
    162     public function getAccessToken() {
    163         //获取文件创建时间的函数filemtime()
    164         //判断的生成的access_token值是否过期
    165         //echo $this->mid.'35';die;
    166         $filename = './upload/token/accesstoken' . $this->mid;
    167         // echo $filename;die;
    168         if (!file_exists($filename) || (file_exists($filename) && (time() - filemtime($filename)) > 4000)) {
    169             //1.url地址
    170             $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $this->appid . '&secret=' . $this->appsecret;
    171             //2.判断是否为post请求
    172             //3.发送请求
    173             $content = $this->post($url);
    174             //4.处理返回值
    175             //返回数据格式为json,php不可以直接操作json格式,需要json_decode转化一下
    176             $content = json_decode($content);
    177             //file_put_contents('./upload/log/33333333333333.txt', $content);
    178             $access_token = $content->access_token;
    179             //把access_token保存到文件
    180             file_put_contents($filename, $access_token);
    181         }
    182         //如果没有过期,那么就去读取缓存文件里的access_token
    183         else {
    184             $access_token = file_get_contents($filename);
    185             //file_put_contents('./upload/log/77777777777777.txt', $access_token);
    186             
    187         }
    188         //把access_token返回
    189         return $access_token;
    190     }
    191 }
    1 bpBase::loadOrg('refund_success');
    2             $wxBalances = new refund_success(1);
    3             $wxBalances->wxBalance($orderinfo['openid'], $orderinfo['goods_price'], $orderinfo['order_id'], $wxmodel['model_id']);
  • 相关阅读:
    html 上传图片前预览
    php获取当月天数及当月第一天及最后一天、上月第一天及最后一天实现方法
    php 计算 pdf文件页数
    php 获取半年内每个月的订单数量, 总价, 月份
    php 获取两个数组之间不同的值
    小程序支付功能
    关于nginx的Job for nginx.service failed because the control process exited with error code.错误
    linux 安装 Apollo
    MongoDB待续。。。
    ABP vNext...待续
  • 原文地址:https://www.cnblogs.com/lujiang/p/7340804.html
Copyright © 2020-2023  润新知