上一篇文章简单提到了谷歌支付,现在我们从官方文档和官方文档的要点详细到马上停止的地方。
首先,确保在Google Play Console上成功完成了工程,同时添加几个测试帐户。 (测试账户是谷歌账户,测试账户测试支付时不需要付钱,而是模拟支付。 )
在制作之前,查看官方文档和官方提供的demo,将相关类别列入你的项目,在此前提下,做一个简单的我当时面临的漏洞,包括界面的调整、商品的获取
坑一:因为官方demo没有指定基本编码公钥,所以运行demo时直接报告错误。 官方demo给了汽油这种消耗品和预购,所以可以根据自己的行动进行研究
坑二)执行工程时发现未报告错误,调试调试(返回回调位置正常显示),界面畅通,显示正常,但无法拿到商品
首先,APP的商店发表- APP内商品追加销售的商品(商品id保留) ) ) ) ) )。
然后,
APP应用开发工具-服务和API-二进制文件中的Base64对RSA公钥进行编码、复制,先放入项目中,分配给Base64编码的公钥,然后运行项目
关于坑二,如果拿不到商品就买不到测试。 调查了很多文献也没有说明。 不知道是因为太简单了,还是因为知道了觉得太简单了,所以没说,在这里怎么样? 如果有和我不同的地方或者错误的地方的话请指出来。 作为参考:
支付接口:
New skuList=new ArrayList (;
Skulist.add(「coin1”);
Skulist.add(「coin2”);
Skulist.add(「coin3”);
Skulist.add(「coin4”);
Skulist.add(「coin5”);
其中coin1…coin5是商品id,是如上所述剩下的id,是官方demo的
m helper.queryinventoryasync (mgotinventorylistener )方法是m helper.queryinventoryasync (skulist,mgotinventorylistener )
在IabHelp类中更改方法:
publicvoidqueryinventoryasync (arraylistskulist,queryinventoryfinishedlistenerlistener ) )。
throwsiabasyncinprogressexception {
//queryinventoryasync(false,null,null,listener );
queryinventoryasync(true,skuList,null,listener );
}
在施工中不可思议地发现,你拿到了APP内的商品清单(发送商品id,谷歌后台系统根据id查询商品后返回)。
因为周围没有人访问过Google支付,所以参考不多,但是对于上面的skuList,不需要手动添加就可以直接从后台返回,和动态获取base64编码公共密钥更好接下来就是直接从自己的后台获取商品清单,购买时委托谷歌后台。
其实我也意识到如果商品太多的话,这样处理是否显得有点low,但是可以解决现在的功能需求。 如果有更好的方法,谢谢你的意见。
极速赛车八码p>
在IabHelp类中更改方法:
publicvoidqueryinventoryasync (arraylistskulist,queryinventoryfinishedlistenerlistener ) )。
throwsiabasyncinprogressexception {
//queryinventoryasync(false,null,null,listener );
queryinventoryasync(true,skuList,null,listener );
}
在施工中不可思议地发现,你拿到了APP内的商品清单(发送商品id,谷歌后台系统根据id查询商品后返回)。
因为周围没有人访问过Google支付,所以参考不多,但是对于上面的skuList,不需要手动添加就可以直接从后台返回,和动态获取base64编码公共密钥更好接下来就是直接从自己的后台获取商品清单,购买时委托谷歌后台。
其实我也意识到如果商品太多的话,这样处理是否显得有点low,但是可以解决现在的功能需求。 如果有更好的方法,谢谢你的意见。