300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > thinkphp5 微信小程序推送模板消息

thinkphp5 微信小程序推送模板消息

时间:2021-08-22 02:35:00

相关推荐

thinkphp5 微信小程序推送模板消息

/**

* 示例

*/

public function confirm_distributor()

{

$d = input('post.');

$wx = WxUser::where('id','eq',$d['uid'])->find();

$data = ['id'=>$d['id'],'appoint'=>$d['distributorid'],'status'=>3];

if($d['type'] == 1){

$ret = OrderGoods::update($data);

$page = 'pages/orderDetails/orderDetails?id='.$d['id'].'&order_id='.$d['orderid'].'&act=2&order_act=1';

}

if($d['type'] == 2){

$ret = IntegralOrderGoods::update($data);

$page = 'pages/integralorderDetails/integralorderDetails?id='.$d['id'].'&order_id='.$d['orderid'].'&act=1&order_act=2';

}

$franchise = Db::name('franchise')->where('id','eq',$d['franchise_id'])->find();

//模板消息

$data = [

'keyword1'=>[ //下单时间

'value'=> $d['create_time'],

],

'keyword2'=>[ //所属店铺

'value'=> $franchise['shop_name'],

],

'keyword3'=>[ //订单编号

'value'=> $d['orderid'],

],

'keyword4'=>[ //配送员

'value'=> $d['clerk_name'],

],

'keyword5'=>[ //配送员电话

'value'=> $d['clerk_phone'],

],

'keyword6'=>[ //配送状态

'value'=>'正在配送',

],

'keyword7'=>[ //配送商品

'value'=> $d['goods_name'].'...',

],

'keyword8'=>[ //订单金额

'value'=> $d['type'] == 1 ? '¥'.$d['price'] : $d['price'].'积分',

],

'keyword9'=>[ //联系人

'value'=> $d['realname'],

],

'keyword10'=>[ //收货地点

'value'=> $d['address'],

],

];

$template_id = '登录微信小程序上创建模板消息的模板秘钥';

$res = $this->send_template($wx['openid'],$template_id,$d['formid'],$data,$d['id'],$d['orderid'],2,1,$page);

return json_encode(array('code':200,'msg'=>'kkkk'));

}

/**

* [send_template 推送模板消息]

* @param [type] $openid [openid]

* @param [type] $template_id [模板消息id]

* @param [type] $formid [表单id]

* @param [type] $data [内容]

* @param [type] $id[商品id]

* @param [type] $order_id [订单编号]

* @param [type] $act[查看标识]

* @param [type] $order_act [查看标识]

* @return [type] [description]

*/

function send_template($openid,$template_id,$formid,$data,$id,$order_id,$act='2',$order_act='1',$page){

//form_id 表单提交场景下,为submit事件带上的formId;支付场景下,为本次支付的prepay_id

//获取token值

$config = Db::name('wx_config')->where('id','eq','1')->find();

$url = "https://api./cgi-bin/token?grant_type=client_credential&appid=".$config['x_appid']."&secret=".$config['x_appsecret'];

$result = curl_get($url);

$access_token = $result['access_token'];

//拼装URL

$url = "https://api./cgi-bin/message/wxopen/template/send?access_token=".$access_token;

//拼装模板消息

// $data = [

// 'keyword1'=>[

//'value'=>"“".$textname."”",

//'color'=>'#000000'

// ],

// ];

$template_data=[

'touser'=>$openid,

'template_id'=>$template_id,

'page'=>$page,

'form_id'=>$formid,

'data'=>$data,

'emphasis_keyword'=>'',

];

$template_data = json_encode($template_data);

$result = curl_post_https($url,$template_data);

return $result;

}

/* PHP CURL HTTPS POST */

function curl_post_https($url,$data){ // 模拟提交数据函数

$curl = curl_init(); // 启动一个CURL会话

curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在

curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器

curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转

curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer

curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求

curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包

curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环

curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回

$tmpInfo = curl_exec($curl); // 执行操作

if (curl_errno($curl)) {

echo 'Errno'.curl_error($curl);//捕抓异常

}

curl_close($curl); // 关闭CURL会话

return $tmpInfo; // 返回数据,json格式

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。