首页 > 其他分享 >公众号发送模板消息案例

公众号发送模板消息案例

时间:2023-12-28 15:12:39浏览次数:32  
标签:openid ch 发送 案例 json result curl 模板

后台代码



	//注意公众号的openid和小程序的 openid不是同一个
    $this->sendmuban($openid);


    public function sendmuban($openid){
        // 公众号的
        $appId = '**************';
        $appSecret = '***************';
        
        // 获取 Access Token
        $ch = curl_init("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appId}&secret={$appSecret}");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $response = curl_exec($ch);
        curl_close($ch);
        
        // 处理响应
        $result = json_decode($response, true);
        if ($result && isset($result['access_token'])) {
            $accessToken = $result['access_token'];
            
            // echo "Access Token 获取成功:{$accessToken}";
        } else {
            echo "Access Token 获取失败:" . json_encode($result);
        }

        
         
        // $openid = '***************';  // 用户的 OpenID
        $templateId = '***************************';  // 模板消息 ID
        
        // 构造模板消息数据
        $templateData = [
            'touser' => $openid,
            'template_id' => $templateId,
            'data' => [
                'thing1' => [
                    'value' => '*****', // 姓名,对应模板消息中的 {{thing1.DATA}}
                ],
                'time4' => [
                    'value' => '2023-01-01', // 时间,对应模板消息中的 {{time4.DATA}}
                ],
                'thing5' => [
                    'value' => '点击查看详情', // 跳转文案,对应模板消息中的 {{thing5.DATA}}
                ],
            ],
        ];
        
        // 发送模板消息
        $ch = curl_init("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={$accessToken}");
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($templateData, JSON_UNESCAPED_UNICODE));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
        $response = curl_exec($ch);
        curl_close($ch);
        
        // 处理响应
        $result = json_decode($response, true);
        if ($result && $result['errcode'] === 0) {
            echo "模板消息发送成功";
        } else {
            echo "模板消息发送失败:" . json_encode($result, JSON_UNESCAPED_UNICODE);
        }
        
        
    }
	

注意要跟模板消息的规则对应

image

标签:openid,ch,发送,案例,json,result,curl,模板
From: https://www.cnblogs.com/79524795-Tian/p/17932751.html

相关文章

  • 【SpringBoot快速入门】(4)SpringBoot项目案例代码示例
    目录1创建工程3配置文件4静态资源之前我们已经学习的Spring、SpringMVC、Mabatis、Maven,详细讲解了Spring、SpringMVC、Mabatis整合SSM的方案和案例,上一节我们学习了SpringBoot的开发步骤、工程构建方法以及工程的快速启动,从这一节开始,我们开始学习SpringBoot配置文件。接下来......
  • 在Spring Cloud中使用Zuul网关实现一个案例
    本篇依旧是在SpringCloud系列的博主已经搭建的SpringCloud微服务模块上进行的,注意,本文依旧适合初学者和或者在SpringCloud框架了解不是很深入的基础的开发者,本系列说不上有多高大上,博主坚持通过简单的案例,让开发者可以对SpringCloud的组件进行了解和使用,并在一定程度上介绍这些......
  • 三维基础模板
    //引入three.jsimport*asTHREEfrom'three';import{OrbitControls}from'three/examples/jsm/controls/OrbitControls.js';//exportconstthreeDimensional=(file)=>{constscene=newTHREE.Scene();//创建物体与材质cons......
  • 前端发送请求的时候 Content-Type 内容分类, django后端分别怎么接收
    前端发送请求时,常见的Content-Type内容类型包括:application/x-www-form-urlencoded这是最常见的内容类型,用于发送键值对形式的数据。数据被编码为URL查询字符串格式。Django后端可以通过request.POST来接收这些参数。multipart/form-data通常用于文件上传的表......
  • C++ --- 函数模板
    函数模板C++的一种编程思想称为泛型编程,主要利用的技术就是模板。编写与类型无关的调用代码,是代码复用的一种手段。 模板是泛型编程的基础。C++提供两种模板机制:函数模板和类模板。函数模板:建立一个通用的函数,它用到的参数类型可以不确定,用一个虚拟类型替代。等到函数调用的时......
  • # yyds干货盘点 # 盘点一个基金数据的Python网络爬虫案例
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python网络爬虫问题,一起来看看吧。问题描述:大佬们这个13位数字怎么构造呀 找不到规律 试了在第一页的url基础上加数字也是不行1、网站链接:http://quote.eastmoney.com/center/gridlist.html......
  • 人工智能在制造业自动化软件中的实际案例分析
    1.背景介绍制造业自动化软件的发展是人工智能在现实生活中的一个重要应用。在制造业中,人工智能技术的应用可以提高生产效率,降低成本,提高产品质量,降低人工操作的风险,实现智能化管理等。在制造业中,人工智能技术的应用主要包括以下几个方面:生产线自动化:通过使用机器人、自动化设备和传......
  • # yyds干货盘点 # 盘点一个Python自动化办公实战案例(三)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【钟爱一生】问了一个Python自动化办公的问题,一起来看看吧。【温馨提示】遇到表达不清的,能稍微描述下,想要达成的结果吗?在excel上,或者画图也行。最好是把你想要的结果展示在excel中,另外,你展示的这个表格最好做个小的demo发上来......
  • 盘点一个Python自动化办公实战案例(三)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【钟爱一生】问了一个Python自动化办公的问题,一起来看看吧。【温馨提示】遇到表达不清的,能稍微描述下,想要达成的结果吗?在excel上,或者画图也行。最好是把你想要的结果展示在excel中,另外,你展示的这个表格最好做个小的demo......
  • 洛谷B3611 【模板】传递闭包 floyd/bitset
    目录floydbitset优化题目链接:https://www.luogu.com.cn/problem/B3611参考题解:https://www.luogu.com.cn/blog/53022/solution-b3611floyd#include<bits/stdc++.h>usingnamespacestd;constintmaxn=101;intn,f[maxn][maxn];intmain(){scanf("%d"......