首先,我反覆確認了三次以上,配置的簽名沒有問題,打包後的簽名沒有問題, request.checkArgs()返回true,而後——android
同一個包,在測試機上有的手機能調出支付界面,有的不能,然而在調起支付失敗的手機上,登陸個人微信就能夠調出,登陸我同事的就不行。緩存
最後發現的問題是:微信會對以前的調用生成緩存,若是你以前安的原本是debug(未簽名)的包,那時候點擊微信支付失敗了,微信緩存下了這個狀態,當你從新安裝release(已簽名)的包再調用時,會依然返回-1調起失敗。這個問題我試過的是這樣,甚至在我先安了release調起成功以後,卸載App,安裝debug版,這時候的第一次點擊也是能夠喚起支付界面的。微信
so,解決辦法是:測試
1.重啓下手機或者清理下微信的緩存微信支付
若是不行,先表摔手機——>spa
2.清空微信數據debug
要仍是不行——>code
3.卸載重裝微信blog
通常這樣是OK了ci
固然了,得看具體狀況,若是你試了我說這些依然不OK,那麼你能夠摔手機,可是不能罵人
順便記錄一下,微信支付成功後,回調界面關閉時會有一個閃屏(有的手機是沒有的),這是由於WXPayEntryActivity自己是一個空白界面,finish時會有閃屏的效果,
解決這個問題只須要將WXPayEntryActivity變成透明:
android:theme="@android:style/Theme.Translucent"
這樣視覺上就感覺不到它的finish效果。
微信登陸與微信分享同回調WXEntryAcitivity,區別是BaseResp.getType()返回值不一樣
BaseResp.getType() == 1;則爲微信登錄,
BaseResp.getType() == 2;則爲微信分享(以前好像是0)