me.chanjar.weixin.mp.api.impl

## 类 WxMpServiceImpl

- java.lang.Object
- - me.chanjar.weixin.mp.api.impl.WxMpServiceImpl

所有已实现的接口:
  WxMpService

    public class WxMpServiceImpl
    extends Object
    implements WxMpService

### 字段概要

字段
`protected org.slf4j.Logger` `log`
`protected WxSessionManager` `sessionManager`

### 构造器概要

构造器
构造器和说明
`WxMpServiceImpl()`

### 方法概要

方法
`String` `buildQrConnectUrl(String redirectURI, String scope, String state)` 构造第三方使用网站应用授权登录的url 详情请见: `boolean` `checkSignature(String timestamp, String nonce, String signature)` 验证消息的确来自微信服务器 详情请见: http://mp.weixin.qq.com/wiki?
`WxJsapiSignature` `createJsapiSignature(String url)` 创建调用jsapi时所需要的签名 详情请见：http://mp.weixin.qq.com/wiki?
`<T,E> T` `execute(RequestExecutor<T,E> executor, String uri, E data)` 向微信端发送请求，在这里执行的策略是当发生access_token过期时才去刷新，然后重新执行请求，而不是全局定时请求
`protected <T,E> T` `executeInternal(RequestExecutor<T,E> executor, String uri, E data)`
`String` `get(String url, String queryParam)` 当本Service没有实现某个API的时候，可以用这个，针对所有微信API中的GET请求
`String` `getAccessToken()` 获取access_token, 不强制刷新access_token
`String` `getAccessToken(boolean forceRefresh)` 获取access_token，本方法线程安全 且在多线程同时刷新时只刷新一次，避免超出2000次/日的调用次数上限 另：本service的所有方法都会在access_token过期是调用此方法 程序员在非必要情况下尽量不要主动调用此方法 详情请见: http://mp.weixin.qq.com/wiki?
`WxMpUserBlacklistService` `getBlackListService()` 返回用户黑名单管理相关接口方法的实现类对象，以方便调用其各个接口
`String[]` `getCallbackIP()` 获取微信服务器IP地址 http://mp.weixin.qq.com/wiki/0/2ad4b6bfd29f30f71d39616c2a0fcedc.html
`WxMpCardService` `getCardService()` 返回卡券相关接口方法的实现类对象，以方便调用其各个接口
`WxMpDataCubeService` `getDataCubeService()` 返回数据分析统计相关接口方法的实现类对象，以方便调用其各个接口
`WxMpDeviceService` `getDeviceService()` 返回硬件平台相关接口方法的实现类对象，以方便调用其各个接口
`org.apache.http.impl.client.CloseableHttpClient` `getHttpclient()`
`org.apache.http.HttpHost` `getHttpProxy()` 获取代理对象
`String` `getJsapiTicket()` 获得jsapi_ticket,不强制刷新jsapi_ticket
`String` `getJsapiTicket(boolean forceRefresh)` 获得jsapi_ticket 获得时会检查jsapiToken是否过期，如果过期了，那么就刷新一下，否则就什么都不干 详情请见：http://mp.weixin.qq.com/wiki?
`WxMpKefuService` `getKefuService()` 返回客服接口方法实现类，以方便调用其各个接口
`WxMpMaterialService` `getMaterialService()` 返回素材相关接口方法的实现类对象，以方便调用其各个接口
`WxMpMenuService` `getMenuService()` 返回菜单相关接口方法的实现类对象，以方便调用其各个接口
`WxMpPayService` `getPayService()` 返回微信支付相关接口方法的实现类对象，以方便调用其各个接口
`WxMpQrcodeService` `getQrcodeService()` 返回二维码相关接口方法的实现类对象，以方便调用其各个接口
`WxMpStoreService` `getStoreService()` 返回门店管理相关接口方法的实现类对象，以方便调用其各个接口
`WxMpTemplateMsgService` `getTemplateMsgService()` 返回模板消息相关接口方法的实现类对象，以方便调用其各个接口
`WxMpUserService` `getUserService()` 返回用户相关接口方法的实现类对象，以方便调用其各个接口
`WxMpUserTagService` `getUserTagService()` 返回用户标签相关接口方法的实现类对象，以方便调用其各个接口
`WxMpConfigStorage` `getWxMpConfigStorage()` 获取WxMpConfigStorage 对象
`WxMpMassSendResult` `massGroupMessageSend(WxMpMassTagMessage message)` 分组群发消息 如果发送图文消息，必须先使用 `WxMpService.massNewsUpload(me.chanjar.weixin.mp.bean.WxMpMassNews)` 获得media_id，然后再发送 如果发送视频消息，必须先使用 `WxMpService.massVideoUpload(me.chanjar.weixin.mp.bean.WxMpMassVideo)` 获得media_id，然后再发送 详情请见: http://mp.weixin.qq.com/wiki?
`WxMpMassSendResult` `massMessagePreview(WxMpMassPreviewMessage wxMpMassPreviewMessage)` 群发消息预览接口 开发者可通过该接口发送消息给指定用户，在手机端查看消息的样式和排版。
`WxMpMassUploadResult` `massNewsUpload(WxMpMassNews news)` 上传群发用的图文消息，上传后才能群发图文消息 详情请见: http://mp.weixin.qq.com/wiki?
`WxMpMassSendResult` `massOpenIdsMessageSend(WxMpMassOpenIdsMessage message)` 按openId列表群发消息 如果发送图文消息，必须先使用 `WxMpService.massNewsUpload(me.chanjar.weixin.mp.bean.WxMpMassNews)` 获得media_id，然后再发送 如果发送视频消息，必须先使用 `WxMpService.massVideoUpload(me.chanjar.weixin.mp.bean.WxMpMassVideo)` 获得media_id，然后再发送 详情请见: http://mp.weixin.qq.com/wiki?
`WxMpMassUploadResult` `massVideoUpload(WxMpMassVideo video)` 上传群发用的视频，上传后才能群发视频消息 详情请见: http://mp.weixin.qq.com/wiki?
`String` `oauth2buildAuthorizationUrl(String redirectURI, String scope, String state)` 构造oauth2授权的url连接 详情请见: http://mp.weixin.qq.com/wiki/index.php?
`WxMpOAuth2AccessToken` `oauth2getAccessToken(String code)` 用code换取oauth2的access token 详情请见: http://mp.weixin.qq.com/wiki/index.php?
`WxMpUser` `oauth2getUserInfo(WxMpOAuth2AccessToken oAuth2AccessToken, String lang)` 用oauth2获取用户信息, 当前面引导授权时的scope是snsapi_userinfo的时候才可以
`WxMpOAuth2AccessToken` `oauth2refreshAccessToken(String refreshToken)` 刷新oauth2的access token
`boolean` `oauth2validateAccessToken(WxMpOAuth2AccessToken oAuth2AccessToken)` 验证oauth2的access token是否有效
`String` `post(String url, String postData)` 当本Service没有实现某个API的时候，可以用这个，针对所有微信API中的POST请求
`WxMpSemanticQueryResult` `semanticQuery(WxMpSemanticQuery semanticQuery)` 语义查询接口 详情请见：http://mp.weixin.qq.com/wiki/index.php?
`void` `setMaxRetryTimes(int maxRetryTimes)` 设置当微信系统响应系统繁忙时，最大重试次数 默认：5次
`void` `setRetrySleepMillis(int retrySleepMillis)` 设置当微信系统响应系统繁忙时，要等待多少 retrySleepMillis(ms) * 2^(重试次数 - 1) 再发起重试 默认：1000ms
`void` `setWxMpConfigStorage(WxMpConfigStorage wxConfigProvider)` 注入 `WxMpConfigStorage` 的实现
`String` `shortUrl(String long_url)` 长链接转短链接接口 详情请见: http://mp.weixin.qq.com/wiki/index.php?

