【发布时间】:2023-02-06 09:40:07
【问题描述】:
我使用 nestjs 并且正在尝试实施 Google IAP。
通过google real-time developer notification向服务器发送订阅数据。
在这个过程中,谷歌告诉我解码base64数据。
对于 ios,我可以通过 app-store-server-api api 轻松解码它。
谷歌的话,不知道有没有这样的api。
【问题讨论】:
标签: in-app-purchase
我使用 nestjs 并且正在尝试实施 Google IAP。
通过google real-time developer notification向服务器发送订阅数据。
在这个过程中,谷歌告诉我解码base64数据。
对于 ios,我可以通过 app-store-server-api api 轻松解码它。
谷歌的话,不知道有没有这样的api。
【问题讨论】:
标签: in-app-purchase
您可以从 base64 字符串创建一个缓冲区,然后解析为 JSON,这将允许您从 RTDN 访问数据:
举个例子:
const b64string = body.message.data;
try {
const bufferString = Buffer.from(b64string, 'base64').toString();
data = JSON.parse(bufferString);
} catch (err) {
console.log('ERROR parse base64: ', err);
}
您应该能够访问 purchaseToken,它可用于通过 android 发布者 API 验证购买。您可以使用 Google Android Publisher npm 包来访问 API:
https://www.npmjs.com/package/@googleapis/androidpublisher
访问订阅的示例(您需要先设置身份验证并初始化客户端):
const subscriptionResponse = await androidPublisherClient.purchases.subscriptionsv2.get({
packageName: ANDROID_BUNDLE_ID,
token: data.subscriptionNotification.purchaseToken
});
【讨论】: