0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发学习:【华为支付服务客户端案例】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-03-24 21:55 次阅读

简介

华为应用内支付服务(HUAWEI In-App Purchases)支持3种商品,包括消耗型商品、非消耗型商品和订阅型商品。

  • 消耗商品:仅能使用一次,消耗使用后即刻失效,需再次购买。
  • 非消耗商品:一次性购买,永久拥有,无需消耗。
  • 订阅型商品:用户购买后在一段时间内允许访问增值功能或内容,周期结束后自动续期购买下一期的服务。

本Demo将基于这3种商品来演示华为应用内支付服务的接入过程和功能。

本demo仅演示商品购买过程,并未实际使用购买的商品。

该示例也可以通过HMS Toolkit快速启动运行,且支持各Kit一站式集成,并提供远程真机免费调测等功能。

开发准备

  1. 检查Android Studio开发环境是否准备就绪。如果是,则使用Android Studio打开示例代码工程路径下的build.gradle文件。
  2. 在AppGallery Connect中创建应用并配置应用信息。target=https%3A%2F%2Fdeveloper.huawei.com%2Fconsumer%2Fcn%2Fdoc%2Fdevelopment%2FHMSCore-Guides%2Fconfig-agc-0000001050033072)。
  3. 在AppGallery Connect中添加商品信息。
  4. 在Android Studio中导入demo,再进行构建。
  5. 配置示例代码:
    • 在AppGallery Connect中下载应用的agconnect-services.json文件,把该文件添加至本demo的应用根目录(app)中。
    • 添加证书文件,在应用级build.gradle文件中添加配置。
    • 修改示例工程中应用级build.gradle文件中的applicationId为您自己的应用包名。
    • 将CipherUtil类中的PUBLIC_KEY替换为创建应用的公钥。获取公钥详情,参考查询支付服务信息。
    • 将本demo中的商品替换为你的商品。
  6. 在Android设备或模拟机上运行该示例代码。

环境要求

  • JDK 1.8及以上版本
  • 安装Android Studio 3.6.1及以上版本

运行结果

Demo运行后,会出现如下页面。

demo home page

购买消耗型商品

以游戏中的 gem ,演示消耗型商品购买。

  1. 点击 Consumable products ,可以看到购买消耗型商品的主页。调用obtainProductInfo接口,获取此类商品的详细信息。
    consumable demo page
  2. 点击 5 gems ,Demo会调用createPurchaseIntent接口,跳转至华为应用内支付收银台。
    consumable payment selection
  3. 付款成功后,Demo会增加用户的钻石数量,然后调用consumeOwnedPurchase接口,通知华为应用内支付服务端用户已完成消耗。
    gem purchase result
    注意:如果付款成功后出现异常(如网络错误或流程终止),Demo将在您重新进入页面时尝试更新钻石数量。(调用obtainOwnedPurchases接口,获取已购消耗型商品的购买数据。调用consumeOwnedPurchase接口,消耗该商品。)
  4. 点击 History ,Demo会调用obtainOwnedPurchaseRecord接口,获取购买历史。
    consumable purchase history

购买非消耗型商品

Demo以hidden level商品为例,演示非消耗型商品购买。

  1. 点击 Non-consumable product ,可以看到购买非消耗型商品的主页。调用obtainOwnedPurchases接口,获取非消耗型商品。
  2. 如果你还没购买 hidden level ,可以看到如下图所示页面。点 hidden level ,开始购买,步骤和购买消耗型商品一致。
    hidden level not purchased
  3. 购买成功后(或之前已购买hidden level商品),Demo将显示hidden level已经购买。
    hidden level have been purchased

鸿蒙开发知识更新在[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]前往参考。

OpenHarmony高级技能.png

购买订阅型商品

Demo以Service-OneService-Two为订阅群组进行演示,每个订阅组包含2个订阅选项。

  1. 点击 Auto-renewable subscription ,可以看到订阅型商品的主页。调用obtainOwnedPurchase接口,获取购买的订阅商品信息。用户已订阅的商品将显示为ACTIVE。
    subscription homepage with active subscription

  2. 点击其中一个BUY按钮,Demo将调用createPurchaseIntent接口,开始购买。
    subscription payment selection
    注意:目前订阅商品付款方式仅支持支付宝。

  3. 系统将提示您授权自动扣费协议。购买成功后,华为应用内支付服务将显示购买结果。
    subscription payment selection

  4. 点击 Manage Subscription ,演示应用将跳转至订阅管理页面。该页面显示所有订阅商品,包括已过期的商品。
    subscription manage

  5. 在订阅管理页面点击 Happy Subscribe ,可以编辑订阅商品,选择同一订阅组中的其他订阅商品,或点击 UNSUBSCRIBE ,取消订阅该商品。订阅商品在到期前一直有效。
    edit subscription

    审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为
    +关注

    关注

    215

    文章

    33644

    浏览量

    247196
  • 鸿蒙
    +关注

    关注

    55

    文章

    1651

    浏览量

    42129
