国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序消息通知開發(fā)

這篇具有很好參考價(jià)值的文章主要介紹了微信小程序消息通知開發(fā)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

微信小程序消息通知開發(fā)及注意點(diǎn)

大致流程圖:

1. 登錄小程序平臺選擇合適的模板
微信小程序通知,微信小程序,前端,java

Q:長期訂閱與普通訂閱有何區(qū)別?
A:1、一次性訂閱消息:用戶訂閱一次后,開發(fā)者可下發(fā)一條消息,不限時(shí)間。若用戶勾選了“總是保持以上選擇,不再詢問”且點(diǎn)擊了允許,那么以后都默認(rèn)同意訂閱這條消息。用戶不再做多次選擇,開發(fā)者也避免了更繁瑣的提醒。
2、長期性訂閱消息:用戶訂閱一次后,可長期下發(fā)多條消息。目前長期性訂閱消息向 政務(wù)、醫(yī)療、交通、金融、教育 等線下公共服務(wù)開放,后續(xù)將綜合評估行業(yè)需求和用戶體驗(yàn)持續(xù)完善。(長期訂閱消息只針對特定行業(yè)開放,所以普通開發(fā)者并無法使用)
*注意:目前微信那邊長期訂閱的消息模板因?yàn)楸粸E用,幾乎都用不了

2. 推送之前獲取小程序的token

接口文檔:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getAccessToken.html

  • 自己封裝的一個(gè)獲取token方法
public String getAppletToken(Long hospitalId, BusHospitalMiniprogramConfig wechatConfig) {
        String token = redisService.getCacheObject(WechatCache.APPLET_ACCESS_TOKEN + hospitalId);
        // token失效或者為空
        if (StringUtils.isEmpty(token) || checkToken(token)) {
            String url = WechatInterface.getTokenUrl(wechatConfig.getAppid(), wechatConfig.getAppSecret());
            String resp= weChatUtil.postRequestForWeiXinService(url);
            log.info(hospitalId + "獲取小程序token返回:" + resp);
            if (StringUtils.isEmpty(resp)) {
                throw new ServiceException("獲取小程序token失敗");
            }
            token = JSONObject.parseObject(resp).getString("access_token");
            // 設(shè)置為1.9h(有效期2h)
            redisService.setCacheObject(WechatCache.APPLET_ACCESS_TOKEN + hospitalId, token,
                    7100L, TimeUnit.SECONDS);
        }
        return token;
    }

3. 消息推送

接口文檔:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-message-management/subscribe-message/sendMessage.html#%E8%AF%B7%E6%B1%82%E5%8F%82%E6%95%B0-2

/**
 * 推送小程序消息通知
 * @param pushDTO 推送接口的入?yún)ⅲ煽唇涌谖臋n
 * @return 推送結(jié)果
 */
public Boolean sendAppletMsg(AppletMsgPushDTO pushDTO) {
		// 查詢數(shù)據(jù)庫小程序配置信息
	   BusHospitalMiniprogramConfig wechatConfig = miniprogramConfigMapper.selectOne(
	           new LambdaQueryWrapper<BusHospitalMiniprogramConfig>()
	                   .eq(BusHospitalMiniprogramConfig::getHospitalId, pushDTO.getHospitalId())
	                   .eq(BusHospitalMiniprogramConfig::getIdentifying,pushDTO.getAppletKey()));
	   StringUtils.isNullThrowExp(wechatConfig, "小程序配置未設(shè)置");
	   if (StringUtils.isEmpty(wechatConfig.getTemplate())) {
	       throw new ServiceException("小程序消息通知模板為空");
	   }
	   // 查詢消息模板id (我將消息模板id存在數(shù)據(jù)庫了,所以這里通過key去獲取要推送的消息模板)
	   JSONObject template = JSON.parseObject(wechatConfig.getTemplate(), JSONObject.class);
	   String templateId = template.getString(pushDTO.getTemplate_id());
	   if (StringUtils.isEmpty(templateId)) {
	       throw new ServiceException(pushDTO.getTemplate_id() + "消息通知模板不存在");
	   }
	   // 獲取token
	   String token = getAppletToken(pushDTO.getHospitalId(), wechatConfig);
	   // 獲取步驟1存儲的openid
	   BusPatientApplet pa = patientAppletService.getOne(new LambdaQueryWrapper<BusPatientApplet>()
	           .eq(BusPatientApplet::getHospitalId, pushDTO.getHospitalId())
	           .eq(BusPatientApplet::getPatientId, pushDTO.getTouser())
	           .eq(BusPatientApplet::getAppletId, wechatConfig.getId()));
	   StringUtils.isNullThrowExp(pa,"獲取用戶小程序賬號openid為空");
	   pushDTO.setTemplate_id(templateId);
	   pushDTO.setAccess_token(token);
	   pushDTO.setTouser(pa.getOpenid());
	   // Http請求調(diào)用下微信推送接口
	   log.info("小程序消息通知入?yún)ⅲ? + JSON.toJSONString(pushDTO));
	   String resp = HttpUtils.sendPostJson(WechatInterface.getSubscribeUrl(pushDTO.getAccess_token()), JSON.toJSONString(pushDTO), null);
	   log.info("微信小程序消息通知結(jié)果:" + resp);
	   if (StringUtils.isNotEmpty(resp)) {
	       JSONObject object = JSONObject.parseObject(resp);
	       if (YesNoEnum.NO.getCode().equals(object.getInteger("errcode"))) {
	           return true;
	       }
	       return false;
	   }
	   return false;
}

實(shí)現(xiàn)效果

微信小程序通知,微信小程序,前端,java

踩坑注意點(diǎn)

  • Q:推送接口返回:{ “errcode”: 47003,“errmsg”: “argument invalid! data.thing1.value is empty rid: 6486d741-7e95ec5f-39d18f1f”}
    A:其實(shí)這個(gè)錯(cuò)誤有很多種原因引起,注意看msg提示的字段就可以了,檢查下文檔的參數(shù)值內(nèi)容限制。其次還可以調(diào)用官方提供的文檔,查詢下rid,可以看到具體的入?yún)?,我這里檢查過沒發(fā)現(xiàn)有傳入內(nèi)容限制的東西,最終調(diào)用rid接口發(fā)現(xiàn)中文亂碼了, 只需要在請求頭的Content-Type設(shè)置為application/json; encoding=utf-8就可以了