### 从类继承的方法 java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### 字段详细资料

#### log

    protected final org.slf4j.Logger log

#### sessionManager

    protected WxSessionManager sessionManager

### 构造器详细资料

#### WxMpServiceImpl

    public WxMpServiceImpl()

### 方法详细资料

#### checkSignature

    public boolean checkSignature(String timestamp,
                         String nonce,
                         String signature)

从接口复制的说明: `WxMpService`

     验证消息的确来自微信服务器
     详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319&token=&lang=zh_CN

指定者:
  `checkSignature` 在接口中 `WxMpService`

#### getAccessToken

    public String getAccessToken()
                          throws WxErrorException

从接口复制的说明: `WxMpService`
获取access_token, 不强制刷新access_token

指定者:
  `getAccessToken` 在接口中 `WxMpService`
抛出:
  `WxErrorException`
另请参阅:
  `WxMpService.getAccessToken(boolean)`

#### getAccessToken

    public String getAccessToken(boolean forceRefresh)
                          throws WxErrorException

从接口复制的说明: `WxMpService`

     获取access_token，本方法线程安全
     且在多线程同时刷新时只刷新一次，避免超出2000次/日的调用次数上限

     另：本service的所有方法都会在access_token过期是调用此方法

     程序员在非必要情况下尽量不要主动调用此方法

     详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183&token=&lang=zh_CN

