使用golang快速開發微信公眾平台(一):開啟伺服器配置

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

公眾平台的開發,說穿了一文不值,因為公眾平台存在的目的就是給人用的,不存在什麼技術門檻,但過程中坑實在太多,記錄下來,希望能幫到其他人吧。

找到入口


在基本配置菜單中,可以看到修改配置按鈕(群裡真有找不到的),點進去

填參數


如果伺服器已經通過nginx等方式將地址映射到了80連接埠,可以像這麼寫(Token和Key當然已經換掉了)

開始搓代碼


在文檔中,官方是這麼寫的:將這3個參數按照字典序排序,剛開始我是懵逼的,後來發現就是各語言版本的sort…接下來就好說了

我們加個路由,這個地址就是填入伺服器配置中的url
接著在controllers中添加WxConnect.go檔案

package controllersimport (    "github.com/astaxie/beego"    "strings"    "sort"    "crypto/sha1"    "io"    "fmt")type WxConnectController struct {    beego.Controller}const Token = "Dswq1322s1dfsf31s2af321231rew"func (c *WxConnectController) Get() {    //接入驗證 這是首次對接 填寫url後 伺服器會發一個請求過來    //c.Ctx.Request.URL-------------wx_connect?signature=038d75ed5485b9881a01b3b93e85f9fff28ea739&echostr=5756456183388806654&timestamp=1476173150&nonce=1093541731    //開發人員提交資訊(包括URL、Token)後,伺服器將發送Http Get請求到填寫的URL上,    //GET請求攜帶四個參數:signature、timestamp、nonce和echostr。公眾號服務程式應該按如下要求進行接入驗證    timestamp, nonce,signatureIn := c.GetString("timestamp"), c.GetString("nonce"),c.GetString("signature")    signatureGen := makeSignature(timestamp, nonce)    //將加密後獲得的字串與signature對比,如果一致,說明該請求來源於    if signatureGen != signatureIn {        fmt.Printf("signatureGen != signatureIn signatureGen=%s,signatureIn=%s\n", signatureGen, signatureIn)        c.Ctx.WriteString("")    } else {        //如果請求來自於,則原樣返回echostr參數內容 以上完成後,接入驗證就會生效,開發人員配置提交就會成功。        echostr := c.GetString("echostr")        c.Ctx.WriteString(echostr)    }}func makeSignature(timestamp, nonce string) string {    //1. 將 plat_token、timestamp、nonce三個參數進行字典序排序    sl := []string{Token, timestamp, nonce}    sort.Strings(sl)    //2. 將三個參數字串拼接成一個字串進行sha1加密    s := sha1.New()    io.WriteString(s, strings.Join(sl, ""))    return fmt.Sprintf("%x", s.Sum(nil))}

重新跑一下項目,點擊設定頁面上的提交按鈕,應該就能顯示通過,請仔細校對參數,複製粘貼猶佳。
至此,公眾平台已經向你敞開了大門(記得點啟用按鈕,否則光驗證通過沒什麼卵用)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.