rid接口地址:https://developers.weixin.qq.com/doc/offiaccount/openApi/get_rid_info.html
微信小程序通知,微信小程序,前端,java
微信小程序通知,微信小程序,前端,java

  • Q:用戶沒有勾選授權(quán)消息通知,小程序消息還是推送了
    A:一次性訂閱的話,如果用戶之前授權(quán)過但是沒有進(jìn)行消息推送,此時(shí)騰訊那邊是將授權(quán)累計(jì)起來的,所以消息就會進(jìn)行推送了,建議還是一對一授權(quán)以后就進(jìn)行消息推送。

  • Q:長期訂閱的消息有的可以推送有的推送提示用戶拒絕該消息的推送
    A:檢查使用的消息模板是不是出現(xiàn)了重復(fù)使用,官方不建議這樣操作,我刪除后換了個(gè)模板就可以推送了;還有目前一次性訂閱與長期訂閱不支持混用
    *文章來源地址http://www.zghlxwxcb.cn/news/detail-601803.html

到了這里,關(guān)于微信小程序消息通知開發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序添加全局 socket 并接收消息通知

    最近小程序中有使用到socket,來建立長連接,實(shí)現(xiàn)消息通知。總結(jié)一下實(shí)現(xiàn)思路。 首先,在app.js中初始化socket,并處理消息,添加心跳檢測。 然后再接收到消息時(shí)添加回調(diào)方法: 然后再需要進(jìn)行通知處理的頁面添加如下代碼: 最后,小程序的socket通知處理就完成了,歡迎各

    2024年02月16日
    瀏覽(22)
  • 【小程序】微信小程序關(guān)聯(lián)公眾號(服務(wù)號)推送通知消息

    最近開發(fā)的一個(gè)小程序項(xiàng)目需要通過服務(wù)號來推送通知。但是在最開始開發(fā)小程序的時(shí)候并沒有考慮到這個(gè)功能。 預(yù)備知識 : 小程序openid:小程序用戶的唯一id 公眾號openid:公眾號用戶的唯一id unionid:同一用戶,對同一個(gè)微信開放平臺下的不同應(yīng)用,unionid是相同的 準(zhǔn)備

    2024年01月18日
    瀏覽(32)
  • uniapp微信小程序訂閱消息發(fā)送服務(wù)通知--超詳細(xì)

    uniapp微信小程序訂閱消息發(fā)送服務(wù)通知--超詳細(xì)

    由于公司需求,剛學(xué)完的小程序的我,要求開發(fā)一個(gè)直播通知的微信小程序,學(xué)了vue的我,選擇還是使用uniapp開發(fā),wx原生語法學(xué)完已經(jīng)快忘了。在利用uniapp寫代碼的過程中,遇到很多問題,通過這篇博客分享一下總體實(shí)現(xiàn)思路以及一些小坑。整篇博客以逐步的思路讓你完整

    2024年02月06日
    瀏覽(83)
  • 微信小程序通知,微信小程序長期訂閱消息添加硬件設(shè)備能力的設(shè)備訂閱消息step-by-step

    微信小程序通知,微信小程序長期訂閱消息添加硬件設(shè)備能力的設(shè)備訂閱消息step-by-step

    本文目的,分享一個(gè)實(shí)際案例: 開發(fā)微信小程序的報(bào)警器的微信訂閱消息, 設(shè)備報(bào)警后觸發(fā)微信報(bào)警 前提: 有一個(gè)微信小程序并且微信認(rèn)證過。 1: 添加設(shè)備申請權(quán)限 2:按照實(shí)際情況填寫設(shè)備信息, 一般等兩天到三天能審核過 ?3: 申請?jiān)O(shè)備消息能力 , 這個(gè)一部不做的

    2024年04月16日
    瀏覽(28)
  • 如何為微信小程序添加訂閱消息和推送通知功能

    為微信小程序添加訂閱消息和推送通知功能是非常有用的,它可以讓用戶在重要的事件發(fā)生時(shí)及時(shí)地收到通知。在本文中,我們將詳細(xì)介紹如何為微信小程序添加這兩種功能。 一、訂閱消息 訂閱消息是一種新的消息類型,用戶可以選擇是否訂閱它們。訂閱消息一般用于向用

    2024年02月04日
    瀏覽(36)
  • 前端Uni-app開發(fā)微信小程序|微信小程序手機(jī)商城

    前端Uni-app開發(fā)微信小程序|微信小程序手機(jī)商城

    作者主頁:編程指南針 作者簡介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者、CSDN博客專家 、CSDN內(nèi)容合伙人、掘金特邀作者、阿里云博客專家、51CTO特邀作者、多年架構(gòu)師設(shè)計(jì)經(jīng)驗(yàn)、騰訊課堂常駐講師 主要內(nèi)容:Java項(xiàng)目、Python項(xiàng)目、前端項(xiàng)目、人工智能與大數(shù)據(jù)、簡歷模板、學(xué)習(xí)資料、面試題庫

    2024年02月12日
    瀏覽(32)
  • uniapp全局掛載uViewUI的u-toast消息通知組件(微信小程序)

    uniapp全局掛載uViewUI的u-toast消息通知組件(微信小程序)

    在使用uView消息通知組件的時(shí)候,必須在每個(gè)頁面中手動(dòng)添加一個(gè)標(biāo)簽,打上ref然后才能調(diào)用,非常的麻煩,能不能像ElementUI那樣把組件掛載到Vue原型上從而能全局調(diào)用呢,個(gè)人也是嘗試了很多方法,但是由于小程序的app.vue不能寫頁面,所以無法達(dá)到ElementUI那種方便的效果,

    2024年02月15日
    瀏覽(116)
  • 微信公眾號 - Java推送小程序訂閱消息給用戶_java 通過微信公眾號發(fā)送訂閱通知

    微信公眾號 - Java推送小程序訂閱消息給用戶_java 通過微信公眾號發(fā)送訂閱通知

    不啰嗦,我們直接開始! 本文使用體驗(yàn)版小程序進(jìn)行調(diào)試。 1、登錄微信公眾平臺 點(diǎn)開下面鏈接,使用微信掃碼 微信公眾平臺 然后選擇一個(gè)小程序并登錄 2、在小程序后臺找到Appid、AppSecret、Token、EncodingAESKey等參數(shù) AppSecret忘記了可以自行重置 往下翻,在消息推送這兒能看到

    2024年04月26日
    瀏覽(29)
  • 微信小程序的訂閱消息是一個(gè)允許開發(fā)者向用戶發(fā)送重要通知的功能。這里為您展示如何實(shí)現(xiàn)小程序訂閱消息的基本步驟和代碼示例

    步驟 1: 獲取模板 ID 首先,您需要登錄微信公眾平臺,進(jìn)入「小程序管理」后臺,找到“設(shè)置” “開發(fā)設(shè)置” “訂閱消息”,然后選擇并配置所需的模板,記錄模板 ID。 步驟 2: 小程序前端請求訂閱 在小程序的某個(gè)頁面或組件中,當(dāng)用戶執(zhí)行某個(gè)操作(例如點(diǎn)擊按鈕)時(shí),可

    2024年02月04日
    瀏覽(101)
  • uniapp開發(fā)微信小程序訂閱消息

    uniapp開發(fā)微信小程序訂閱消息

    微信發(fā)送訂閱消息接口文檔 1.1、獲取模板id及模板字段名稱 注意點(diǎn): 消息字段的類型是有校驗(yàn)的,充電度數(shù)是number類型,則傳入的string中不能使用0.00度。則會報(bào)錯(cuò)。 2.1、編寫消息模板配置文件 2.2、編寫訂閱消息請求對象 2.3、編寫充電開始訂閱消息模板對象 2.2.1、DataEntry

    2024年02月16日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包