#HarmonyOS NEXT体验官#梅科尔工作室HOS-IAP Kit赋能应用内数字产品购买(零基础入门) 原创 精华
0. 开发环境:
DevEcoStudio版本:DevEco Studio NEXT Developer Beta1
SDK版本:5.0.3.403
API版本:12
1. IAP Kit概述:
当我们拥有一个idea希望为自己的APP增加一些虚拟增值服务,我们可通过IAP Kit为用户提供购买入口,为用户提供可选的增值服务,同时带来一定收益。
本文将带大家从零开始实现IAP Kit应用内支付功能,实现在我们的调试设备上拉起应用内支付。
官方简介:
IAP Kit(应用内支付服务)为开发者提供便捷的应用内支付体验和简便的接入流程,让开发者聚焦应用本身的业务能力,助力开发者商业变现。开发者应用可通过使用IAP Kit提供的系统级支付API快速启动IAP收银台,即可实现应用内支付。
通过应用内支付服务,用户可以在开发者应用内购买各种类型的虚拟商品,包括消耗型商品、非消耗型商品和自动续期订阅商品。
本文应用
基于IPA Kit本项目实现应用内虚拟碳配额购买,在应用内进行数字产品的兑换。
2. 开发流程
2.1 开发准备
在进行IAP Kit开发之前我们需要进行一定开发准备,AppGallery Connect平台(后续简称AGC平台)配置、应用配置、商品信息配置;在这些之前需要一些配置:
我们的IAP Kit支付功能开发需要添加公钥指纹
签名证书指纹用于校验应用的真实性,一般情况下我们进行开发烧录测试可能更多使用快捷方便的自动签名,如果我们要使用IAP Kit(应用内支付)就需要手动添加公钥指纹,来进行我们应用真实性的校验。
因此:本文第一步的准备工作为手动签名配置
2.1.1 手动签名
完成手动签名配置我们需要准备共3个文件:密钥(.p12)文件、调试证书(.cer)文件、调试Profile(.p7b)文件。
1. 密钥(.p12)文件准备:
密钥文件准备需要用到DevEcoStudio:
选择生成私钥和证书请求文件
选择路径,命名并设置密码
填写别名:注意此别名需要记录,后续在签名时输入密钥的别名信息,与生成密钥和证书请求文件中填写的别名需要保持一致。
以下至少1项不为空(姓名、组织单位等一些基本信息)
到这里我们的密钥(.p12)文件已完成准备,继续点击NEXT选项
生成(.csr)文件(备用进行.cer调试证书文件)
2. 调试证书(.cer)文件准备:
调试证书与调试Profile文件的准备我们需要借助AGC平台
进入AGC平台证书、APP IID和Profile界面,选择证书:
点击新增证书,选择我们上一步生成的证书请求文件(CSR),点击提交完成我们的调试证书增加。
下载获得我们的调试证书(.cer)文件。
3. 调试Profile(.p7b)文件准备:
获得调试Profile(.p7b)文件需要用到我们上一步生成的调试证书(.cer)文件,本文进行功能调试而非应用发布,因此还需要进行调试设备选择,首先我们需要完成调试设备注册:
注册调试设备我们需要知晓设备的UDID(此处我们以手机设备为例):
(1)打开“设置 > 关于手机”,多次点击版本号,打开开发者模式。
(2)打开“设置 > 系统和更新”,在最下方找到“开发人员选项”,打开“USB调试”开关。
(3)使用PC连接手机后,打开命令行工具(PowerShell),进入HDC目录(一般为:HarmonyOS SDK安装目录/toolchains/{版本号}),输入hdc shell bm get --udid命令,获取设备的UDID。
复制保存设备UDID备用
AGC平台设备添加:
点击右上角的“添加设备”,在弹出窗口填写设备信息,完成后点击“提交”。
生成调试Profile(.p7b)文件
选择我们提前准备好的调整证书和注册设备,点击添加,完成调试Profile(.p7b)文件
调试Profile申请成功后,“管理HAP Provision Profile”页面展示Profile信息。点击“下载”,将生成的Profile保存至本地,供后续签名使用。
至此我们完成了3大手动签名文件(密钥(.p12)文件、调试证书(.cer)文件、调试Profile(.p7b)文件)的准备。
2.1.2 基础配置
配置AppGallery Connect
开启应用内支付首先需要在华为开发者联盟完成商户服务开通,提供:收款银行卡信息(开户行国家、开户银行、开户行支行、开户行号、开户名等)、税务信息(税务地点、税务注册地址、税票类型)、联系人(市场、财务、法务、业务合作)
申请后需要等待审核通过
完成商户开通后,我们可以在我的项目“API管理”页签中打开应用内支付
选择项目-应用,在左侧导航栏选择“盈利 > 应用内支付服务”,点击“设置”,开启应用内支付。设置完成后页面会生成“应用配置”、“密钥配置”页签,后续可在此页面配置相关支付服务参数。
配置应用
在“AppScope/app.json5”文件的包名需要和我们在AGC平台开启应用内支付应用的包名相同
随后需要在工程“entry/src/main/module.json5”的module节点增加如下client_id和app_id属性配置,配置应用的身份信息:
配置商品信息
在AGC平台根据项目开发需求,录入商品信息(包括商品ID、商品类型、不同国家的商品价格、商品名称等),在客户端调用购买接口时,需传入此处配置的商品ID和商品类型。
3. IAP Kit接入
在完成以上应用准备与基础配置后,我们进入项目工程进行IAP Kit接口调用
导包:
import { iap } from '@kit.IAPKit';
import { common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
判断所在服务地是否在IAP Kit支持结算的国家/地区:
queryEnvironmentStatus() {
const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
iap.queryEnvironmentStatus(context).then(() => {
// 请求成功
console.info('Succeeded in querying environment status.');
}).catch((err: BusinessError) => {
// 请求失败
console.error(`Failed to query environment status. Code is ${err.code}, message is ${err.message}`);
});
}
函数定义:
//发起购买
create(){
const parameter: iap.PurchaseParameter = {
// XXXX为AGC平台配置商品ID
productId: 'XXXX',
// iap.ProductType.CONSUMABLE:消耗型商品;
// iap.ProductType.NONCONSUMABLE:非消耗型商品;
productType: iap.ProductType.CONSUMABLE,
}
//请求成功或失败情况返回
iap.createPurchase(getContext(this) as common.UIAbilityContext, parameter)
.then((data: iap.CreatePurchaseResult) => {
// 请求成功
}).catch((err: BusinessError) => {
// 请求失败
});
}
触发调用函数:
...
.onClick(()=>{
...
this.create()
...
})
...
项目展示效果:
总结
本文从手动签名文件准备开始,到基础环境配置与代码接入,介绍IAP Kit的入门,完成应用内支付接入,实现购买条件的查询与购买发起;还需要进行购买完成的权益发放与验证等开发。
通过AGC平台的配置与一系列代码设计,我们在鸿蒙系统上实现了应用内支付功能的接入,希望可以为各位开发者带来一些帮助,在未来让我们共筑更好鸿蒙生态!
很有帮助,感谢!
学到了