Google内购订阅如何添加developerPayload信息

   developerPayload参数会添加到我们的订阅订单里,后续通过获取订单就恢复这些参数信息,从而有利于我们更好的关联跟踪订阅订单。

     我们知道,Android集成Google支付有两种方式:

  • 另一种是使用AIDL进行应用内购买结算
    即自己连接内购订阅服务并调用相应API,比价复杂,一般不采用这种方式

  • 一种是使用Google Play结算库billingclient

    dependencies {
        ...
        implementation 'com.android.billingclient:billing:2.0.1'
    }

但是该种方式下developerPayload参数目前是封装在google play的sdk billingclient库里的,固定为null, 没法主动填充该字段。

Google内购订阅如何添加developerPayload信息_第1张图片

有两种解决方案

  •   抽离billingclient代码并自己修改, 但后续升级需修改,比较复杂有维护成本。
  •   利用java反射机制Hook InAppBilling服务的接口,Hook getBuyIntent等API调用,然后填充developerPayload。只要InAppBillingService接口不变动,不需要更新。

  代码

Google内购订阅如何添加developerPayload信息_第2张图片    

对了,还记得别混淆IInAppBillingService,BillingClient, BillingClientImpl等类

/**************************************************
* 本文来自CSDN博主"一点码客",喜欢请顶部点击关注
* 转载请标明出处:http://blog.csdn.net/itchosen
***************************************************/

如需实时查看更多更新文章,请关注公众号"一点码客",一起探索技术

 

你可能感兴趣的:(Android)