1. 程式人生 > >微信分享功能填坑過程

微信分享功能填坑過程

要對H5頁面進行微信分享自定義標題,描述,圖片的開發,遇到各種坑,記錄下填坑的過程。

參考文章:

http://www.jb51.net/article/98467.htm

https://my.oschina.net/superkangning/blog/368043

http://www.cnblogs.com/txw1958/p/weixin-js-sdk-php-demo.html

https://jingyan.baidu.com/article/d3b74d64c517051f77e609ed.html

http://1017401036.iteye.com/blog/2263358

http://blog.csdn.net/xdd19910505/article/details/50957713

http://blog.csdn.net/wxs55555/article/details/72673966

http://www.cnblogs.com/zhengxu/articles/6743301.html

一、要使用微信JS-SDK,說明文件地址,

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN

二、官方有包含php、java、nodejs以及python的示例程式碼

網址在https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115&token=&lang=zh_CN最下面

返回錯誤資訊:errmsg config param is empty,原因demo程式碼,遺憾的是其中wx.config中的jsApiList:為空,因此經常有人直接除錯的時候就出現下面錯誤提示,解決參考文章

http://blog.csdn.net/cctcc/article/details/51792412

微信jssdk呼叫介面時報permission denied  ,無許可權,參考文章

http://www.oschina.net/question/820519_236858

三、返回錯誤資訊"errorMsg":"config fail",也可能是報的jssdk config:invalid signature,記不清楚了

是config驗證錯誤,解決思路,應該是jsapi_ticket錯誤,除錯將sample.php中

程式碼修改為

<script>
  /*
   * 注意:
   * 1. 所有的JS介面只能在公眾號繫結的域名下呼叫,公眾號開發者需要先登入微信公眾平臺進入“公眾號設定”的“功能設定”裡填寫“JS介面安全域名”。
   * 2. 如果發現在 Android 不能分享自定義內容,請到官網下載最新的包覆蓋安裝,Android 自定義分享介面需升級至 6.0.2.58 版本及以上。
   * 3. 常見問題及完整 JS-SDK 文件地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
   *
   * 開發中遇到問題詳見文件“附錄5-常見錯誤及解決辦法”解決,如仍未能解決可通過以下渠道反饋:
   * 郵箱地址:[email protected]
   * 郵件主題:【微信JS-SDK反饋】具體問題
   * 郵件內容說明:用簡明的語言描述問題所在,並交代清楚遇到該問題的場景,可附上截圖圖片,微信團隊會盡快處理你的反饋。
   */
  wx.config({
    debug: false,
    appId: '<?php echo $signPackage["appId"];?>',
    timestamp: <?php echo $signPackage["timestamp"];?>,
    nonceStr: '<?php echo $signPackage["nonceStr"];?>',
    signature: '<?php echo $signPackage["signature"];?>',
	url: '<?php echo $signPackage["url"];?>',
    rawString: '<?php echo $signPackage["rawString"];?>',
    jsApiList: [
		'chooseImage',
      // 所有要呼叫的 API 都要加到這個列表中
    ]
  });
  wx.ready(function () {
    // 在這裡呼叫 API
    wx.chooseImage({
    count: 1, // 預設9
    sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,預設二者都有
    sourceType: ['album', 'camera'], // 可以指定來源是相簿還是相機,預設二者都有
    success: function (res) {
        var localIds = res.localIds; // 返回選定照片的本地ID列表,localId可以作為img標籤的src屬性顯示圖片
    }
});
  });
</script>
參考解決方法:https://segmentfault.com/q/1010000002520634

微信 JS 介面簽名校驗工具

https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign


四、檢視相關資訊,我遇到的錯誤是jsapi_ticket獲取不到,分析原因,最大原因是沒有get到accessToken,那是因為你的網站IP沒有加入微信IP白名單,

參考方法 http://blog.sina.com.cn/s/blog_559a57740102xhnz.html   第二種啥x原因,因為獲取微信開發者密碼的時候自己沒有管理員許可權,手抄的,把b抄成了6,我鬱悶了

五、報errmsg config ok,一致以為是錯誤資訊,實際上已經是ok了,errmsg不是errormsg可以測試一下,用上面的程式碼,測試功能是ok的,因為本人賬號沒有介面分享許可權,所以只能做選擇圖片的功能測試。

參考方法:http://www.cnblogs.com/txw1958/p/weixin-js.html