# 模板消息推送类 TemplateMessageApi
**目录 (Table of Contents)**
[TOC]
## 类基本信息
**类简要描述:**
- 用于构造微信公众号模板消息内容,一个TemplateContext结构是模板消息中的一行
**类成员变量说明:**
|成员变量|类型|访问修饰|说明
|:---- |:---|:----- |----- |
|$tpl_data | array | private| 模板数据数组 |
|$to_userid| string | private| 接收模板消息的用户ID |
|$tpl_id| string | private| 模板消息id |
|$url| string | private| 点击模板消息跳转的页面 |
|$topcolor| string | private| 顶部字体颜色 |
**类名字空间:**
- endor/wechat/template/
## 类成员函数/方法
### __construct($configure)
+ 参数列表:
|参数名|类型|必填项|说明
|:---- |:---|:----- |----- |
|$configure| object (WechatConfig) | 是 | 微信配置参数对象 |
+ 返回值:
`无`
+ 函数说明:
`构造函数`
### to($user_id)
+ 参数列表:
|参数名|类型|必填项|说明
|:---- |:---|:----- |----- |
|$user_id| string| 是 | 接收模板消息的用户ID |
+ 返回值:
`Object 返回 this 以支持链式操作`
+ 函数说明:
`设置消息接收人`
### url($url = '' )
+ 参数列表:
|参数名|类型|必填项|说明
|:---- |:---|:----- |----- |
|$url| string| 否 | 点击模板消息跳转的页面 |
+ 返回值:
`Object 返回 this 以支持链式操作`
+ 函数说明:
`设置模板消息点击后的跳转页面,**注:** 如果url为空,则IOS进入空白页面,Android无法点击
### tpl($template_id)
+ 参数列表:
|参数名|类型|必填项|说明
|:---- |:---|:----- |----- |
|$template_id| string| 是 | 模板消息的id |
+ 返回值:
`Object 返回 this 以支持链式操作`
+ 函数说明:
`设置模板消息的id`
### topColor($topcolor)
+ 参数列表:
|参数名|类型|必填项|说明
|:---- |:---|:----- |----- |
|$topcolor| string| 是 | 模板消息顶部文字颜色 |
+ 返回值:
`Object 返回 this 以支持链式操作`
+ 函数说明:
`设置模板消息顶部文字颜色`
### tplData($tplContextArray)
+ 参数列表:
|参数名|类型|必填项|说明
|:---- |:---|:----- |----- |
|$tplContextArray| Array| 是 | 模板消息上下文对象数组 |
+ 返回值:
`Object 返回 this 以支持链式操作`
+ 函数说明:
`设置模板消息上下文对象数组,该数组是通过 TempateContext::pushArray 构造`
### send($options = null)
+ 参数列表:
|参数名|类型|必填项|说明
|:---- |:---|:----- |----- |
|$options| Array| 否 | 模板消息配置参数 |
+ 返回值:
`Array`
+ 函数说明:
`发送模板消息,如果不采用链式调用,则必要参数通过options初始化`
+ options 参数项
|参数名|类型|必填项|说明
|:---- |:---|:----- |----- |
|$to_userid| string | 是 | 接收模板消息的用户ID |
|$data| Array| 是 | 模板消息上下文对象数组 |
|$template_id| Array| 是 | 模板消息ID |
>[danger] 该类下面支持链式操作的函数,除了send必须放置在最后外,其余的调用部分先手顺序
```PHP
// 这里 to(), url(), tpl(),tplData() 四个方法调用不区分顺序,但send必须放在最后
$tplMsgApi ->to($userOpenid)
->url("https://www.baidu.com")
->tpl("MFJCNBZO7m40qhddSgpqMfhoo8aVa_27_hdp8MwPGAA")
->tplData($arrayDatas)
->send();
```
- 1、序言
- 1.1、更新说明
- 1.2、更新计划
- 2、开始使用 Endor
- 3、目录结构
- 4、类说明
- 4.1、WechatConfig
- 4.2、WechatValid
- 4.3、WechatCommon
- 4.4、WechatException
- 4.5、基础接口
- 4.5.1、ShortUrl
- 4.5.2、WechatServerApi
- 4.6、菜单接口
- 4.6.1、菜单类设计
- 4.6.2、Menu
- 4.6.3、ClickMenu
- 4.6.4、ViewMenu
- 4.6.5、MiniProgramMenu
- 4.6.6、MenuApi
- 4.7、消息接口
- 4.7.1、Receiver
- 4.7.2、Message
- 4.7.3、EventMessage
- 4.7.4、TextMessage
- 4.7.5、ClickEventMessage
- 4.7.6、SubscribeEventMessage
- 4.7.7、UnSubscribeEventMessage
- 4.7.8、LocationEventMessage
- 4.7.9、ImageMessage
- 4.7.10、LinkMessage
- 4.7.11、NewsMessage
- 4.7.12、NewsContext
- 4.8、OAuth2.0权限验证
- 4.8.1、WechatUser
- 4.8.2、OAuthApi
- 4.9、微信支付接口
- 4.9.1、微信支付类设计
- 4.9.2、PayApi
- 4.9.3、RequestPay
- 4.9.4、ResponsePay
- 4.9.5、UnifiedOrder
- 4.9.6、JsPay
- 4.9.7、Refund
- 4.9.8、Query
- 4.9.9、Bill
- 4.9.10、NotifyData
- 4.9.11、Notify
- 4.10、模板消息接口
- 4.10.1、TemplateContext
- 4.10.2、TemplateMessageApi
- 5、使用场景
- 5.1、微信接入服务器验证
- 5.2、获取微信API令牌(access_token)
- 5.3、获取JS API
- 5.4、OAuth2.0静默登录
- 5.5、微信菜单
- 5.6、微信消息
- 5.7、微信支付
- 5.7.1、微信公众号内JsApi支付
- 5.7.2、Native 模式二 扫码支付
- 5.8、模板消息发送