微信消息模板

  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‘]);
时间: 2024-11-09 15:13:06

微信消息模板的相关文章

微信发送模板消息代码示例

最近一个微信的项目里需要发送微信模板消息给卖家或者供应商等,微信开发其实也就按照微信的官方接口要求组装起来即可,下面简单介绍一下我的微信模板发送代码. 1.获取access token,至于access token是什么,大家可以自行微信接口文档看一下,这边不多说 获取access token我这边主要是用定时器没大概2分钟获取一次,每天获取的次数是100000次,用法如下: 1 #region 2 3 using System; 4 using System.Timers; 5 6 #endr

微信小程序消息模板

前段时间研究了下微信模板消息:服务通知(开发api: https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html) 我在过程中遇到的keng,就是post传的 form_id(前提就是在微信后台已经添加了消息模板) form_id    表单提交场景下,为 submit 事件带上的 formId:支付场景下,为本次支付的 prepay_id 1.表单提交场景下(需在真机上运行) <form bindsubmit="formSubmit

微信消息推送

1.微信消息推送测试 微信公众号测试入口         ------->接口网址不好找啊 点击使用手机扫码进入,右键保存测试公众号二维码,如下(后面测试要用) 如果有多个用户扫码关注,则都会在右边显示出来,这里我自己先扫进去 另外还要注意这里的appid和appsercet,我们后面测试也需要使用 1.1给指定用户发送自己给定的消息 测试: 这里的access_token其实就像自己的门牌号一样,每次给用户发送消息时候,你都要指明自己的门牌号,才能向指定用户发送消息 import json i

支付宝支付和微信消息推送

支付宝支付 如果想在网站上,通过扫码支付宝收钱,你必须到支付宝网站https://openhome.alipay.com/platform/home.htm申请账号,但是正式的,需要你提供营业执照,现在没有,也不要紧,支付宝还提供一个沙箱的测试环境 服务商注册:业务只是网站上收个钱,注册一个支付系统服务商就可以了 注册完成后,进入我的蚂蚁金服开方平台首页,进行应用创建就可以了(这是正式的,需要营业执照) 程序开发使用时,你只需要按照支付宝提供的接口规则和加密方法进行数据传递就可以了 现在没有营业

一个还算简单的微信消息SDK(基于.Net Standard 2.0)

虽然微信公众号出现了好久,不过在SDK这件事情上感觉并没有多少人把它当成一个有技术含量的事情来做,很多SDK做的事情就是一个代码的堆叠,当然也可能写的好的并没有开源出来.所以在某个翻遍Github而无所获的下午我写了一个基础的基于事件的微信消息类,今年初我把它放到了github和开源中国上并逐步完善,这篇文章就是简单介绍OSS开源系列下的微信消息模块SDK的使用方式,主要围绕以下几个方面分解: 一. 全局介绍 二. 配置管理 三. 框架使用 1. 框架组成元素 2. 框架支持的模式 四. 生命周

微信消息的处理和应答

1.微信消息应答流程微信服务器是客户手机和开发服务器信息流通的桥梁.消息流程图如下: 2.微信服务器向开发服务器请求消息1)文本消息处理2)事件消息处理3)开发者认证处理 微信消息处理入口操作,代码示例如下: public void ProcessRequest(HttpContext context) { //WHC.Framework.Commons.LogTextHelper.Info("测试记录"); string postString = string.Empty; if (

微信消息回复

微信消息回复的实例代码 具体的看一下我带的simplexml_load_string()函数的博客解析 (数据的变化类型和数据传输才是数据的流向) <?php class IndexController extends CommonController{ //加载首页 public function Index(){ //define your token $wechatObj = new wechatCallbackapiTest(); //判定变量 if(isset($_GET['echos

脱离微信客户端发送微信消息(二)

Python版本:使用微信API发送微信消息 本文代码借用朋友编写的成品代码,使用Python3编写,配合上一篇文章:<脱离微信客户端发送微信消息(一)>经过试验完全可以发送微信消息. 文件:BaseData.py Python3代码: 1 # -*- coding: utf-8 -*- 2 3 corpid="XXXXXXX" # 设置-权限设置-部门-查看CorpID 4 corpsecret="YYYYYYYYYY" # 设置-权限设置-部门-查看

微信消息中的CreateTime转换成标准格式的时间

/** * 将微信消息中的CreateTime转换成标准格式的时间(yyyy-MM-dd HH:mm:ss) * * @param createTime 消息创建时间 * @return */ public static String formatTime(String createTime) { // 将微信传入的CreateTime转换成long类型,再乘以1000 long msgCreateTime = Long.parseLong(createTime) * 1000L; DateFo