1. 功能概述
1.1 需求介绍
金币是应用内的虚拟货币,所有的通话、聊天、礼物赠送、查看主播照片等等都需要扣除一定数量的金币来解锁才能使用,而金币列表是金币充值重要的入口之一,它按照支付类型可以分为一次性消耗型金币和订阅型两种类型的金币,其中一次性消耗型金币可以通过购买固定数量的金币充值到个人余额账户,而订阅型金币通常以月为单位,通过订阅后除了在个人余额账户充值一定数量的金币外,还可以通过App每天签到来领取预设置的固定数量的金币。另外从业务角度需要补充几个概念,限时特惠商品和首充商品,营销商品。
1.2 目标步骤
由于后台系统动态配置限时特惠商品,首充商品和营销商品,所以前端根据产品需求进行动态显示
- 普通金币
- 订阅型金币
- 限时特惠金币
- 首充金币
- 营销金币
分别实现上面几种金币效果的正常显示
2. 准备条件
- Google Play后台配置完商品
- 后台管理系统配置完商品
3. 功能实现
首先通过接口/api/v3/productList根据产品类型获取产品列表,其中入参productType对应值有:
| 值 | 含义 |
|---|---|
| 0 | 一次性消耗型金币 |
| 1 | 一次性消耗型VIP会员 |
| 2 | VIP会员订阅 |
| 3 | 金币订阅 |
| 4 | 匹配卡订阅 |
| 5 | 金币营销广告商品,用于三方支付,App不涉及 |
| 8 | 一次性消耗型匹配卡 |
对于金币列表,productType传0即可,如果该用户没有订阅过金币,那么会返回一次性消耗型金币和订阅型金币,如果订阅了金币,那么只会返回一次性消耗型金币,另外仍需要结合Google后台返回商品数据,最终显示可以购买的金币列表,而后面这一部分可以参考Google支付章节查询商品并显示部分。
3.1 普通金币
普通金币通常为一次性消耗型金币,前端可以根据后端返回字段,正常解析显示即可,需要注意的是价格这里的单位为分(显示需要除以100,下同),至于货币本地化,可参考后面文章
3.2 订阅型金币
订阅型金币需要根据订阅产品扩展类型productSubType来区分按月、季、年订阅,前端按照字段返回来对应显示
3.3 限时特惠金币
当接口返回字段中activityType为1时,为活动类型金币,通常为限时商品,倒计时时间从startApp接口中的goldCoinOfferDuration获取并显示,倒计到0时,再次循环计时
3.4 首充金币
当接口返回字段中defaultType为1或3时,此时为首充商品,其中1为广告量首充用户默认选中,3为自然量首充用户默认选中,其他商品默认不选中该值为0,而2为首充后默认选中,一般首充商品只针对新用户,买一次后,后台就不返回该商品了
3.5 首页营销金币
这种类型金币不在金币列表,因此不属于金币列表范畴,如果产品层面有首页营销金币弹窗需求,可以通过/api/v2/trade/salesInfo接口获取数据来显示
4. 常见问题
- 问题1:金币价格显示不正确
- 原因:后端返回金币单位为分
- 解决方案:前端需要除以100后保留两位小数显示