イルカエルフ:https : //mgo.whhtjl.com
これを見たら、インターネットであらゆる種類の情報を読んだと思います。馬鹿げた話をせず、要点だけに集中してください。次のリンクをクリックすると、公式のクエリ情報に移動できます。
https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html
使用規則については、次の点に注意してください。
1.すべてのサービスアカウントは、[機能]-> [機能プラグインの追加]でアプリケーションテンプレートメッセージ機能のエントリを表示できますが、認証後のサービスアカウントのみが、テンプレートメッセージを適用し、その許可を取得できます。
2.公式アカウントサービスがある2つの業種を選択する必要があります。選択した業種は月に1回変更できます。
3.選択した業界のテンプレートライブラリで呼び出す既存のテンプレートを選択します。
4.各アカウントは同時に25のテンプレートを使用できます。
5.各アカウントのテンプレートメッセージの現在の1日あたりの呼び出し制限は100,000回です。1つのテンプレートに特別な制限はなく、公式アカウントMPバックグラウンドデベロッパーセンターページに示されている数が優先されます。
インターフェースのドキュメントについては、次の点に注意してください。
1.テンプレートメッセージが呼び出されるときに、テンプレートIDとテンプレート内の各パラメーターの割り当て内容が主に必要です。
2.テンプレートのパラメーターの内容は「.DATA」で終わる必要があります。そうでない場合、予約語と見なされます。
3.テンプレート予約記号「{ {}}」
以下のように、コードに焦点を当てて、ここでは例のみを示します。
ここで使用したweixin-java-mp、pom.xmlファイルは次のとおりです。
<!--公众号(包括订阅号和服务号) -->
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>2.7.0</version>
</dependency>
構成ファイルのコードは次のとおりです。
#微信公众号
wx.mp.appId=XXXXXXXXXXXXXXXXX
wx.mp.appSecret=XXXXXXXXXXXXXXXXXXX
WeChatMpPropertiesエンティティークラスを作成する
package com.ltf.config;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* 微信公众号商户基本信息
* @author xhz
*
*/
@Data
@Component
@ConfigurationProperties(prefix = "wx.mp")
public class WeChatMpProperties {
/**
* appId
*/
private String appId;
/**
* 公众平台密钥
*/
private String appSecret;
}
WxJsMpConfigを作成する
package com.ltf.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
/**
* 微信公众号信息注入bean中
* @author xhz
*
*/
@Component
public class WxJsMpConfig {
@Autowired
private WeChatMpProperties wxJsMpProperties;
@Bean
public WxMpService wxJsMpService( ){
WxMpService wxJsMpService = new WxMpServiceImpl();
wxJsMpService.setWxMpConfigStorage(wxMpConfigStorage());
return wxJsMpService;
}
private WxMpConfigStorage wxMpConfigStorage(){
WxMpInMemoryConfigStorage wxJsMpConfigStorage = new WxMpInMemoryConfigStorage();
// 公众号appId
wxJsMpConfigStorage.setAppId(this.wxJsMpProperties.getAppId());
// 公众号appSecret
wxJsMpConfigStorage.setSecret(this.wxJsMpProperties.getAppSecret());
return wxJsMpConfigStorage;
}
}
テンプレートメッセージエンティティクラスを作成する
package com.ltf.entity;
import java.io.Serializable;
import lombok.Data;
/**
* 微信消息模板实体类
* @author xhz
*
*/
@Data
public class WxMsgTemplate implements Serializable {
private static final long serialVersionUID = 1L;
private String openId;
private String templateId;
private String url;
private String color;
private String first;
private String keyWord1;
private String keyWord2;
private String keyWord3;
private String keyWord4;
private String keyWord5;
private String keyWord6;
private String remark;
}
WeChatメッセージプッシュサービスレイヤーの作成
package com.ltf.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ltf.entity.WxMsgTemplate;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
/**
* 微信消息推送
* @author xhz
*
*/
@Service
public class WxMsgPushService {
private static final Logger logger = LoggerFactory
.getLogger(WxMsgPushService.class);
/**
* 微信公众号API的Service
*/
@Autowired
private WxMpService wxJsMpService;
/**
* 注册成功后发送微信模板消息
* @param wxMsgTemplate
* @return
*/
public Boolean sendWxMsgAfterSuccessRegister(WxMsgTemplate wxMsgTemplate) {
String result=null;
try {
WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
.toUser(wxMsgTemplate.getOpenId())//要推送的用户openId
.templateId(wxMsgTemplate.getTemplateId())//模版id
.url(wxMsgTemplate.getUrl())//点击模版消息要访问的网址
.build();
templateMessage.addWxMpTemplateData(new WxMpTemplateData("first", wxMsgTemplate.getFirst(), wxMsgTemplate.getColor()));
templateMessage.addWxMpTemplateData(new WxMpTemplateData("keyword1", wxMsgTemplate.getKeyWord1(), wxMsgTemplate.getColor()));
templateMessage.addWxMpTemplateData(new WxMpTemplateData("keyword2", wxMsgTemplate.getKeyWord2(), wxMsgTemplate.getColor()));
templateMessage.addWxMpTemplateData(new WxMpTemplateData("remark", wxMsgTemplate.getRemark(), wxMsgTemplate.getColor()));
result=wxJsMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
} catch (Exception e) {
logger.error("WxMsgPushService.sendWxMsgAfterSuccessRegister()----error", e);
}
return result!=null;
}
}
テストクラスを作成する
public static void main(String[] args) {
WxMsgTemplate wxMsgTemplate=new WxMsgTemplate();
wxMsgTemplate.setOpenId("xxxxxxxxxxxxxxxxxxx");
wxMsgTemplate.setTemplateId(CacheConstans.TEMPLATEID_REGISTER);
wxMsgTemplate.setUrl(CacheConstans.URL);
wxMsgTemplate.setColor(CacheConstans.COLOR);
wxMsgTemplate.setFirst("XXXXXX注册通知");//详细内容
wxMsgTemplate.setKeyWord1("小盒子");//用户名
wxMsgTemplate.setKeyWord2(DateUtils.toString(new Date(), "yyyy-MM-dd HH:mm:ss"));//注册时间
wxMsgTemplate.setRemark("欢迎来到XXXXXX");
//给新用户推送消息
wxMsgPushService.sendWxMsgAfterSuccessRegister(wxMsgTemplate);
}
実行中のコードは次のとおりです。
はい、職場から帰宅します。!!