微信6.2開發筆記

通常的開發信息就很少說了,具體能夠從官方文檔瞭解。下面就記下我開發過程當中遇到的一些奇葩坎和須要注意的地方。

css

對微信請求消息的處理

微信與我提供的微信處理接收頁面(官方稱爲服務器地址,目前僅支付80端口)的交互,分爲兩種請求方式post和get。html

微信服務器配置啓用的時候,也就是設置對微信請求的處理的頁面的時候,這時候是一次get請求,返回隨機字符串則表示驗證經過,即啓用成功。
用戶使用微信發送的消息事件什麼的都是用post方式的請求,與此同時也會用get的請求推送參數處處理頁面用來驗證是否爲微信發送過來的請求。瀏覽器

那麼,對於微信請求的消息返回咱們想返回的消息給用戶,就完成了與微信的交互。緩存

 

對微信的調試

用日誌查看,上傳一次程序,再看一眼日誌……如此循環,心情糟糕透了。
用花生殼調試,不用上傳,實時調試,效率提高了很多。資料:http://www.cnblogs.com/zskbll/p/4074855.html服務器

另外,由於微信服務器在五秒內收不到響應會斷掉鏈接,而且從新發起請求,總共重試三次。因此當調試的時候,由於斷點的停留,致使多個請求同時進來很差調試 ,因此用個變量把它限定在第一個請求。微信

private static int requestNum = 0;//測試的時候方便調試只用第一次請求的參數(微信無相應會重複請求3次的響應)
public void ProcessRequest(HttpContext context)
{
      requestNum++;
      if (requestNum == 1)
      {
          Auth();
      }
}

 

微信支付(v3)

兩種支付請求:asp.net

1.使用JS API發起支付請求
2.使用Native API發起支付請求函數


從官方下載了支付的C#demo,打開NativePayPage.aspx頁面,即掃碼支付(Native API)模式二,在發起「統一下單接口」請求的時候,在HttpService.Post處報錯「鏈接不到遠程服務器」,或者「請求超時」。post

另外,在模式一掃碼的時候,微信提示「獲取商戶訂單信息超時或商戶返回httpcode非200」測試


解決方法:在HttpService類裏的Post和Get請求裏註釋如下代碼(我不知道這個代理設置有什麼用,反正註釋掉就能夠了,知道緣由的麻煩告訴我)

//(代理暫不知道有何用,暫註釋掉,不然請求報錯)
//設置代理
//WebProxy proxy = new WebProxy();
//proxy.Address = new Uri(WxPayConfig.PROXY_URL);
//request.Proxy = proxy;

 

掃碼模式(Native API):

模式一:線下二維碼支付(我想應該是這樣)


流程:

1.商戶將商戶訂單ID生成二維碼

2.用戶掃碼

3.微信處理掃碼結果,請求商戶設置Native原生支付的支付回調URL(在官方demo裏的頁面爲NativeNotifyPage.aspx)

4.在NativeNotifyPage.aspx裏調用微信的「統一下單接口」

5.彈出輸入密碼的支付界面,用戶確認支付

6.微信請求支付結果通知回調url(在官方demo的WxPayConfig類裏的NOTIFY_URL)

7.在NOTIFY_URL裏作業務處理

 

模式二:線上掃碼支付(好比官網接入掃碼支付)


流程:

1.調用微信的「統一下單接口」生成二維碼

2.用戶掃碼

3.彈出輸入密碼的支付界面,用戶確認支付

4.微信請求支付結果通知回調url(在官方demo的WxPayConfig類裏的NOTIFY_URL)

5.在NOTIFY_URL裏作業務處理

 

模板消息

掃碼支付成功以後,對於未關注公衆號的用戶發送不了模板消息。在未關注公衆號的狀況下即便支付成功,並在支付成功界面勾選(默認勾選)關注公衆號也不會發送消息。

發送「模板消息」後微信服務器會發送「模板消息」是否發送成功的消息給接收消息頁面。但我不知道接收到消息以後要如何處理,若是發送失敗是要寫入異常日誌呢,仍是作其餘用處。

 

JS支付

1.報「redirect_uri參數錯誤」
緣由:「網頁受權獲取用戶基本信息」接口的受權回調頁面域名未設置。

2.用官方提供的JS支付頁面,支付成功後沒有執行回調函數。
解決:官方提供頁面裏的submit按鈕使用的是asp.net的服務器控件,另外改爲<button></button>也不用,緣由不詳。改爲<input type="button" />和<a>標籤均可以使用,即執行回調函數。

3.報「不容許跨號支付」
解決:取消關注公衆號,再從新關注後進行支付。

 

H5頁面

微信裏的圖片和微信內置瀏覽器均有緩存,致使更改了圖片或樣式後預覽沒有及時發生改變。

解決緩存的方法:

1.在文件後面加上參數,好比:/css/index.css?v=1221 
2.另外博客園的網友說這樣也能夠,我以爲應該能夠,沒有印證。

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

 

自定義菜單

自定義菜單裏的key至關於一個標識,點擊時會發送請求到商戶設置的消息處理頁面,咱們則根據key作相關處理。 

相關文章
相關標籤/搜索