-
通用订阅
1.1.接收Google的返回JSONmessage: { attributes: { key: value }, data: eyAidmVyc2lvbiI6IHN0cmluZywgInBhY2th }
{ version: 1.0, packageName: com.some.thing, eventTimeMillis: 1503349566168, subscriptionNotification: { version: 1.0, notificationType: 4, purchaseToken: “PURCHASE_TOKEN”, “subscriptionId”: ”
参数名 说明 - version: 此通知的版本。初始版本为1.0,与其他版本字段不同。 - packageName: 与此通知相关的应用的软件包名称(例如com.some.thing)。 - eventTimeMillis: 事件发生的时间戳,以毫秒数表示,从公元纪年开始计算。 - subscriptionNotification: 与订阅相关,并且包含与购买交易相关的其他信息。 - oneTimeProductNotification: 与一次性购买相关,并且包含与购买交易相关的其他信息。 - testNotification: 与测试发布相关。这些通知仅通过Google Play管理中心发送。
subscriptionNotification说明
参数名 说明
version:此通知的版本。初始值为“1.0”。与其他版本字段不同。
notificationType:订阅的 notificationType 可以参考下表:
| notificationType 值 | 描述 | |-------------------|------| | 1 | 类型1 | | 2 | 类型2 | | 3 | 类型3 | purchaseToken:购买订阅时向用户设备提供的令牌
subscriptionId:所购买订阅的 ID(例如“monthly001”)关于“notificationType”的解释
SUBSCRIPTION_RECOVERED - 订阅已从账户保留状态恢复。
SUBSCRIPTION_RENEWED - 已成功续订了当前有效的订阅。
SUBSCRIPTION_CANCELED - 订阅已被用户自愿或非自愿地取消。如果是用户主动取消,将在取消时发送通知。
SUBSCRIPTION_PURCHASED - 已购买新的订阅。
SUBSCRIPTION_ON_HOLD - 订阅已进入账户保留状态(如果启用)。
SUBSCRIPTION_IN_GRACE_PERIOD - 订阅已进入宽限期(如果启用)。
SUBSCRIPTION_RES1.3. 根据解密后的内容,使用Google接口进行查询校验并发货(关键参数expiryTimeMillis)。
根据解密后的内容,使用Google接口进行校验。
Google文档地址:
请求域名(Get/form):https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}
返回参数
resource: { SubscriptionPurchase: object }, kind: string, startTimeMillis: string, expiryTimeMillis: string, autoResumeTimeMillis: string, autoRenewing: boolean, priceCurrencyCode: string, priceAmountMicros: string, introductoryPriceInfo:{ IntroductoryPriceInfo }, countryCode: string, developerPayload: string, paymentState: integer, cancelReason: integer, userCancellationTimeMillis: string, cancelSurveyResult:{ object }
https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/subscriptions/{subscriptionId}/tokens/{token}:acknowledge
-
一次性订阅商品(消耗型商品缓慢支付)
说明1. 当购买消耗型商品时,建议选择较慢的支付方式,这样Google服务端将会通过一次性订阅的回调进行处理。 2. Google服务端会以input/json的方式回调到预先配置好的地址。 3. 我们的服务端在接收到Google回调后,将对其进行校验并发货,并同时调用服务端消耗接口。
2.1.Google后台相关配置
1. 在Google后台(https://console.developers.google.com/apis)上创建主题。选择应用,然后在左侧菜单中选择Pub/Sub,接着点击创建主题。 2. 为刚刚新建的主题添加主账号。选择Google服务器作为推送消息服务商([email protected])。点击刚才新建的主题,在网页右侧找到添加主账号按钮。 3. 在新建的主题下方添加...
2.2. 接收并解析处理 Google 服务器回调的 base64 编码数据
1. 使用 input/json 方式接收 Google 服务器回调的 JSON 数据message: { data: eyJ2ZXJzaW9uIjoiMS4wIiwicGFja2FnZU5hbWUiOiJjb20uZGh0ei5maWdodGluZy50eiIsImV2ZW50VGltZU1pbGxpcyI6IjE2MzYwOTY3ODA3MTAiLCJvbmVUaW1lUHJvZHVjdE5vdGlmaWNhdGlvbiI6eyJ2ZXJzaW9uIjoiMS4wIiwibm90aWZpY2F0aW9uVHlwZSI6MSwicHVyY2hhc2VUb2tlbiI6ImdqZ2ptam1sYWNnYWtnZWNrZm1qaGhubi5BTy1KMU93bk9tWGc0VTg
{ version: 1.0, packageName: com.dhtz.fighting.tz, eventTimeMillis: 1636098148511, oneTimeProductNotification: { version: } } ```
请注意,以下是改写后的文本: 使用访问令牌 {access_token},通过以下链接可以获取特定应用程序包名(packageName)下某个产品(productId)的购买凭证(purchaseToken):https://androidpublisher.googleapis.com/androidpublisher/v3/applications/packageName/purchases/products/{productId}/tokens/{purchaseToken}?access_token={access_token}
查询返回体
purchaseTimeMillis: 1636684861095, //以毫秒为单位购买产品的时间 purchaseState: 0, //订单的购买状态,0(已购买)1(取消) consumptionState: 0, developerPayload: , //开发人员指定的字符串,其中包含有关订单的补充信息 orderId: xxxxx, //与购买应用内商品关联的订单 ID
请注意,以下是对给定段落的修改: https://androidpublisher.googleapis.com/androidpublisher/v3/
applications/{packageName}/purchases/products/{productId}/tokens/{purchaseToken}:acknowledge?access_token={access_token} 修改后的版本如下: 请注意,以下是对给定段落的修改: https://androidpublisher.googleapis.com/androidpublisher/v3/
applications/{packageName}/purchases/products/{productId}/tokens/{purchaseToken}:acknowledge?access_token={access_token}如果响应结果为空,则表示消耗成功。您可以再次请求2.3接口来查看acknowledgementState的值,如果为1,则表示消耗成功。1
凡是请求googleAPI响应返回401错误为用户验证错误,建议在api最后加上access_token参数(此参数为用户的验证令牌,获取方法参考google官方文档) ↩︎
还木有评论哦,快来抢沙发吧~