zoukankan      html  css  js  c++  java
  • php之微信公众号发送模板消息

    讲一下开发项目中微信公众号发送模板消息的实现过程(我用的还是Thinkphp5.0)。

    先看一下效果,如图:

    就是类似于这样的,下面讲一下实现过程:

    第一步:微信公众号申请模板消息权限:

    立即申请:

    申请过程就不说了,提交并且申请通过后,可以在模板库中看到模板消息列表:

    想用哪个模板点击进去添加就行了:

    添加模板后就存放到“我的模板库”中了,这是我添加的需要用到的一些:

    点击查看模板的详情,可以看到模板的id及各项内容参数名,不同的模板消息的内容结构不一样。这些id及字段名在程序中会使用到:

    第二步:程序实现模板消息SDK:

    同样的,模板消息是使用access token来发送的,所以要获取token。

    我把模板消息的类文件放在了extend下面,大致位置如图:

    代码截图如下:

    类文件这样就可以了,到时候直接引入使用就可以了。

    第三步:构建模板消息:

    我把需要用到的模板消息 都写成一个个方法,放在公共类文件中了,可以参考一下:

     1 //下单成功通知模板
     2 /*
     3  * openid:微信唯一标识
     4  * orderSn:订单号
     5  * goods_name:商品名称
     6  * goods_num:商品数量
     7  * allMoney:总价格
     8  */
     9 function orderSuccess($openid=null,$orderSn=null,$goods_name=null,$goods_num=null,$allMoney=null){
    10     $template = array(
    11         "touser" => "$openid",
    12         "template_id" => "gApc7CzZSiJOZ7OeoXKK8APmz-dcuQuwfBTzPblEWv4",
    13         'url' => '跳转地址',
    14         'topcolor' => '#ccc',
    15         'data' => array('first'   => array('value' =>urlencode('亲,您的订单已创建成功,我们会立即为您备货,并在第一时间内为您安排专人免费送货到家!订单详情如下'),
    16                                            'color' =>"#743A3A",
    17         ),
    18             'keyword1' => array('value' =>urlencode($orderSn),
    19                                 'color' =>'#FF0000'
    20             ),
    21             'keyword2' => array('value' =>urlencode($goods_name),
    22                                 'color' =>'#FF0000'
    23             ),
    24             'keyword3' => array('value' =>urlencode($goods_num),
    25                                 'color' =>'#FF0000'
    26             ),
    27             'keyword4' => array('value' =>urlencode($allMoney),
    28                                 'color' =>'#FF0000'
    29             ),
    30             'keyword5' => array('value' =>urlencode('在线支付'),
    31                                 'color' =>'#FF0000'
    32             ),
    33             'remark'   => array('value' =>urlencode('如果您对以上信息有任何疑问,请直接在平台上回复您的问题即可,或拨打客服电话4001021789。再次感谢您的惠顾!'),
    34                                 'color' =>'#FF0000'
    35             ),
    36         )
    37     );
    38     return $template;
    39 }

    这只是我写的其中一个下单成功的模板消息,放在common文件中了,这样基本上就完成了:

    下面引用模板消息发送到微信公众号中

    1  
    2                     //构造消息模板
    3                     $template =orderSuccess($openid,$reoderSn,$goodsNames,$sum,$money);
    4                     //引入模板消息类
    5                     Loader::import('orgWxMessage', EXTEND_PATH);
    6                     //实例化消息类
    7                     $message = new WxMessage();
    8                     //发送消息
    9                     $message->send_template_message(urldecode(json_encode($template)));

    用loader引入extend下的消息类文件,发送消息后,就得到了刚开始的那张图片内容。

    挺简单的,感觉有用的可以参考一下试试看。

    本文属原创内容,为了尊重他人劳动,转载请注明本文地址:

    http://www.cnblogs.com/luokakale/p/8143684.html

  • 相关阅读:
    C#资源释放方法实例分析
    c#中在一个窗体中触发另一个窗体的事件
    C#定时器的用法
    C# 类的析构函数和释放函数
    C# 定时执行,文件占用
    C#多线程与异步
    Newtonsoft中JArray 转成list<object>
    C#中Dictionary的用法
    C# 解析Json文件(使用NewtonJson库)
    mysql无法远程连接10038错误的坑(阿里云ecs)
  • 原文地址:https://www.cnblogs.com/luokakale/p/8143684.html
Copyright © 2011-2022 走看看