收藏 人收藏

    评论

    相关推荐

    labview TCP客户端

    最近在做一个labview 客户端测试小程序,服务器采用MFC编写,客户端采用TCP侦听函数,通信可以连接,数据也正确,但是服务器端检测发送判断失败,个人推测是不是
    发表于 06-30 23:15

    一个服务器,多个客户端,怎么向指定的客户端发数据

    我用labview做服务器,单片机做客户端客户端几百个,怎么区分客户端,给指定的客户发发数据
    发表于 06-01 09:26

    求助:labview服务器如何实时访问客户端

    毕设瓶颈,大佬们,怎么设计程序,服务器可以每秒访问一次客户端,读取客户端的数据?写入电子表格控件可以能插入局部变量吗?跪谢。
    发表于 05-14 10:14

    labview-TCP多客户端服务

    labview-TCP多客户端服务器一个服务器上位机,多个下位机客户端
    发表于 03-26 16:58

    如何同时开启服务器模式和客户端模式?

    如题,UCOSII或者FreeRtos下使用LWIP如何同时开启服务器模式和客户端模式,我这几天弄了下,单独跑其中一个,都好好的,但是同时跑,客户端连接上了,服务器就不行了,谁知道这要
    发表于 10-31 03:05

    TCP通信时服务端如何接收客户端的数据?

    毕设采用的是TCP协议,组员做的是下位机,C编程,WiFi模块工作处于客户端。我负责上位机,Labview使用tcp协议时服务端怎么接收客户端的数据呢? 我找到的例程都是服务端发、
    发表于 04-14 14:49

    如何使用Socket实现UDP客户端

    本教程介绍了如何利用socket 编程来实现一个 UDP 客户端,与服务器进行通信。与开发 TCP 客户端一样,我们先将 socket 编程的流程列出来,然后给出具体的实例。
    发表于 03-30 07:39

    基于Socket开发TCP传输客户端

    1 程序界面设计 TCP客户端在上位机开发中应用很广,大多数情况下,上位机软件都是作为一个TCP客户端来与PLC或其他服务器进行通信的。TCP客户端
    发表于 07-02 06:33

    Labview客户端状态获取

    求助,目前只有5积分,哪位大佬给点帮助:采用TCP传输数据,一个服务器多个客户端,通过一个按钮控制,点动按钮将服务器中的一个文件发给4个客户端,目前已实现发送文件和读取连接
    发表于 11-15 15:02

    监控系统客户端服务端设计

    项目开发报告1 项目简介1.1 概述1.2 开发环境1.3 其他支持1.4 应用界面1.4.1 服务器端1.4.2 客户端1.5 程序使用2 项目
    发表于 12-21 07:02

    使用Arduino编程和esp32的开发板,多个客户端连接服务器时怎么判断是哪个客户端发送过来的数据?

    我使用的是Arduino编程和esp32的开发板,当多个客户端连接服务器的时候,服务器怎么判断是哪个客户端发送过来的数据
    发表于 05-23 15:39

    通讯猫MQTT服务器在线客户端的问题

    我在网上找一个通讯猫MQTT服务器在线客户端。我有点糊涂,到底是服务器,还是客户端。可以连上,也可以发数据,就是不知道跟谁连。我从上面下了个WIN32
    发表于 11-19 12:17

    当WiFi信号变低时,服务器和客户端之间的TCP通信丢失,如何使客户端重新连接?

    大家好, 当 WiFi 信号变低时,服务器和客户端之间的 TCP 通信丢失,比如超过 -80dBm。一旦客户端断开连接,它就无法重新连接并正常进行通信。如何让客户端在这里重新连接。
    发表于 05-15 07:31

    Delphi教程之数据查询Web服务客户端开发数据查询Web服务

    Delphi教程之数据查询Web服务客户端开发数据查询Web服务客户端开发,很好的Delphi资
    发表于 04-11 15:59 5次下载

    华为应用内支付客户端开发案例

    本章节主要介绍接入华为应用内支付客户端开发步骤,帮助您快速了解华为支付提供的
    发表于 04-13 09:51 4次下载