微信公衆番号はテンプレートメッセージを送信する


私たちが商品を購入したり、他の操作をしたりするとき、微信の公衆番号は関連モデルのニュースをプッシュします.次に、開発プロセスについて簡単に説明します.(ここでは、受注プッシュを例に挙げます)

テスト番号新規テンプレートメッセージ


フォーマットは次のとおりです.
{{first.DATA}} 
 :{{keyword1.DATA}} 
 :{{keyword2.DATA}} 
 :{{keyword3.DATA}} 
 :{{keyword4.DATA}} 
{{remark.DATA}

注:ここではテンプレートIDが生成され、後で使用されます.

オーダー完了テンプレートメッセージデータ

@Data
public class OrderData {
    private DataInfo first;
    private DataInfo keyword1;
    private DataInfo keyword2;
    private DataInfo keyword3;
    private DataInfo keyword4;
    private DataInfo remark;

    public OrderData(DataInfo first, DataInfo keyword1, DataInfo keyword2, DataInfo keyword3, 
DataInfo keyword4, DataInfo remark) {
        this.first = first;
        this.keyword1 = keyword1;
        this.keyword2 = keyword2;
        this.keyword3 = keyword3;
        this.keyword4 = keyword4;
        this.remark = remark;
    }

    public OrderData(DataInfo first, DataInfo keyword1, DataInfo keyword2, DataInfo remark) {
        this.first = first;
        this.keyword1 = keyword1;
        this.keyword2 = keyword2;
        this.remark = remark;
    }
}

テンプレートメッセージ

@Data
public class TemplateMessage {
    private String touser;
    private String template_id;
    private String url;
    private Miniprogram miniprogram;
}

オーダーテンプレートメッセージ

@Data
public class OrderTemplateMessage extends TemplateMessage {
    private OrderData data;

}
@Data
public class DataInfo {
    private String value;
    private String color;
}

オーダー完了テンプレートメッセージ

public void sendOrderTemplateMessage(Order order) {
    AugeWechatUser wechatUser = augeWechatUserMapper.selectByPhone(order.getPhone());
    String goodsInfo = "";
    for (AugeSaleItem augeSaleItem : order.getData()) {
        goodsInfo += augeSaleItem.getItemName() + "×" + augeSaleItem.getItemNum() + "
\t\t\t
"; } DataInfo first = new DataInfo("", "#ff0000"); DataInfo keyword1 = new DataInfo(wechatUser.getNickName(), "#ff0000"); DataInfo keyword2 = new DataInfo(order.getOrderNumber(), "#ff0000"); DataInfo keyword3 = new DataInfo("" + order.getSumPrice() + " ", "#ff0000"); DataInfo keyword4 = new DataInfo(goodsInfo, "#ff0000"); DataInfo remark = new DataInfo("", "#000000"); OrderData orderData = new OrderData(first, keyword1, keyword2, keyword3, keyword4, remark); OrderTemplateMessage templateMessage = new OrderTemplateMessage(); templateMessage.setTouser(wechatUser.getId()); templateMessage.setTemplate_id(orderTemplateId);// ID templateMessage.setData(orderData); OkHttpUtil.getInstance().doPost(WechatConstant.getTemplateUrl(wechatAccessTokenService.takeAccessToken()), JSON.toJSONString(templateMessage)); }

OkHttpUtil


OkHttpは、Androidでネットワークを要求するサードパーティクラスライブラリです.
public String doPost(String url, String param) {
        MediaType JSON = MediaType.parse("application/json; charset=utf-8");
        RequestBody body = RequestBody.create(JSON, param);
        Request request = new Request.Builder()
                .url(url)
                .post(body)
                .build();
        Call call = okHttpClient.newCall(request);
        try {
            Response response = call.execute();
            return response.body().string();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

注意オーダーテンプレートIDの設定

@Value("#{setting.ordertemplateid}")
private String orderTemplateId;