问题引入
Android的微信支付申请的时候需要应用的包名和应用签名,如果开发过程中这两项和申请的不一致,是调不起来微信支付的。对于一般的应用来说,包名和签名比较好解决,因为一个应用就是一个签名和一个包名,但是如果我们开发的是一个带微信支付功能的sdk(游戏渠道sdk),那么就不是这么容易了,因为这里的包名和签名并不是sdk决定的,而是由对接这个sdk的应用决定,比如某一款游戏和某渠道联运,就要对接渠道的sdk,用sdk中的支付功能,这个时候,就需要想办法解决一个微信支付包名和签名的问题了。
简单方案
其他大渠道比如360,豌豆荚之类,他们的方案是使用的jni层面的解决方案,开发难度比较高,所有我想到一个比较简单的方案,就是一个apk启动另一个apk的方案来解决这个问题,写了微信支付代码的apk提前放入我们主apk的assets中,在需要微信支付的时候提示安装这个apk,安装后,需要调起微信支付的时候都用这个apk来实现,可能用户第一次支付的时候需要安装另一个apk,在体验上稍微差一些,不过开发难度和速度上比较快。
后来发现在百度游戏渠道的sdk上,居然也是这种方案,心里感觉一下子舒坦不少,因为百度的应用分发可是全行业第一。
网友评论