指定者:
  `getAccessToken` 在接口中 `WxMpService`
参数:
  `forceRefresh` - 强制刷新
抛出:
  `WxErrorException`

#### getJsapiTicket

    public String getJsapiTicket()
                          throws WxErrorException

从接口复制的说明: `WxMpService`
获得jsapi_ticket,不强制刷新jsapi_ticket

指定者:
  `getJsapiTicket` 在接口中 `WxMpService`
抛出:
  `WxErrorException`
另请参阅:
  `WxMpService.getJsapiTicket(boolean)`

#### getJsapiTicket

    public String getJsapiTicket(boolean forceRefresh)
                          throws WxErrorException

从接口复制的说明: `WxMpService`

     获得jsapi_ticket
     获得时会检查jsapiToken是否过期，如果过期了，那么就刷新一下，否则就什么都不干

     详情请见：http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN

指定者:
  `getJsapiTicket` 在接口中 `WxMpService`
参数:
  `forceRefresh` - 强制刷新
抛出:
  `WxErrorException`

#### createJsapiSignature

    public WxJsapiSignature createJsapiSignature(String url)
                                          throws WxErrorException

从接口复制的说明: `WxMpService`

     创建调用jsapi时所需要的签名

     详情请见：http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN

指定者:
  `createJsapiSignature` 在接口中 `WxMpService`
抛出:
  `WxErrorException`

#### massNewsUpload

    public WxMpMassUploadResult massNewsUpload(WxMpMassNews news)
                                        throws WxErrorException

从接口复制的说明: `WxMpService`

     上传群发用的图文消息，上传后才能群发图文消息

     详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN

指定者:
  `massNewsUpload` 在接口中 `WxMpService`
抛出:
  `WxErrorException`
另请参阅:
  `WxMpService.massGroupMessageSend(me.chanjar.weixin.mp.bean.WxMpMassTagMessage)`, `WxMpService.massOpenIdsMessageSend(me.chanjar.weixin.mp.bean.WxMpMassOpenIdsMessage)`

#### massVideoUpload

    public WxMpMassUploadResult massVideoUpload(WxMpMassVideo video)
                                         throws WxErrorException

从接口复制的说明: `WxMpService`

     上传群发用的视频，上传后才能群发视频消息
     详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN

指定者:
  `massVideoUpload` 在接口中 `WxMpService`
抛出:
  `WxErrorException`
另请参阅:
  `WxMpService.massGroupMessageSend(me.chanjar.weixin.mp.bean.WxMpMassTagMessage)`, `WxMpService.massOpenIdsMessageSend(me.chanjar.weixin.mp.bean.WxMpMassOpenIdsMessage)`

#### massGroupMessageSend

    public WxMpMassSendResult massGroupMessageSend(WxMpMassTagMessage message)
                                            throws WxErrorException

从接口复制的说明: `WxMpService`

     分组群发消息
     如果发送图文消息，必须先使用 WxMpService.massNewsUpload(me.chanjar.weixin.mp.bean.WxMpMassNews) 获得media_id，然后再发送
     如果发送视频消息，必须先使用 WxMpService.massVideoUpload(me.chanjar.weixin.mp.bean.WxMpMassVideo) 获得media_id，然后再发送
     详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN

