問題引入
Android的微信支付申請的時候需要應用的包名和應用簽名,如果開發(fā)過程中這兩項和申請的不一致,是調(diào)不起來微信支付的顺囊。對于一般的應用來說,包名和簽名比較好解決蕉拢,因為一個應用就是一個簽名和一個包名特碳,但是如果我們開發(fā)的是一個帶微信支付功能的sdk(游戲渠道sdk),那么就不是這么容易了晕换,因為這里的包名和簽名并不是sdk決定的午乓,而是由對接這個sdk的應用決定,比如某一款游戲和某渠道聯(lián)運闸准,就要對接渠道的sdk益愈,用sdk中的支付功能,這個時候夷家,就需要想辦法解決一個微信支付包名和簽名的問題了蒸其。
簡單方案
其他大渠道比如360敏释,豌豆莢之類,他們的方案是使用的jni層面的解決方案枣接,開發(fā)難度比較高颂暇,所有我想到一個比較簡單的方案,就是一個apk啟動另一個apk的方案來解決這個問題但惶,寫了微信支付代碼的apk提前放入我們主apk的assets中耳鸯,在需要微信支付的時候提示安裝這個apk,安裝后膀曾,需要調(diào)起微信支付的時候都用這個apk來實現(xiàn)县爬,可能用戶第一次支付的時候需要安裝另一個apk,在體驗上稍微差一些添谊,不過開發(fā)難度和速度上比較快财喳。
后來發(fā)現(xiàn)在百度游戲渠道的sdk上,居然也是這種方案斩狱,心里感覺一下子舒坦不少耳高,因為百度的應用分發(fā)可是全行業(yè)第一。