Ⅰ 如何在cocos2dx接入微信登錄
打開 js介面簽名校驗工具填入相應的數據:1)jsapi_ticket:填入上一步獲取的ticket2)noncestr:這里隨機生成一個字元串填進去(VQhYOUJRz6RolHqN)3)timestamp:這里填入一個時間戳,去掉毫秒的3位(如:1420870884)-這里盡量寫ticket生成後的一段時間,newDate()-0可以獲取當前的時間戳4)url:准備放頁面的地址(域名必須在第二部中設置到安全域名內,如:.cocos2d-x.org/wechat.html)點擊生成簽名。記錄下下面出現的signature這個值。
Ⅱ 手把手教你調用微信掃一掃!三分鍾包會
這是我第一次公眾號開發,本以為看著微信官方文檔直接復制粘貼就好了,沒想到是我天真了,爬過一個坑又入一個坑!就這么一個簡單的事,竟然搞了一下午,所以寫了這篇文章,希望可以幫到大家!
第一步:引入 weixin-js-sdk
直接在 html 文件內,使用 script 引入:
或者
第二步:許可權驗證配置
timestamp,nonceStr,signature 重要信息請根據自己的公眾號信息去獲取。需要注意的是 debug 調試的時候,設置為 true ,會自動彈出配置成功或失敗信息,調試時可以藉助它。
第三步:調用掃一掃介面
我們在需要的按鈕處,點擊事件處開始調用掃碼介面,如:
做了一個判斷處理,檢查只有微信瀏覽器,其他瀏覽器不可以調用:
第四步:真機測試
真機測試的時候,一直在提示:
errMsg:config:invalid signature
中文叫做簽名無效。
查找原因是因為我的簽名獲取來和官方 微信 js 介面簽名校驗工具獲取來的數據不一樣,很明顯獲取的簽名有問題,是因為我的 url 配置和前端調起介面的 url 不一致造成的。
第五步:蘋果手機測試
蘋果手機真機測試,提示錯誤信息為:
the permission value is offline verifying
翻譯為中文:許可權值正在離線驗證
這個錯誤原因是 config 沒有正確執行。
又繼續去檢查簽名的問題,最後發現是後台介面欄位寫錯了,欲哭無淚,總之還是簽名信息錯誤。
第六步:安卓正常,蘋果點擊無反應
用安卓測試的時候,竟然好了,完美展示掃碼結果,以為要好了。使用 ios 測試的時候,竟然發現點擊的時候沒有任何反應。
找了半天原因,是因為 window.location.href 不同造成的。
測試結果:
安卓:https://hp.******.net/
IOS:https://hp.******.net//
IOS 手機就是因為 url 與簽名配置處的 url 不同,所以導致 config 執行失敗。究其原因是因為我的 vue-router 是 hash 模式。
解決方案:把我的 hash 模式換成 history 模式。記得後台也需要配置 nginx 。
第七步:IOS 掃碼無反應
當 IOS 能調起介面的那一刻,我以為要成功了,哪知道它就是要與 安卓 與眾不同,掃碼之後沒有任何反應,但是如果你快速地連續多掃幾次就會出現結果。
你就說要命不?網上查找了半天,看見有的人說有延時,最後想乾脆加個延時算了。
果然加了延時之後就好了。
第八步:掃碼結果處理
可能存在問題:
1、iOS設備掃碼正常,Android設備掃碼後沒反應
2、Android設備掃碼正常,iOS設備掃碼後沒反應
原因 :微信開發文檔並沒有說清楚,其實在微信後台可能是維護了2個介面, 或者是對設備類型進行了區別,總之在 回調 函數中返回的結果封裝對象並不是同一個, 所以這要求我們也進行相應的處理, 不然就會出現上面這種默認奇妙的問題。
IOS 返回結果:
Android 結果:
第九步:修改路由
本以為 蘋果安卓手機都能夠正常掃碼,沒問題了。但是領導換需求了,之前是掃碼放到外邊,可以匿名掃。現在要修改成登錄之後才可以掃碼。
我就把路由修改了一下,先在登錄頁登錄成功之後,再進入掃碼頁,後台也同步修改了 url 地址,修改完測試發現:
安卓的一切正常。
蘋果手機壞了!
奔潰了,看看錯誤提示:noPermissionJsApi:[],errMsg:"config:ok"。
確定之後有一個錯誤提示。
errMsg:scanQRCode:the perssion value is offline verifying
一頓網路猛如虎,半天原地打轉轉!
有前邊一次經驗教訓,我就又去找地址的原因。最後發現是竟然 $router.push 的跳轉影響了我的 url ,在 IOS 上的 push 跳轉不能寫入瀏覽器的地址欄,但是安卓可以,導致安卓和 ios 跳轉之後的地址不同,所以 ios 失敗了。
解決辦法:
此時就正常運行了。這下滿足項目要求了,不會再出什麼幺蛾子了!
微信官方開發文檔:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#4
Ⅲ 微信 簽名不對 請檢查簽名是否與開放平台上填寫的一致
問題:微信分享時提示「簽名不對,請檢查簽名是否與開放平台上填寫的一致。」
看了下開放平台,簽名填寫的是包名(當時申請時候趕時間就隨便填了),而它的要求則是: 用於對當前應用進行二次身份校驗,開發者可以使用簽名生成工具直接從安裝當前應用的手機中獲取。應用簽名由開發者簽名該應用的keystore文件決定。
所以,用簽名生成工具生成一個吧,官方文檔中有該工具的安裝包:
點擊下載,把apk發到手機上安裝,打開後是這樣的:
輸入你的包名,點擊Get Signature按鈕,則生成了簽名(綠色的):
復制到開放平台,過會兒再調用即可(前提是,項目打包時候生成過簽名,不然,還是不行的,需要重新打包,也就是項目中的簽名需要跟開放平台的簽名一致就可以啦):
Ⅳ 如何在Cocos2d-JS游戲中快速接入微信SDK
近日,微信公眾平檯面向開發者推出了微信內網頁開發工具包(微信JS-SDK),內含11類介面集。
從此之後,開發者不僅能夠在網頁上使用微信本身的拍照、選圖、語音、位置等基本能力,還可以直接使用微信分享、掃一掃、卡券、支付等微信特有的能力,為用戶提供更優質的網頁體驗。
那麼問題來了:如何在Cocos2d-JS游戲中快速接入微信SDK?
接下來我們將用基於Cocos2d-JS的微信游戲《來自喵星的你》來做個說明,教大家如何快速接入剛剛發布的微信SDK。
(微信支付API正在路上,歡迎關注下期連載哦!)
1.申請公眾號
因為微信只能使用公眾號接入SDK,所以我們必須先注冊一個公眾號。
2.設置公眾號
登錄公眾平台後,點擊左下角的 設置-公眾號設置。右側有一個js介面安全域名的設置,這里可以綁定3個用到的域名,必須填入頂級域名。
然後點擊左下角的 開發者中心,右側會有一個AppID和一個AppSecret。這兩個先記錄下來,過後會用到。
3.生成token
打開頁面 微信公眾平台介面調試工具 並且填入剛才的appid和secret,點擊檢查問題。記錄下返回結果裡面的「access_token」的值。
4.獲取ticket
復制這個鏈接:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=填寫剛剛獲取的access_token&type=jsapi
並在裡面的access_token=後面填入剛剛獲取的access_token(對的,就是那一串亂碼一樣的東西),回車!!
然後把「ticket」的值復制出來,並保存起來,這個就是當前appid的ticket了。
5.生成簽名
打開 微信 JS 介面簽名校驗工具 填入相應的數據:
1)jsapi_ticket: 填入上一步獲取的ticket
2)noncestr: 這里隨機生成一個字元串填進去(VQhYOUJRz6RolHqN)
3)timestamp: 這里填入一個時間戳,去掉毫秒的3位(如:1420870884) - 這里盡量寫ticket生成後的一段時間,new Date() - 0可以獲取當前的時間戳
4)url: 准備放頁面的地址(域名必須在第二部中設置到安全域名內,如:http://www.cocos2d-x.org/wechat.html)
點擊生成簽名。記錄下下面出現的signature這個值。
6.頁面引入微信SDK並初始化
在頁面中加入:
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
並且執行初始化:
Ⅳ 微信支付商戶簽名錯誤
官方文檔內容如下:
備註:prepay_id 通過微信支付統一下單介面拿到,paySign 採用統一的微信支付 Sign 簽名生成方版法,注意這里 appId 也要參權與簽名,appId 與 config 中傳入的 appId 一致,即最後參與簽名的參數有appId, timeStamp, nonceStr, package, signType。
其實根本不是這么回事,完全是扯犢子,參與簽名的參數根本不不上面列出的,
實際的簽名字元串應該是:"appId="+appId+"&nonceStr="+noncestr + "&package=prepay_id="+prepay_id+"&signType=MD5&timeStamp="+timestamp+"&key="+key
這里的key是微信商戶平台(pay.weixin.qq.com)-->賬戶設置-->API安全-->密鑰設置
這里設置的密鑰。
騰訊他娘的狗屎文檔,寫得真他娘爛。
Ⅵ 微信小程序簽名錯誤(統一下單)
第一次開發微信小程序,遇到了這個簽名錯誤,在此進行記錄。
介面鏈接:
https://api.mch.weixin.qq.com/pay/unifiedorder
微信驗證簽名工具地址:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1
統一下單官網地址L:
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1
發送xml參數
其中,appid查找當前小程序的appid
mch_id,是當前商戶號的id
spbill_create_ip 就是當前計算機ip
其餘參數可以在官方文檔中找到。通過官方文檔的說明進行拼接,生成簽名
當參數發過去後,顯示的是簽名錯誤,並且通過校驗工具,顯示是成功的。找了很久原因後,發現,需要在商戶平台上重置api秘鑰,
是因為簽名最後拼接的key的問題。
第一次我設置過了這個秘鑰,但總是顯示簽名錯誤。今天重置了一下,再次進行請求之後,該錯誤解決。
註:一定要對應的小程序和商戶號,否則也會產生問題。