問(wèn)題引入
Android的微信支付申請(qǐng)的時(shí)候需要應(yīng)用的包名和應(yīng)用簽名,如果開(kāi)發(fā)過(guò)程中這兩項(xiàng)和申請(qǐng)的不一致,是調(diào)不起來(lái)微信支付的。對(duì)于一般的應(yīng)用來(lái)說(shuō),包名和簽名比較好解決,因?yàn)橐粋€(gè)應(yīng)用就是一個(gè)簽名和一個(gè)包名,但是如果我們開(kāi)發(fā)的是一個(gè)帶微信支付功能的sdk(游戲渠道sdk),那么就不是這么容易了,因?yàn)檫@里的包名和簽名并不是sdk決定的,而是由對(duì)接這個(gè)sdk的應(yīng)用決定,比如某一款游戲和某渠道聯(lián)運(yùn),就要對(duì)接渠道的sdk,用sdk中的支付功能,這個(gè)時(shí)候,就需要想辦法解決一個(gè)微信支付包名和簽名的問(wèn)題了。
簡(jiǎn)單方案
其他大渠道比如360,豌豆莢之類,他們的方案是使用的jni層面的解決方案,開(kāi)發(fā)難度比較高,所有我想到一個(gè)比較簡(jiǎn)單的方案,就是一個(gè)apk啟動(dòng)另一個(gè)apk的方案來(lái)解決這個(gè)問(wèn)題,寫了微信支付代碼的apk提前放入我們主apk的assets中,在需要微信支付的時(shí)候提示安裝這個(gè)apk,安裝后,需要調(diào)起微信支付的時(shí)候都用這個(gè)apk來(lái)實(shí)現(xiàn),可能用戶第一次支付的時(shí)候需要安裝另一個(gè)apk,在體驗(yàn)上稍微差一些,不過(guò)開(kāi)發(fā)難度和速度上比較快。
后來(lái)發(fā)現(xiàn)在百度游戲渠道的sdk上,居然也是這種方案,心里感覺(jué)一下子舒坦不少,因?yàn)榘俣鹊膽?yīng)用分發(fā)可是全行業(yè)第一。