指定者:
  `massGroupMessageSend` 在接口中 `WxMpService`
抛出:
  `WxErrorException`

#### massOpenIdsMessageSend

    public WxMpMassSendResult massOpenIdsMessageSend(WxMpMassOpenIdsMessage message)
                                              throws WxErrorException

从接口复制的说明: `WxMpService`

     按openId列表群发消息
     如果发送图文消息，必须先使用 WxMpService.massNewsUpload(me.chanjar.weixin.mp.bean.WxMpMassNews) 获得media_id，然后再发送
     如果发送视频消息，必须先使用 WxMpService.massVideoUpload(me.chanjar.weixin.mp.bean.WxMpMassVideo) 获得media_id，然后再发送
     详情请见: http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN

指定者:
  `massOpenIdsMessageSend` 在接口中 `WxMpService`
抛出:
  `WxErrorException`

#### massMessagePreview

    public WxMpMassSendResult massMessagePreview(WxMpMassPreviewMessage wxMpMassPreviewMessage)
                                          throws Exception

从接口复制的说明: `WxMpService`

     群发消息预览接口
     开发者可通过该接口发送消息给指定用户，在手机端查看消息的样式和排版。为了满足第三方平台开发者的需求，在保留对openID预览能力的同时，增加了对指定微信号发送预览的能力，但该能力每日调用次数有限制（100次），请勿滥用。
     接口调用请求说明
      http请求方式: POST
      https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=ACCESS_TOKEN
     详情请见：http://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140549&token=&lang=zh_CN

指定者:
  `massMessagePreview` 在接口中 `WxMpService`
返回:
  wxMpMassSendResult
抛出:
  `Exception`

#### shortUrl

    public String shortUrl(String long_url)
                    throws WxErrorException

从接口复制的说明: `WxMpService`

     长链接转短链接接口
     详情请见: http://mp.weixin.qq.com/wiki/index.php?title=长链接转短链接接口

指定者:
  `shortUrl` 在接口中 `WxMpService`
抛出:
  `WxErrorException`

#### semanticQuery

    public WxMpSemanticQueryResult semanticQuery(WxMpSemanticQuery semanticQuery)
                                          throws WxErrorException

从接口复制的说明: `WxMpService`

     语义查询接口
     详情请见：http://mp.weixin.qq.com/wiki/index.php?title=语义理解

指定者:
  `semanticQuery` 在接口中 `WxMpService`
抛出:
  `WxErrorException`

#### oauth2buildAuthorizationUrl

    public String oauth2buildAuthorizationUrl(String redirectURI,
                                     String scope,
                                     String state)

从接口复制的说明: `WxMpService`

     构造oauth2授权的url连接
     详情请见: http://mp.weixin.qq.com/wiki/index.php?title=网页授权获取用户基本信息

指定者:
  `oauth2buildAuthorizationUrl` 在接口中 `WxMpService`
参数:
  `redirectURI` - 用户授权完成后的重定向链接，无需urlencode, 方法内会进行encode
返回:
  url

#### buildQrConnectUrl

    public String buildQrConnectUrl(String redirectURI,
                           String scope,
                           String state)

从接口复制的说明: `WxMpService`

     构造第三方使用网站应用授权登录的url
     详情请见: 网站应用微信登录开发指南
     URL格式为：https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

指定者:
  `buildQrConnectUrl` 在接口中 `WxMpService`
参数:
  `redirectURI` - 用户授权完成后的重定向链接，无需urlencode, 方法内会进行encode
  `scope` - 应用授权作用域，拥有多个作用域用逗号（,）分隔，网页应用目前仅填写snsapi_login即可
  `state` - 非必填，用于保持请求和回调的状态，授权请求后原样带回给第三方。该参数可用于防止csrf攻击（跨站请求伪造攻击），建议第三方带上该参数，可设置为简单的随机数加session进行校验
返回:
  url

#### oauth2getAccessToken

    public WxMpOAuth2AccessToken oauth2getAccessToken(String code)
                                               throws WxErrorException

从接口复制的说明: `WxMpService`

     用code换取oauth2的access token
     详情请见: http://mp.weixin.qq.com/wiki/index.php?title=网页授权获取用户基本信息

