首頁  >  文章  >  微信小程式  >  Force.com微信開發系列後台配置

Force.com微信開發系列後台配置

高洛峰
高洛峰原創
2017-02-25 17:05:141582瀏覽

為尋找國內免費雲端資源作為微信後台,花了一天時間試用SinaAppEngine(SAE),調試太不方便用戶體驗差。新浪作為媒體公司技術功底經不起考驗,亞馬遜能推出AWS,新浪還不行!更好選項是百度BaiduAppEngine(BAE),但最近盡然開始收費,還是安心回到force.com,至少老外承諾免費的東西一直免費且可靠。


第一步,申請force.com帳號,請至developer.force.com申請,如是www.salesforce.com申請下來的是作為客戶的帳號,不適合開發人員;第二步,創建一個Apex Rest Class,來作為微信服務接口,這裡創建的類別是WeChatRestController,Rest接口名稱是WeChatRest:

@RestResource(urlMapping='/WeChatRest/*')
global with sharing class WeChatRestController{
@HttpGet
    global static void doGet(){
        String signature = RestContext.request.params.get('signature');
        String timestamp = RestContext.request.params.get('timestamp');
        String nonce = RestContext.request.params.get('nonce');
        String echostr = RestContext.request.params.get('echostr');
        System.debug(echostr + ' - ' + timestamp);
        RestContext.response.addHeader('Content-Type', 'text/plain');
         
        RestContext.response.responseBody = Blob.valueOf(echostr);
         
        //return echostr;
    }
}

在微信中我們將使用這個接口來配置URL,設定時騰訊要求提供此URL,設定視窗如下:

補充說明,本文發表後騰訊又推出了“訊息加解密金鑰”,其支援明文模式、相容模式和安全模式三種,主要差異在於明文模式下騰訊推送給介面的是明文的XML訊息,相容模式下是既有明文XML訊息也有加密後的XML訊息,安全模式則只有加密後的XML訊息,以為使用者提供更進階的安全支持,簡化大家的學習曲線,本文及以後的所有相關文章均採用明文模式。

Force.com微信開發系列後台配置

騰訊將以Get方式傳送四個參數至此URL,URL格式如下(僅為範例):https://msd-developer-edition.ap1.force. com/services/apexrest/WeChatRest?signature=GenePoint&echostr=test×tamp=111&nonce=222如果URL回傳的值和四個參數中的echostr值一致則騰訊認為驗證成功,如果不一致則認為驗證失敗,配置無法繼續,偷懶的方法是直接回傳該值即可,風險是你的URL也可以被其他人亂用。這裡的echostr的值其實是根據用戶在騰訊後台配置的Token加上時間戳,再加上nonce參數的值按照一定的演算法計算出來的,具體演算法參照附註,這裡不贅述。程式碼需要說明的地方是如果直接回傳echostr,force.com預設會是一個xml結構的內容,騰訊會認為和echostr值不等,判斷為配置失敗。為此,需要透過Blog.valueOf方法來將其直接轉換為文字訊息。第三步,設定Site.com以啟用公網訪問此URLforce.com類別以及網頁等預設是需要使用者驗證後才能透過訪問,但我們可以透過site.com啟用公網訪問此URL,為此首先需要建立域名,進入Develop->Sites,輸入想創建的域名,例如筆者的域名為johnson0001:

#http://johnson0001-developer-edition.ap1.force.com

建立成功後下一步建立站點,點選New按鈕:

Force.com微信開發系列後台配置

在接下來的網站資訊輸入畫面輸入Site label,Site Name,選擇任一頁面為“ Active Site Home Page」(這裡不需要建立網頁,任意選即可),保持其他選項不變,點選「save」按鈕:

Force.com微信開發系列後台配置

##在緊接下來的畫面點選“Public Access Settings”按鈕,

Force.com微信開發系列後台配置

在接下來的畫面中找到“Enable Apex Class Access”,點選Edit按鈕

Force.com微信開發系列後台配置

#將WeChatRestController類別加入右邊的清單裡,這將使得該類別支援匿名公開訪問:

Force.com微信開發系列後台配置

最後回到Sites首頁,點擊“ Activate」按鈕啟動站點,此時既可以透過以下URL存取我們開發的介面(留意可能需要等幾分鐘URL才會生效):

https://johnson0001-developer-edition.ap1.force .com/services/apexrest/WeChatRest


第四步,設定騰訊後台,在開發模式下,輸入此URL,並輸入任意Token,點擊提交按鈕,如騰訊提示成功則表明成功完成配置:

Force.com微信開發系列後台配置

驗證URL Echostr演算法:1. 將Token(使用者在騰訊後台設定的值), 時間戳記(騰訊請求URL時傳過來的timestamp值),nonce(騰訊請求URL時傳過來的nonce值)按照字母順序進行排列;2. 排列好後拼接成一個字串;3.透過sha1演算法轉換此字串後的結果如果正常就是echostr的值

更多Force.com微信開發系列後台設定相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn