华为应用内支付服务服务端示例代码

目录

简介

示例代码里包含华为应用内支付服务服务端的接口,供开发者参考或使用。示例代码包如下。

AtDemo:AccessToken的示例代码。每个方法可以独立运行。

OrderService:OrderService的示例代码。每个方法可以独立运行。

SubscriptionService:SubscriptionService的示例代码。每个方法可以独立运行。

notification:notification的示例代码。每个方法可以独立运行。

安装

使用示例代码前,确认是否已安装Java环境。解压示例代码包。

将解压文件夹中的代码包拷贝到JAVAPATH指定路径下的工程目录中。刷新该项目,确保文件成功复制到目标目录。

环境要求

建议使用JDK 1.8及以上版本。

配置

为实现示例中的功能,开发者需要在AtDemo.java文件、OrderService.java文件、SubscriptionService.java文件和AppServer.java文件中配置相关参数。

AtDemo.java中的参数说明如下:

clientId:客户端ID,从应用信息中获取。

clientSecret:应用的安全接入键,从应用信息中获取。

tokenUrl:华为OAuth2.0服务获取token的地址,详见获取应用级AT。

Notification目录下的AppServer.java文件中的参数如下。

PUBLIC_KEY:RSA公钥。

首先要明确accountFlag的含义。如果InappPurchaseData中的accountFlag值为1,则表示该账户属于电信运营商(TOBTOC_SITE_URL),若该值不为1,则属于华为(TOC_SITE_URL)。对于OrderService和SubscriptionService,您需要选择合适的站点。TOC_SITE_URL:在不同的站点有不同的地址,开发者应选择接入最近的站点。TOBTOC_SITE_URL:电信运营商的站点。

示例代码

示例代码中,每个方法都调用了华为应用内支付服务服务器的接口。所用方法如下。

1). AtDemo: getAppAT()

该方法用于获取应用级AccessToken。

代码路径:src/main/java/com/example/demo/AtDemo.java

2). OrderService: verifyToken()

该方法用于校验支付结果中的purchaseToken,华为支付服务器确认支付结果的准确性。

地址:{rootUrl}/applications/purchases/tokens/verify。rootUrl在不同的站点有不同的地址,开发者应选择接入可访问的最近的Order服务地址。

代码路径:src/main/java/com/example/demo/OrderService.java

3). OrderService: cancelledListPurchase()

该方法用于分页查询已取消或已退款的购买信息。

地址:{rootUrl}/applications/{apiVersion}/purchases/cancelledList。rootUrl在不同的站点有不同的地址,开发者应选择接入可访问的最近的Order服务地址。

代码路径:src/main/java/com/example/demo/OrderService.java

4). SubscriptionService: getSubscription()

该方法用于校验已购订阅商品的信息,如获取其有效期、状态等。

地址:{rootUrl}/sub/applications/{apiVersion}/purchases/get。rootUrl在不同的站点有不同的地址,开发者应选择接入可访问的最近的Subscription服务地址。

代码路径:src/main/java/com/example/demo/SubscriptionService.java

5). SubscriptionService: stopSubscription()

该方法用于取消已经订阅的商品,商品在有效期内仍然有效,但后续的续订会终止。

地址:{rootUrl}/sub/applications/{apiVersion}/purchases/stop。rootUrl在不同的站点有不同的地址,开发者应选择接入可访问的最近的Subscription服务地址。

代码路径:src/main/java/com/example/demo/SubscriptionService.java

6). SubscriptionService: delaySubscription()

该方法用于为用户续订订阅产品,推迟订阅者的下一个结算日期。

地址:{rootUrl}/sub/applications/{apiVersion}/purchases/delay,rootUrl在不同的站点有不同的地址,开发者应选择接入可访问的最近的Subscription服务地址。

代码路径:src/main/java/com/example/demo/SubscriptionService.java

7). SubscriptionService: returnFeeSubscription()

该方法用于将最新一次订阅退款给用户,不会取消订阅,在订阅到期之前一直有效,后续订阅也可正常进行。

地址:{rootUrl}/sub/applications/{apiVersion}/purchases/returnFee。rootUrl在不同的站点有不同的地址,开发者应选择接入可访问的最近的Subscription服务地址。

代码路径:src/main/java/com/example/demo/SubscriptionService.java

8). SubscriptionService: withdrawSubscription()

该方法用于取消订阅,相当于执行returnFeeSubscription方法,订阅商品会立即取消,同时会终止后续续订。

地址:{rootUrl}/sub/applications/{apiVersion}/purchases/withdrawal。rootUrl在不同的站点有不同的地址,开发者应选择接入可访问的最近的Subscription服务地址。

代码路径:src/main/java/com/example/demo/SubscriptionService.java

9). AppServer: dealNotification()

该方法用于处理订阅事件通知。

信息参数从订阅事件通知中获取。

代码路径:src/main/java/com/example/demo/notification/AppServer.java

10). OrderService: confirmPurchase()

商品发货后,调用该方法确认购买。

地址:{rootUrl}/applications/{apiVersion}/purchases/confirm。rootUrl在不同的站点有不同的地址,开发者应选择接入可访问的最近的Order服务地址。

代码路径:OrderService.java

技术支持

如果您对HMS Core还处于评估阶段,可在Reddit社区获取关于HMS Core的最新讯息,并与其他开发者交流见解。

如果您对使用HMS示例代码有疑问,请尝试:

开发过程遇到问题上Stack Overflow,在huawei-mobile-services标签下提问,有华为研发专家在线一对一解决您的问题。

到华为开发者论坛 HMS Core板块与其他开发者进行交流。

如果您在尝试示例代码中遇到问题,请向仓库提交issue,也欢迎您提交Pull Request。

授权许可

华为应用内支付服务服务端示例代码经过Apache License 2.0授权许可。