指定者:
  `oauth2getAccessToken` 在接口中 `WxMpService`
抛出:
  `WxErrorException`

#### oauth2refreshAccessToken

    public WxMpOAuth2AccessToken oauth2refreshAccessToken(String refreshToken)
                                                   throws WxErrorException

从接口复制的说明: `WxMpService`

     刷新oauth2的access token

指定者:
  `oauth2refreshAccessToken` 在接口中 `WxMpService`
抛出:
  `WxErrorException`

#### oauth2getUserInfo

    public WxMpUser oauth2getUserInfo(WxMpOAuth2AccessToken oAuth2AccessToken,
                             String lang)
                               throws WxErrorException

从接口复制的说明: `WxMpService`

     用oauth2获取用户信息, 当前面引导授权时的scope是snsapi_userinfo的时候才可以

指定者:
  `oauth2getUserInfo` 在接口中 `WxMpService`
  `lang` - zh_CN, zh_TW, en
抛出:
  `WxErrorException`

#### oauth2validateAccessToken

    public boolean oauth2validateAccessToken(WxMpOAuth2AccessToken oAuth2AccessToken)

从接口复制的说明: `WxMpService`

     验证oauth2的access token是否有效

指定者:
  `oauth2validateAccessToken` 在接口中 `WxMpService`

#### getCallbackIP

    public String[] getCallbackIP()
                           throws WxErrorException

从接口复制的说明: `WxMpService`

     获取微信服务器IP地址
     http://mp.weixin.qq.com/wiki/0/2ad4b6bfd29f30f71d39616c2a0fcedc.html

指定者:
  `getCallbackIP` 在接口中 `WxMpService`
抛出:
  `WxErrorException`

#### get

    public String get(String url,
             String queryParam)
               throws WxErrorException

从接口复制的说明: `WxMpService`
当本Service没有实现某个API的时候，可以用这个，针对所有微信API中的GET请求

指定者:
  `get` 在接口中 `WxMpService`
抛出:
  `WxErrorException`

#### post

    public String post(String url,
              String postData)
                throws WxErrorException

从接口复制的说明: `WxMpService`
当本Service没有实现某个API的时候，可以用这个，针对所有微信API中的POST请求

指定者:
  `post` 在接口中 `WxMpService`
抛出:
  `WxErrorException`

#### execute

    public <T,E> T execute(RequestExecutor<T,E> executor,
                  String uri,
                  E data)
              throws WxErrorException

向微信端发送请求，在这里执行的策略是当发生access_token过期时才去刷新，然后重新执行请求，而不是全局定时请求

指定者:
  `execute` 在接口中 `WxMpService`
抛出:
  `WxErrorException`

#### executeInternal

    protected <T,E> T executeInternal(RequestExecutor<T,E> executor,
                          String uri,
                          E data)
                         throws WxErrorException

抛出:
  `WxErrorException`

#### getHttpProxy

    public org.apache.http.HttpHost getHttpProxy()

从接口复制的说明: `WxMpService`
获取代理对象

指定者:
  `getHttpProxy` 在接口中 `WxMpService`

#### getHttpclient

    public org.apache.http.impl.client.CloseableHttpClient getHttpclient()

#### setWxMpConfigStorage

    public void setWxMpConfigStorage(WxMpConfigStorage wxConfigProvider)

从接口复制的说明: `WxMpService`
注入 `WxMpConfigStorage` 的实现

指定者:
  `setWxMpConfigStorage` 在接口中 `WxMpService`

#### getWxMpConfigStorage

    public WxMpConfigStorage getWxMpConfigStorage()

从接口复制的说明: `WxMpService`
获取WxMpConfigStorage 对象

指定者:
  `getWxMpConfigStorage` 在接口中 `WxMpService`
返回:
  WxMpConfigStorage

#### setRetrySleepMillis

    public void setRetrySleepMillis(int retrySleepMillis)

从接口复制的说明: `WxMpService`

     设置当微信系统响应系统繁忙时，要等待多少 retrySleepMillis(ms) * 2^(重试次数 - 1) 再发起重试
     默认：1000ms

