生活随笔
收集整理的這篇文章主要介紹了
微信公众号订阅通知(go+vue)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
微信公眾號訂閱通知
- 準(zhǔn)備工作:
- 用戶訂閱:
- 下發(fā)訂閱:
-
最近剛好需要做一個訂閱通知的方案,簡單的整理下做的步驟。
準(zhǔn)備工作:
公眾號 功能-添加功能插件 找到并添加 訂閱通知在 訂閱通知 中設(shè)置相應(yīng) 類別(需管理員權(quán)限)、添加 模板
用戶訂閱:
官網(wǎng):https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html#23
綁定域名,登錄微信公眾平臺進(jìn)入 公眾號設(shè)置 的 功能設(shè)置 里填寫 JS接口安全域名安裝微信官方 js-sdk:npm install weixin-js-sdk (官方使用說明 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html)
或者引入JS文件:http://res.wx.qq.com/open/js/jweixin-1.6.0.js通過config接口注入權(quán)限驗證配置并申請所需開放標(biāo)簽
import wx
from 'weixin-js-sdk'
function wxconfig (){let url
= "/getJsSignature"; let param
= {url
: location
.href
};$post(url
, param
, (res
)=> { let data
= res
.valwx
.config({debug
: true, appId
: data
.appid
, timestamp
: data
.timestamp
, nonceStr
: data
.noncestr
, signature
: data
.signature
,jsApiList
: [], openTagList
: [ 'wx-open-subscribe'] });});
}
PS:關(guān)于JS-SDK使用權(quán)限簽名算法
官網(wǎng):https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#62
簽名算法校驗:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign
func GetAccessToken() (string) {appId
:= "xxxxxxxxxxxxxxx" appSecret
:= "xxxxxxxxxxxxxxx" url
:=utils
.S_SFT(`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}`,appId
,appSecret
)result
,err
:=utils
.HttpGet(url
) utils
.ThrowError(err
)tmp
:=utils
.JsonForceMashMap(result
) return fmt
.Sprint(tmp
["access_token"])
}
func GetJsApiTicket() string {access_token
:= GetAccessToken()url
:=utils
.S_SFT(`https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=jsapi`,access_token
)result
,err
:=utils
.HttpGet(url
)utils
.ThrowError(err
)tmp
:=utils
.JsonForceMashMap(result
)return fmt
.Sprint(tmp
["ticket"])
}
func getJsSignature(param
map[string]interface{}) (interface{}, int32){jsapi_ticket
:= GetJsApiTicket() noncestr
:= string(utils
.Krand(16,utils
.KC_RAND_KIND_ALL
)) timestamp
:= utils
.Timestamp() url
:= fmt
.Sprint(param
["url"]) string1
:= utils
.S_SFT(`jsapi_ticket={0}&noncestr={1}×tamp={2}&url={3}`,jsapi_ticket
,noncestr
,timestamp
,url
) t
:= sha1
.New()io
.WriteString(t
, data
)signature
:= fmt
.Sprintf("%x", t
.Sum(nil))res
:= make(map[string]interface{})res
["appid"] = _default
.GetWeixinmp().AccessToken
.AppIdres
["signature"] = signatureres
["noncestr"] = noncestrres
["timestamp"] = timestamp
return res
,0
}
也可以直接使用 github.com/sidbusy/weixinmp (go接口封裝包)
頁面中添加開放標(biāo)簽wx-open-subscribe
<wx-open-subscribe :template="template" id="'subscribe-btn" @success="successSubscribe" @error="subErrorSubscribe"><script type="text/wxtag-template"><style><!--按鈕樣式-->.subscribe-btn{}</style><button class="subscribe-btn">訂閱+1</button></script>
</wx-open-subscribe>
<!--成功事件
:包括確定、取消
-->
successSubscribe(e
){let subscribeDetails
= JSON.parse(e
.detail
.subscribeDetails
)let status
= JSON.parse(subscribeDetails
[模板id
]).status
if (status
=='accept'){ }else if (status
=='reject'){ }
},
<!--錯誤事件
-->
subErrorSubscribe(e
){let errMsg
= e
.detail
.errMsg
let errCode
= e
.detail
.errCode console
.log(errMsg
,errCode
)
},
下發(fā)訂閱:
官網(wǎng):https://developers.weixin.qq.com/doc/offiaccount/Subscription_Messages/api.html#send%E5%8F%91%E9%80%81%E8%AE%A2%E9%98%85%E9%80%9A%E7%9F%A5
屬性類型必填說明
| access_token | string | 是 | 接口調(diào)用憑證 |
| touser | string | 是 | 接收者(用戶)的 openid |
| template_id | string | 是 | 所需下發(fā)的訂閱模板id |
| page | string | 否 | 跳轉(zhuǎn)網(wǎng)頁時填寫 |
| miniprogram | Array.< Object > | 否 | 跳轉(zhuǎn)小程序時填寫,格式如{ “appid”: “pagepath”: { “value”: any } } |
| data | Object | 否 | 跳轉(zhuǎn)網(wǎng)頁時填寫 |
使用官網(wǎng)的請求參數(shù)請求地址即可
POST https://api.weixin.qq.com/cgi-bin/message/subscribe/bizsend?access_token=ACCESS_TOKEN
注:
一次性訂閱消息目前訂閱一次即可不限時長發(fā)送一次,可積累訂閱公眾號H5中,一個開放標(biāo)簽中至多可同時訂閱 5 條模板點擊“記住選擇”后,怎么重新調(diào)起彈框是個問題?知道的小伙伴可以回復(fù)下謝謝
總結(jié)
以上是生活随笔為你收集整理的微信公众号订阅通知(go+vue)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。