1. 程式人生 > >微信公眾號傳送模板訊息

微信公眾號傳送模板訊息

//4. 傳送微信客服訊息,一般滿足特定條件

        if(result >0 ) {

            logger.info("提交加油訂單成功=="+result);

            String accessToken = wechatService.getToken();

            String remark = "恭喜你,訂單已提交請在2小時之內支付。";

            String openid = record.getOpenId();

            //4.1 建立模板訊息物件封裝資料

            TemplateMessage tplMsg = new TemplateMessage();

            tplMsg.setOpenid(openid);

            tplMsg.setTemplateId("bt7ArrMK_VZc8nU2FTXpR6OkhfFEDQamuSDJUkWA2Vg");

            tplMsg.setUrl("http://www.hnjindouyun.com/views/payment/pay.html?order="+orderNo);

            Map<String, String> dataMap = new HashMap<String, String>();

            dataMap.put("first", "訂單提交成功");

            dataMap.put("keyword1", "油品" + record.getOilName());

            dataMap.put("keyword2", orderNo);

            dataMap.put("keyword3",DateUtil.timeToString(new Date()));

            try {

                dataMap.put("keyword4", BigDecimalUtil.fen2YuanAnother(record.getRealAmount().toString())+"元");

            } catch (Exception e) {

                e.printStackTrace();

                logger.info(String.format("分轉換成元異常: %s",e.getMessage()));

            }

            dataMap.put("remark", remark);

            tplMsg.setDataMap(dataMap);

            logger.info(String.format("提交加油訂單成功引數資訊: token=%s, tplMsg=%s==",accessToken,tplMsg));

          //4.1 傳送客服模板訊息

            JSONObject json = WeixinUtil.sendTemplateMessage(tplMsg, accessToken);

            logger.info("提交加油訂單成功,傳送客服訊息執行結果==="+json);

            return SkynetResult.success(orderNo);

        }else {

            logger.info("提交加油訂單失敗=="+result);

            return SkynetResult.fail();

        }

    /**

     * 傳送模板訊息 WeixinUtil

     * @param tplMsg 訊息內容

     * @param accessToken

     * @return

     */

    public static JSONObject sendTemplateMessage(TemplateMessage tplMsg, String accessToken)

        throws WxErrorException {

        if (tplMsg != null) {

            JSONObject jsonObject = HttpClientUtils. httpPost(SEND_TEMPLATE_MESSAGE.replace("ACCESS_TOKEN", accessToken), tplMsg.toString());

            if (isWxError(jsonObject)) {

                throw new WxErrorException(WxError.fromJson(jsonObject));

            }

            return jsonObject;

        }

        return null;

    }