指定者:
  `setRetrySleepMillis` 在接口中 `WxMpService`

#### setMaxRetryTimes

    public void setMaxRetryTimes(int maxRetryTimes)

从接口复制的说明: `WxMpService`

     设置当微信系统响应系统繁忙时，最大重试次数
     默认：5次

指定者:
  `setMaxRetryTimes` 在接口中 `WxMpService`

#### getKefuService

    public WxMpKefuService getKefuService()

从接口复制的说明: `WxMpService`
返回客服接口方法实现类，以方便调用其各个接口

指定者:
  `getKefuService` 在接口中 `WxMpService`
返回:
  WxMpKefuService

#### getMaterialService

    public WxMpMaterialService getMaterialService()

从接口复制的说明: `WxMpService`
返回素材相关接口方法的实现类对象，以方便调用其各个接口

指定者:
  `getMaterialService` 在接口中 `WxMpService`
返回:
  WxMpMaterialService

#### getMenuService

    public WxMpMenuService getMenuService()

从接口复制的说明: `WxMpService`
返回菜单相关接口方法的实现类对象，以方便调用其各个接口

指定者:
  `getMenuService` 在接口中 `WxMpService`
返回:
  WxMpMenuService

#### getUserService

    public WxMpUserService getUserService()

从接口复制的说明: `WxMpService`
返回用户相关接口方法的实现类对象，以方便调用其各个接口

指定者:
  `getUserService` 在接口中 `WxMpService`
返回:
  WxMpUserService

#### getUserTagService

    public WxMpUserTagService getUserTagService()

从接口复制的说明: `WxMpService`
返回用户标签相关接口方法的实现类对象，以方便调用其各个接口

指定者:
  `getUserTagService` 在接口中 `WxMpService`
返回:
  WxMpUserTagService

#### getQrcodeService

    public WxMpQrcodeService getQrcodeService()

从接口复制的说明: `WxMpService`
返回二维码相关接口方法的实现类对象，以方便调用其各个接口

指定者:
  `getQrcodeService` 在接口中 `WxMpService`
返回:
  WxMpQrcodeService

#### getCardService

    public WxMpCardService getCardService()

从接口复制的说明: `WxMpService`
返回卡券相关接口方法的实现类对象，以方便调用其各个接口

指定者:
  `getCardService` 在接口中 `WxMpService`
返回:
  WxMpCardService

#### getPayService

    public WxMpPayService getPayService()

从接口复制的说明: `WxMpService`
返回微信支付相关接口方法的实现类对象，以方便调用其各个接口

指定者:
  `getPayService` 在接口中 `WxMpService`
返回:
  WxMpPayService

#### getDataCubeService

    public WxMpDataCubeService getDataCubeService()

从接口复制的说明: `WxMpService`
返回数据分析统计相关接口方法的实现类对象，以方便调用其各个接口

指定者:
  `getDataCubeService` 在接口中 `WxMpService`
返回:
  WxMpDataCubeService

#### getBlackListService

    public WxMpUserBlacklistService getBlackListService()

从接口复制的说明: `WxMpService`
返回用户黑名单管理相关接口方法的实现类对象，以方便调用其各个接口

指定者:
  `getBlackListService` 在接口中 `WxMpService`
返回:
  WxMpUserBlacklistService

#### getStoreService

    public WxMpStoreService getStoreService()

从接口复制的说明: `WxMpService`
返回门店管理相关接口方法的实现类对象，以方便调用其各个接口

指定者:
  `getStoreService` 在接口中 `WxMpService`
返回:
  WxMpStoreService

#### getTemplateMsgService

    public WxMpTemplateMsgService getTemplateMsgService()

从接口复制的说明: `WxMpService`
返回模板消息相关接口方法的实现类对象，以方便调用其各个接口

指定者:
  `getTemplateMsgService` 在接口中 `WxMpService`
返回:
  WxMpTemplateMsgService

#### getDeviceService

    public WxMpDeviceService getDeviceService()

从接口复制的说明: `WxMpService`
返回硬件平台相关接口方法的实现类对象，以方便调用其各个接口

指定者:
  `getDeviceService` 在接口中 `WxMpService`
返回:
  WxMpDeviceService