微信模板消息推送遇到的坑


        這兩天做微信公眾號消息推送的時候,遇到了幾個問題,在此記錄下原因和解決辦法,希望能幫助大家。

        1、{"errcode":40037,"errmsg":"invalid template_id hint: [2ZVwjA0418ge29]"}

            這個錯誤碼微信API文檔里沒有提到,但是看錯誤消息,知道是template_id設置不正確,以為是拷貝錯了,於是又跑到模板消息里去核對,發現沒問題,后面到網上搜,才發現template_id是正式環境的模板消息id,如果要測試,必須要測試公眾號添加模板消息,再  用對應的template_id才可以。可是我們的測試公眾號還在審核中,還不能添加模板消息,只能用正式環境公眾號測,所以把運行環境改成由測試環境改成線上環境來測。本以為這樣就行了,結果改了以后發現還不行,一步步debug,發現微信加載的配置信息讀取的是測試環境的配置信息,這也會報這個錯,真是一波3折。改了后,又報了第2個錯。

       2、{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [5bi46a00433401!]"}

            這個原因是access_token錯誤,於是又debug,發現這個token是從redis里取的,而我們的redis是測試環境,所以這個token自然也取不到,於是從線上redis中把值copy過來。一測又不行,還是報這個錯。見鬼了!轉念一想,好像線上環境的redis是有有效期的,會不會是這個原因?跑到線上重新看了下,果然不一樣!還有這么巧的事!只能再copy最新的值了。

      3、{"errcode":40003,"errmsg":"invalid openid hint: [FqjboA0554ge29]"}

            真的是一步一個坑,上面2個問題解決了,這個問題又冒出來了,我用的open_id是客戶端同事給的open_id,在我們測試庫里也有這個賬號,想着應該沒問題啊,怎么會報這個錯呢,又到網上搜答案,發現原來是這個open_id沒綁定我們的公眾號,所以接收不到發送的消息,於是煥然大悟,找客戶端同事確認后發現確實如此,於是又找客戶端要了個綁定了的open_id,再運行測試demo,終於發現返回成功了,欣喜!

            今天測試的時候,發現還有個原因也會報這個錯:就是token錯誤的時候,測試用的是正式的微信公眾號,但是還是在測試環境,所以測試環境的token需要隨時與線上的token同步,同步后就能收到推送消息了,只不過這錯誤提示就有點牛頭不對馬嘴了。

      感想:由於以前沒做過微信公眾號開發,對模板消息的開發流程也不了解,這也是這次踩了這么多坑的原因,好在還比較順利的解決了,下午可以提測了!另外吐槽下騰訊模板消息開發的幾個小問題:

          1、官方文檔居然errorCode都不完整,這讓大家怎么取找問題?熟悉的人可能還好,不熟悉的的都不知道從何下手

          2、模板消息庫,每個月只能添加3個自定義模板,數量太少,還要審核,騰訊給的理由是防止營銷和亂添加導致模板庫混亂,但問題是,很多的新產品業務線,需要發送的模板消息模板庫里根本就沒有!就算有相近的,也不能自己靈活修改和擴展,只能按照指定的模板傳參,這樣靈活性太差!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM