You've already forked qlg.tsgz.moe
Init Repo
This commit is contained in:
86
hyhproject/wechat2/behavior/InitWechatMessges.php
Executable file
86
hyhproject/wechat2/behavior/InitWechatMessges.php
Executable file
@ -0,0 +1,86 @@
|
||||
<?php
|
||||
namespace wstmart\wechat\behavior;
|
||||
use think\Db;
|
||||
/**
|
||||
* ============================================================================
|
||||
* 初始化微信消息模板
|
||||
*/
|
||||
class InitWechatMessges
|
||||
{
|
||||
public function run(&$params){
|
||||
$tpl = WSTMsgTemplates($params['CODE']);
|
||||
if(!$tpl)return;
|
||||
$userType = (isset($params['userType']) && $params['userType']==3)?3:0;
|
||||
$userId = $params['userId'];
|
||||
if($userType==3){
|
||||
$user = Db::name('staffs')->where(['staffId'=>$userId,'staffStatus'=>1])->field('wxOpenId')->find();
|
||||
}else{
|
||||
$user = Db::name('users')->where('userId',$userId)->field('wxOpenId')->find();
|
||||
}
|
||||
if($user['wxOpenId']=='')return;
|
||||
//数据封装
|
||||
$data = [];
|
||||
$data['touser'] = $user['wxOpenId'];
|
||||
$data['template_id'] = $tpl['tplExternaId'];
|
||||
if(isset($params['URL']) && $params['URL'] !='')$data['url'] = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".WSTConf("CONF.wxAppId")."&redirect_uri=".rawurlencode( $params['URL'] )."&response_type=code&scope=snsapi_userinfo&state=".WSTConf("CONF.wxAppCode")."&connect_redirect=1#wechat_redirect";
|
||||
$data['data'] = [];
|
||||
if(!empty($tpl['params'])){
|
||||
foreach($tpl['params'] as $key =>$v){
|
||||
foreach($params['params'] as $pkey =>$pv){
|
||||
$v['fieldVal'] = str_replace('${'.$pkey.'}',$pv,$v['fieldVal']);
|
||||
}
|
||||
$tpl['params'][$key] = $v;
|
||||
}
|
||||
}
|
||||
foreach($tpl['params'] as $key =>$v){
|
||||
$data['data'][$v['fieldCode']] = array('value'=>urlencode($v['fieldVal']));
|
||||
}
|
||||
//屏蔽因发送微信有问题导致不能下单的情况
|
||||
try{
|
||||
$we = WSTWechat();
|
||||
$rs = $we->sendTemplateMessage(urldecode(json_encode($data)));
|
||||
}catch (\Exception $e) {}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 批量发送-需要自己判断微信openId并传入
|
||||
*/
|
||||
public function batchRun(&$params){
|
||||
$tpl = WSTMsgTemplates($params['CODE']);
|
||||
if(!$tpl)return;
|
||||
$userType = (isset($params['userType']) && $params['userType']==3)?3:0;
|
||||
$userId = $params['userId'];
|
||||
if($userType==3){
|
||||
$user = Db::name('staffs')->where(['staffId'=>['in',$userId],'staffStatus'=>1])->field('wxOpenId')->select();
|
||||
}else{
|
||||
$user = Db::name('users')->where(['userId'=>['in',$userId]])->field('wxOpenId')->select();
|
||||
}
|
||||
if(empty($user))return;
|
||||
for($i=0;$i<count($user);$i++){
|
||||
if($user[$i]['wxOpenId']=='')continue;
|
||||
//数据封装
|
||||
$data = [];
|
||||
$data['touser'] = $user[$i]['wxOpenId'];
|
||||
$data['template_id'] = $tpl['tplExternaId'];
|
||||
if(isset($params['URL']) && $params['URL'] !='')$data['url'] = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".WSTConf("CONF.wxAppId")."&redirect_uri=".rawurlencode( $params['URL'] )."&response_type=code&scope=snsapi_userinfo&state=".WSTConf("CONF.wxAppCode")."&connect_redirect=1#wechat_redirect";
|
||||
$data['data'] = [];
|
||||
if(!empty($tpl['params'])){
|
||||
foreach($tpl['params'] as $key =>$v){
|
||||
foreach($params['params'] as $pkey =>$pv){
|
||||
$v['fieldVal'] = str_replace('${'.$pkey.'}',$pv,$v['fieldVal']);
|
||||
}
|
||||
$tpl['params'][$key] = $v;
|
||||
}
|
||||
}
|
||||
foreach($tpl['params'] as $key =>$v){
|
||||
$data['data'][$v['fieldCode']] = array('value'=>urlencode($v['fieldVal']));
|
||||
}
|
||||
//屏蔽因发送微信有问题导致不能下单的情况
|
||||
try{
|
||||
$we = WSTWechat();
|
||||
$rs = $we->sendTemplateMessage(urldecode(json_encode($data)));
|
||||
}catch (\Exception $e) {}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user