1、微信分享報錯“微信:包名不對,請檢查包名是否與開放平台填寫一致”
具體原因及分析見這篇博客:uniapp微信APP支付踩坑指南:報錯errMsg: "requestPayment:fail errors"
2、Android微信支付只能調起一次的問題
Android微信支付只能調起一次,之后就再不成功;有博客說卸載微信重裝之后,就能成功,發現不行,卸載之后還是只能調起一次。
其根本原因就在於:微信開發平台填寫的包名與app應用的包名不一致導致。
具體原因及分析見這篇博客:uniapp微信APP支付踩坑指南:報錯errMsg: "requestPayment:fail errors"
3、App微信登錄與公眾號微信登錄的unionid不一致
(1)問題背景
在開發app時使用微信登錄,發現app微信登錄返回unionId與之前公眾號或小程序微信登錄返回的unionid不一致。這就有點奇怪了。
(2)unionId機制
如果微信開發者擁有多個移動應用、網站應用、和公眾帳號(包括小程序),可通過 UnionID 來區分用戶的唯一性,因為只要是同一個微信開放平台帳號下的移動應用、網站應用和公眾帳號(包括小程序),用戶的 UnionID 是唯一的。
換句話說,同一用戶,對同一個微信開放平台下的不同應用(openid是不同的),unionid是相同的。
(3)造成原因
app開發時,我用的是HbuilderX的標准基座,標准基座實際上用的都是標准基座的appid,而我們配置的appid、appSecret之類的,需要打自定義基座才會生效的。
所以根本原因就在這里,標准基座和開發者平台配置的不一樣照成的。
(4)解決方案
將app打自定義基座包,真機調試就行了;或者打包,安裝到手機上就可以了。
標准基座真機調試會用到hbuilder那邊的,而打包后使用的就是微信開發者平台配置appid和appsecret。