php进行小程序简单的推送流程

本文详细介绍了如何在小程序中配置并使用模板消息推送功能,包括后台PHP代码配置、获取form_id及prepay_id,以及通过API接口实现消息推送的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先进行小程序 推送模板的配置
step 1 : 登录小程序 点击右边的开发菜单
step 2 :在点击右边开发设置 下面有一个消息推送 根据相对应的提示完成配置 (配置的url: 启用并设置消息推送配置后,用户发给小程序的消息以及开发者需要的事件推送,都将被微信转发至该服务器地址中)
php 后台的配置代码

 function Msg(){
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
    $echostr = $_GET["echostr"];
    $token = '配置的token';
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    $tmpStr == $signature?  echo  $echostr echo  false;
}

step 3 : 创建模板消息
点击功能模块下的消息模版 点击添加模版 然后找到项目需要的相对应的模版消息 选择好关键字 然后保存
以上三部 就完成了 模版消息的创建 后面就是消息推送的代码实现过程

首先小程序的xml文件代码中要包含form表单得到form_id 或者是充值的时候获得的支付id prepay_id (form表单 获得form_id的方法就是在 form组件中设置 report-submit = ‘true’ )
// 下面是推送的php后台代码

  function SendMsg()
    {
        $appid = '小程序的appid';
        $secret = '小程序的AppSecret';
        $userid = '用户的openid';  
        $form_id = 'form_id';  // 表单提交的form_id
        $prepay_id = 'prepay_id'; //  支付时产生的的支付 prepay_id
        $template_id = "step 3 中选择模版的 模版id";
        //  配置要推送的数据   这里的内容都以时间来展示 
        $data_arr = [
            "keyword1"=>['value'=>date("Y-m-d H:i:s")],
            "keyword2"=>['value'=>date("Y-m-d H:i:s")],
        ];
        $post_data = array (
            "touser"           => $openid,   //用户的 openID,可用过 wx.getUserInfo 获取
            "template_id"      => $template_id, //小程序后台申请到的模板编号
            "page"             => "/pages/index/index",  //点击模板消息后跳转到的页面,可以传递参数
            "form_id"          => $form_id?:$prepay_id, //第一步里获取到的 formID 或者是支付的id
            "data"             => $data_arr, // 需要推送的数据 
            "emphasis_keyword" => "keyword2.DATA"  //需要强调的关键字,会加大居中显示
        );
        //  获得token值
        $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
  		$rest = file_get_contents $url );
        $rest  = json_decode($rest,true);
        $accessToken =$rest['access_token'];
        //  调用接口 发送消息 
        $url = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=".$accessToken;
         $json_template = json_encode($post_data,true);  //将内容json化
        $options = [
            'http' => [
                'method'  => 'POST', // 传输方式为post
                'header'  => 'Content-type:application/json', //header 需要设置为 JSON
                'content' => $json_template,   //  需要推送的内容
                'timeout' => 60//超时时间
            ]
        ];
        $context = stream_context_create( $options );
        $result = file_get_contents( $url, false, $context );
    }

当表单发生点击的时候 就会产生form_id 拿到了form_id 就可以直接调用上面的那个推送的接口了 调用成功之后微信那边就直接将要推送的内容 发送到方法当中的那个openid 相对应的微信上

当然这个推送也可以直接在小程序的js文件当中 设置好要推送的内容 直接在js文件中 利用wx.request 请求微信api接口 不一定非得需要后台来操作实现

### 使用PHP实现微信小程序的消息推送 #### 获取必要的参数 为了能够成功地向微信小程序用户发送消息,开发者需要先准备好小程序的相关凭证,即APPID和APPSECRET。这两个参数用于后续获取`access_token`,这是与微信公众平台通信所必需的身份验证令牌[^2]。 #### 准备环境并安装依赖库 推荐使用EasyWeChat SDK来简化开发过程。该SDK封装了许多底层细节,使得操作更加简便直观。可以通过Composer轻松安装此包: ```bash composer require overtrue/wechat ``` #### 初始化SDK实例 创建一个新的PHP文件,在其中引入命名空间,并初始化一个代表小程序的应用对象。这一步骤会利用之前准备好的APPID和APPSECRET完成身份验证流程。 ```php use EasyWeChat\Factory; $app = Factory::miniProgram(config('wechat.mini_program.default')); ``` 这里的`config()`函数假设配置已经被加载到环境中;如果不是这种情况,则应直接传入相应的数组形式的设置项。 #### 发送模板消息 当一切准备工作完成后,便可以构建要发送的信息体并向指定的目标用户发出通知了。下面是一个简单的例子展示如何发送一条模板消息给特定用户的openid: ```php $result = $app->customer_service->message([ 'touser' => 'OPENID', 'msgtype' => 'text', 'text' => [ 'content' => "您好!这里是来自服务器的通知。", ], ])->send(); ``` 需要注意的是,实际应用中应当替换掉上述代码中的`OPENID`为真实的接收者标识符,并按照官方文档的要求调整消息结构以适应不同的业务场景需求[^4]。 #### 处理响应结果 最后不要忘记处理API返回的结果数据。通常情况下,如果请求成功执行,将会收到包含状态码和其他元信息的对象作为回应。可以根据这些反馈判断是否有必要采取进一步行动或是记录日志以便日后排查问题[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值