最近有機會,嘗試了一次微信開發,中間遇到不少比較容易踩得坑,記錄一下。php
主要功能是html
微信公衆平臺: https://mp.weixin.qq.comhtml5
微信商戶平臺: https://pay.weixin.qq.com/node
微信API:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.htmlgit
微信開發者論壇: http://qydev.weixin.qq.com/qa/index.php?qa=questionsgithub
條件:api
接口文檔:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html安全
過程是獲取用戶受權的code,經過code獲取access_code,而後經過access_code獲取用戶信息。微信
第一步獲取用戶受權的code,redirect_uri
常常會報錯redirect_uri參數錯誤
,可能的緣由是:cookie
若是以上問題都注意到後,仍是有問題,即可以等幾個小時,極可能是微信接口抽風了,我就是用着用着這個接口掛了,等了好幾個小時本身好了。
有時候報錯」不能訪問連接「,緣由是微信後臺設置的回調域名不對,有時候本身切換host後,域名不對,因此修改回調域名就行了。
access_token
會過時,用的時候建議每次都經過refresh_token
去從新獲取access_token
用戶受權後回跳的頁面的時候,控制檯報錯
`Resource interpreted as Document but transferred with MIME type application/octet-stream: "https://open.weixin.qq.com/connect/oauth2/..`
解決辦法是,回調頁面的url設置爲http://xxx.com
,而不是xxx.com
受權回調頁面,url會帶有?code=xxx
,不能直接分享這個url,會致使後面的用戶受權不了。由於這個問題糾結了好久。
解決方式是,在node端解析code,而後寫入cookie,經過url redirect
到沒有code的頁面。另外一種方式是,經過微信api,定製分享內容和分享的連接。
條件:
接口地址:https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_1
就是有時候會報錯簽名錯誤
,可能緣由及解決辦法是:
證書的使用。
官方下載會下載到三個證書,node用.p12後綴的,使用方式是在請求頭設置 agent,而後設置密碼。具體見文末的代碼連接。
紅包的描述和祝福語之類的設置中文會出現紅包發送不出去的狀況,解決方式是對中文進行unicode編碼。
第一步,在微信後臺設置js接口安全域名
第二步,引入js文件
第三步,經過config接口注入驗證配置
坑: signature簽名獲取方式是先獲取 jsapi_ticket,經過access_token獲取jsapi_ticket時老是報錯,同一個未過時的access_token獲取用戶信息是能夠的,獲取jsapi_ticket就不行。
第四部,配置onMenuShareTimeline方法。能夠自定義分享內容和連接。
最後,推薦html5的一些組件庫
frozenUI: http://frozenui.github.io
很出色的h5製做網站:http://h5.baidu.com/
源代碼倉庫連接:https://github.com/freestyle21/orange-plus
原創文章,歡迎轉載。轉載請註明:轉載自 Fs21 ' s Home,謝謝!
原文連接地址: 微信開發的一些總結