@mathrunet/masamune 2.2.12 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/dist/functions/consumable_verify_android.js +21 -23
- package/dist/functions/consumable_verify_android.js.map +1 -1
- package/dist/functions/nonconsumable_verify_android.js +21 -23
- package/dist/functions/nonconsumable_verify_android.js.map +1 -1
- package/dist/functions/purchase_webhook_android.js +23 -26
- package/dist/functions/purchase_webhook_android.js.map +1 -1
- package/dist/functions/subscription_verify_android.js +22 -24
- package/dist/functions/subscription_verify_android.js.map +1 -1
- package/dist/lib/call_process_function_base.d.ts +1 -6
- package/dist/lib/call_process_function_base.js +2 -2
- package/dist/lib/call_process_function_base.js.map +1 -1
- package/dist/lib/request_process_function_base.d.ts +1 -6
- package/dist/lib/request_process_function_base.js +2 -2
- package/dist/lib/request_process_function_base.js.map +1 -1
- package/dist/lib/schedule_process_function_base.d.ts +1 -6
- package/dist/lib/schedule_process_function_base.js +2 -2
- package/dist/lib/schedule_process_function_base.js.map +1 -1
- package/dist/lib/verify_android.d.ts +11 -17
- package/dist/lib/verify_android.js +44 -42
- package/dist/lib/verify_android.js.map +1 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
# [2.3.0](https://github.com/mathrunet/node_masamune/compare/v2.2.13...v2.3.0) (2024-02-14)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### feat
|
|
5
|
+
|
|
6
|
+
* Changed Android receipt verification to authentication by service account. ([c7b92f3](https://github.com/mathrunet/node_masamune/commit/c7b92f371b2d9e938ea25b4e0f3e268a894e169e))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## [2.2.13](https://github.com/mathrunet/node_masamune/compare/v2.2.12...v2.2.13) (2024-02-14)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### fix
|
|
14
|
+
|
|
15
|
+
* Set initial options. ([96558ec](https://github.com/mathrunet/node_masamune/commit/96558ecc35f4577b3c83f8069684efb46beb0432))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
1
19
|
## [2.2.12](https://github.com/mathrunet/node_masamune/compare/v2.2.11...v2.2.12) (2024-02-14)
|
|
2
20
|
|
|
3
21
|
|
|
@@ -40,36 +40,35 @@ const updater = __importStar(require("../lib/update_wallet"));
|
|
|
40
40
|
*
|
|
41
41
|
* 消費型のアプリ内課金を行います。[path]に指定したドキュメント内のフィールドの値を[value]に加算します。
|
|
42
42
|
*
|
|
43
|
-
* @param process.env.
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* [android_auth_code]にアクセスすることで取得できるリフレッシュトークンを記述します。
|
|
47
|
-
*
|
|
48
|
-
* @param process.env.PURCHASE_ANDROID_CLIENTID
|
|
49
|
-
* Google's OAuth 2.0 client ID.
|
|
43
|
+
* @param process.env.PURCHASE_ANDROID_SERVICEACCOUNT_EMAIL
|
|
44
|
+
* The email address of your Google service account.
|
|
50
45
|
* Create an OAuth consent screen from the URL below.
|
|
51
46
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
52
|
-
*
|
|
53
|
-
* https://console.cloud.google.com/
|
|
47
|
+
* It is then created from the service account.
|
|
48
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
54
49
|
*
|
|
55
|
-
* Google
|
|
50
|
+
* Googleのサービスアカウントのメールアドレス。
|
|
56
51
|
* 下記のURLからOAuthの同意画面を作成します。
|
|
57
52
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
58
|
-
*
|
|
59
|
-
* https://console.cloud.google.com/
|
|
53
|
+
* その後、サービスアカウントから作成します。
|
|
54
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
60
55
|
*
|
|
61
|
-
* @param process.env.
|
|
62
|
-
*
|
|
56
|
+
* @param process.env.PURCHASE_ANDROID_SERVICEACCOUNT_PRIVATE_KEY
|
|
57
|
+
* A private key for your Google service account.
|
|
63
58
|
* Create an OAuth consent screen from the URL below.
|
|
64
59
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
65
|
-
*
|
|
66
|
-
* https://console.cloud.google.com/
|
|
60
|
+
* It is then created from the service account.
|
|
61
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
62
|
+
* After creating a service account, create a key in Json format from the Key tab.
|
|
63
|
+
* The private key is described there.
|
|
67
64
|
*
|
|
68
|
-
* Google
|
|
65
|
+
* Googleのサービスアカウントのプライベートキー。
|
|
69
66
|
* 下記のURLからOAuthの同意画面を作成します。
|
|
70
67
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
71
|
-
*
|
|
72
|
-
* https://console.cloud.google.com/
|
|
68
|
+
* その後、サービスアカウントから作成します。
|
|
69
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
70
|
+
* サービスアカウント作成後、キーのタブからJson形式でキーを作成します。
|
|
71
|
+
* プライベートキーはそこに記述されています。
|
|
73
72
|
*
|
|
74
73
|
* @param path
|
|
75
74
|
* The path, including the key, of the field in the document that stores the in-app wallet information.
|
|
@@ -106,14 +105,13 @@ module.exports = (regions, options, data) => {
|
|
|
106
105
|
concurrency: options.concurrency,
|
|
107
106
|
maxInstances: options.maxInstances,
|
|
108
107
|
}, (query) => __awaiter(void 0, void 0, void 0, function* () {
|
|
109
|
-
var _b, _c
|
|
108
|
+
var _b, _c;
|
|
110
109
|
try {
|
|
111
110
|
/* ==== Android検証ここから ==== */
|
|
112
111
|
const res = yield verifier.verifyAndroid({
|
|
113
112
|
type: "products",
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
refreshToken: (_d = process.env.PURCHASE_ANDROID_REFRESHTOKEN) !== null && _d !== void 0 ? _d : "",
|
|
113
|
+
serviceAccountEmail: (_b = process.env.PURCHASE_ANDROID_SERVICEACCOUNT_EMAIL) !== null && _b !== void 0 ? _b : "",
|
|
114
|
+
serviceAccountPrivateKey: (_c = process.env.PURCHASE_ANDROID_SERVICEACCOUNT_PRIVATE_KEY) !== null && _c !== void 0 ? _c : "",
|
|
117
115
|
packageName: query.data.packageName,
|
|
118
116
|
productId: query.data.productId,
|
|
119
117
|
purchaseToken: query.data.purchaseToken,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumable_verify_android.js","sourceRoot":"","sources":["../../src/functions/consumable_verify_android.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,gEAAkD;AAClD,8DAAgD;AAGhD
|
|
1
|
+
{"version":3,"file":"consumable_verify_android.js","sourceRoot":"","sources":["../../src/functions/consumable_verify_android.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,gEAAkD;AAClD,8DAAgD;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,CAAC,OAAO,GAAG,CACb,OAAiB,EACjB,OAA6B,EAC7B,IAA+B,EACjC,EAAE;;IAAC,OAAA,SAAS,CAAC,KAAK,CAAC,MAAM,CACvB;QACI,MAAM,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,OAAO;QACjC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY;KACrC,EACD,CAAO,KAAK,EAAE,EAAE;;QACZ,IAAI;YACA,6BAA6B;YAC7B,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC;gBACrC,IAAI,EAAE,UAAU;gBAChB,mBAAmB,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,qCAAqC,mCAAI,EAAE;gBAC5E,wBAAwB,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,2CAA2C,mCAAI,EAAE;gBACvF,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW;gBACnC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;gBAC/B,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;aAC1C,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;gBAC5B,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;aAC/E;YACD,6BAA6B;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE;gBACvC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAChC,kBAAkB,EAAE,8CAA8C,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CACjH,CAAC;gBACF,OAAO,GAAG,CAAC;aACd;YACD,gCAAgC;YAChC,MAAM,OAAO,CAAC,YAAY,CAAC;gBACvB,uBAAuB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;gBACxC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;aAC1B,CAAC,CAAC;YACH,gCAAgC;YAChC,OAAO,GAAG,CAAC;SACd;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,GAAG,CAAC;SACb;IACL,CAAC,CAAA,CACJ,CAAA;CAAA,CAAC"}
|
|
@@ -40,36 +40,35 @@ const updater = __importStar(require("../lib/update_unlock"));
|
|
|
40
40
|
*
|
|
41
41
|
* 非消費型のアプリ内課金を行います。[path]に指定したドキュメント内のフィールドの値を`true`にすることでアンロックを行います。
|
|
42
42
|
*
|
|
43
|
-
* @param process.env.
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* [android_auth_code]にアクセスすることで取得できるリフレッシュトークンを記述します。
|
|
47
|
-
*
|
|
48
|
-
* @param process.env.PURCHASE_ANDROID_CLIENTID
|
|
49
|
-
* Google's OAuth 2.0 client ID.
|
|
43
|
+
* @param process.env.PURCHASE_ANDROID_SERVICEACCOUNT_EMAIL
|
|
44
|
+
* The email address of your Google service account.
|
|
50
45
|
* Create an OAuth consent screen from the URL below.
|
|
51
46
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
52
|
-
*
|
|
53
|
-
* https://console.cloud.google.com/
|
|
47
|
+
* It is then created from the service account.
|
|
48
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
54
49
|
*
|
|
55
|
-
* Google
|
|
50
|
+
* Googleのサービスアカウントのメールアドレス。
|
|
56
51
|
* 下記のURLからOAuthの同意画面を作成します。
|
|
57
52
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
58
|
-
*
|
|
59
|
-
* https://console.cloud.google.com/
|
|
53
|
+
* その後、サービスアカウントから作成します。
|
|
54
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
60
55
|
*
|
|
61
|
-
* @param process.env.
|
|
62
|
-
*
|
|
56
|
+
* @param process.env.PURCHASE_ANDROID_SERVICEACCOUNT_PRIVATE_KEY
|
|
57
|
+
* A private key for your Google service account.
|
|
63
58
|
* Create an OAuth consent screen from the URL below.
|
|
64
59
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
65
|
-
*
|
|
66
|
-
* https://console.cloud.google.com/
|
|
60
|
+
* It is then created from the service account.
|
|
61
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
62
|
+
* After creating a service account, create a key in Json format from the Key tab.
|
|
63
|
+
* The private key is described there.
|
|
67
64
|
*
|
|
68
|
-
* Google
|
|
65
|
+
* Googleのサービスアカウントのプライベートキー。
|
|
69
66
|
* 下記のURLからOAuthの同意画面を作成します。
|
|
70
67
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
71
|
-
*
|
|
72
|
-
* https://console.cloud.google.com/
|
|
68
|
+
* その後、サービスアカウントから作成します。
|
|
69
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
70
|
+
* サービスアカウント作成後、キーのタブからJson形式でキーを作成します。
|
|
71
|
+
* プライベートキーはそこに記述されています。
|
|
73
72
|
*
|
|
74
73
|
* @param path
|
|
75
74
|
* The path, including the key, of the field in the document where the unlock information is to be stored.
|
|
@@ -101,14 +100,13 @@ module.exports = (regions, options, data) => {
|
|
|
101
100
|
concurrency: options.concurrency,
|
|
102
101
|
maxInstances: options.maxInstances,
|
|
103
102
|
}, (query) => __awaiter(void 0, void 0, void 0, function* () {
|
|
104
|
-
var _b, _c
|
|
103
|
+
var _b, _c;
|
|
105
104
|
try {
|
|
106
105
|
/* ==== Android検証ここから ==== */
|
|
107
106
|
const res = yield verifier.verifyAndroid({
|
|
108
107
|
type: "products",
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
refreshToken: (_d = process.env.PURCHASE_ANDROID_REFRESHTOKEN) !== null && _d !== void 0 ? _d : "",
|
|
108
|
+
serviceAccountEmail: (_b = process.env.PURCHASE_ANDROID_SERVICEACCOUNT_EMAIL) !== null && _b !== void 0 ? _b : "",
|
|
109
|
+
serviceAccountPrivateKey: (_c = process.env.PURCHASE_ANDROID_SERVICEACCOUNT_PRIVATE_KEY) !== null && _c !== void 0 ? _c : "",
|
|
112
110
|
packageName: query.data.packageName,
|
|
113
111
|
productId: query.data.productId,
|
|
114
112
|
purchaseToken: query.data.purchaseToken
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nonconsumable_verify_android.js","sourceRoot":"","sources":["../../src/functions/nonconsumable_verify_android.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,gEAAkD;AAClD,8DAAgD;AAGhD
|
|
1
|
+
{"version":3,"file":"nonconsumable_verify_android.js","sourceRoot":"","sources":["../../src/functions/nonconsumable_verify_android.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,gEAAkD;AAClD,8DAAgD;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,CAAC,OAAO,GAAG,CACb,OAAiB,EACjB,OAA6B,EAC7B,IAA+B,EACjC,EAAE;;IAAC,OAAA,SAAS,CAAC,KAAK,CAAC,MAAM,CACvB;QACI,MAAM,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,OAAO;QACjC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,OAAO,CAAC,YAAY;KACrC,EACD,CAAO,KAAK,EAAE,EAAE;;QACZ,IAAI;YACA,6BAA6B;YAC7B,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC;gBACrC,IAAI,EAAE,UAAU;gBAChB,mBAAmB,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,qCAAqC,mCAAI,EAAE;gBAC5E,wBAAwB,EAAE,MAAA,OAAO,CAAC,GAAG,CAAC,2CAA2C,mCAAI,EAAE;gBACvF,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW;gBACnC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS;gBAC/B,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa;aAC1C,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;gBAC5B,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;aAC/E;YACD,6BAA6B;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;gBAClB,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAChC,kBAAkB,EAAE,8CAA8C,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CACtF,CAAC;gBACF,OAAO,GAAG,CAAC;aACd;YACD,gCAAgC;YAChC,MAAM,OAAO,CAAC,YAAY,CAAC;gBACvB,uBAAuB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;aAC3C,CAAC,CAAC;YACH,gCAAgC;YAChC,OAAO,GAAG,CAAC;SACd;QAAC,OAAO,GAAG,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,MAAM,GAAG,CAAC;SACb;IACL,CAAC,CAAA,CACJ,CAAA;CAAA,CAAC"}
|
|
@@ -41,36 +41,35 @@ const utils = __importStar(require("../lib/utils"));
|
|
|
41
41
|
*
|
|
42
42
|
* Android用のWebhookのエンドポイントです。GCPのpub/subに`purchasing`のトピックを作成しプリンシパルに「google-play-developer-notifications@system.gserviceaccount.com」を設定することで通知を受け取ることができるようになります。
|
|
43
43
|
*
|
|
44
|
-
* @param process.env.
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* [android_auth_code]にアクセスすることで取得できるリフレッシュトークンを記述します。
|
|
48
|
-
*
|
|
49
|
-
* @param process.env.PURCHASE_ANDROID_CLIENTID
|
|
50
|
-
* Google's OAuth 2.0 client ID.
|
|
44
|
+
* @param process.env.PURCHASE_ANDROID_SERVICEACCOUNT_EMAIL
|
|
45
|
+
* The email address of your Google service account.
|
|
51
46
|
* Create an OAuth consent screen from the URL below.
|
|
52
47
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
53
|
-
*
|
|
54
|
-
* https://console.cloud.google.com/
|
|
48
|
+
* It is then created from the service account.
|
|
49
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
55
50
|
*
|
|
56
|
-
* Google
|
|
51
|
+
* Googleのサービスアカウントのメールアドレス。
|
|
57
52
|
* 下記のURLからOAuthの同意画面を作成します。
|
|
58
53
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
59
|
-
*
|
|
60
|
-
* https://console.cloud.google.com/
|
|
54
|
+
* その後、サービスアカウントから作成します。
|
|
55
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
61
56
|
*
|
|
62
|
-
* @param process.env.
|
|
63
|
-
*
|
|
57
|
+
* @param process.env.PURCHASE_ANDROID_SERVICEACCOUNT_PRIVATE_KEY
|
|
58
|
+
* A private key for your Google service account.
|
|
64
59
|
* Create an OAuth consent screen from the URL below.
|
|
65
60
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
66
|
-
*
|
|
67
|
-
* https://console.cloud.google.com/
|
|
61
|
+
* It is then created from the service account.
|
|
62
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
63
|
+
* After creating a service account, create a key in Json format from the Key tab.
|
|
64
|
+
* The private key is described there.
|
|
68
65
|
*
|
|
69
|
-
* Google
|
|
66
|
+
* Googleのサービスアカウントのプライベートキー。
|
|
70
67
|
* 下記のURLからOAuthの同意画面を作成します。
|
|
71
68
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
72
|
-
*
|
|
73
|
-
* https://console.cloud.google.com/
|
|
69
|
+
* その後、サービスアカウントから作成します。
|
|
70
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
71
|
+
* サービスアカウント作成後、キーのタブからJson形式でキーを作成します。
|
|
72
|
+
* プライベートキーはそこに記述されています。
|
|
74
73
|
*
|
|
75
74
|
* @param process.env.PURCHASE_SUBSCRIPTIONPATH
|
|
76
75
|
* Describes the path to the collection of subscriptions.
|
|
@@ -95,10 +94,9 @@ module.exports = (regions, options, data) => {
|
|
|
95
94
|
if (messageBody) {
|
|
96
95
|
const firestoreInstance = admin.firestore();
|
|
97
96
|
const targetPath = process.env.PURCHASE_SUBSCRIPTIONPATH;
|
|
98
|
-
const
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
if (!androidClientId || !androidClientSecret || !androidRefreshToken || !targetPath) {
|
|
97
|
+
const androidServiceAccountEmail = process.env.PURCHASE_ANDROID_SERVICEACCOUNT_EMAIL;
|
|
98
|
+
const androidServiceAccountPrivateKey = process.env.PURCHASE_ANDROID_SERVICEACCOUNT_PRIVATE_KEY;
|
|
99
|
+
if (!androidServiceAccountEmail || !androidServiceAccountPrivateKey || !targetPath) {
|
|
102
100
|
throw new Error("The data is invalid.");
|
|
103
101
|
}
|
|
104
102
|
const { subscriptionNotification, packageName, } = messageBody;
|
|
@@ -109,9 +107,8 @@ module.exports = (regions, options, data) => {
|
|
|
109
107
|
}
|
|
110
108
|
const res = yield verifier.verifyAndroid({
|
|
111
109
|
type: "subscriptions",
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
refreshToken: androidRefreshToken,
|
|
110
|
+
serviceAccountEmail: androidServiceAccountEmail,
|
|
111
|
+
serviceAccountPrivateKey: androidServiceAccountPrivateKey,
|
|
115
112
|
packageName: packageName,
|
|
116
113
|
productId: subscriptionId,
|
|
117
114
|
purchaseToken: purchaseToken,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purchase_webhook_android.js","sourceRoot":"","sources":["../../src/functions/purchase_webhook_android.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,sDAAwC;AACxC,gEAAkD;AAClD,oDAAsC;AAGtC
|
|
1
|
+
{"version":3,"file":"purchase_webhook_android.js","sourceRoot":"","sources":["../../src/functions/purchase_webhook_android.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,36 +40,35 @@ const subscriber = __importStar(require("../lib/update_subscription"));
|
|
|
40
40
|
*
|
|
41
41
|
* サブスクリプションの検証とデータの追加を行います。
|
|
42
42
|
*
|
|
43
|
-
* @param process.env.
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* [android_auth_code]にアクセスすることで取得できるリフレッシュトークンを記述します。
|
|
47
|
-
*
|
|
48
|
-
* @param process.env.PURCHASE_ANDROID_CLIENTID
|
|
49
|
-
* Google's OAuth 2.0 client ID.
|
|
43
|
+
* @param process.env.PURCHASE_ANDROID_SERVICEACCOUNT_EMAIL
|
|
44
|
+
* The email address of your Google service account.
|
|
50
45
|
* Create an OAuth consent screen from the URL below.
|
|
51
46
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
52
|
-
*
|
|
53
|
-
* https://console.cloud.google.com/
|
|
47
|
+
* It is then created from the service account.
|
|
48
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
54
49
|
*
|
|
55
|
-
* Google
|
|
50
|
+
* Googleのサービスアカウントのメールアドレス。
|
|
56
51
|
* 下記のURLからOAuthの同意画面を作成します。
|
|
57
52
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
58
|
-
*
|
|
59
|
-
* https://console.cloud.google.com/
|
|
53
|
+
* その後、サービスアカウントから作成します。
|
|
54
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
60
55
|
*
|
|
61
|
-
* @param process.env.
|
|
62
|
-
*
|
|
56
|
+
* @param process.env.PURCHASE_ANDROID_SERVICEACCOUNT_PRIVATE_KEY
|
|
57
|
+
* A private key for your Google service account.
|
|
63
58
|
* Create an OAuth consent screen from the URL below.
|
|
64
59
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
65
|
-
*
|
|
66
|
-
* https://console.cloud.google.com/
|
|
60
|
+
* It is then created from the service account.
|
|
61
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
62
|
+
* After creating a service account, create a key in Json format from the Key tab.
|
|
63
|
+
* The private key is described there.
|
|
67
64
|
*
|
|
68
|
-
* Google
|
|
65
|
+
* Googleのサービスアカウントのプライベートキー。
|
|
69
66
|
* 下記のURLからOAuthの同意画面を作成します。
|
|
70
67
|
* https://console.cloud.google.com/apis/credentials/consent
|
|
71
|
-
*
|
|
72
|
-
* https://console.cloud.google.com/
|
|
68
|
+
* その後、サービスアカウントから作成します。
|
|
69
|
+
* https://console.cloud.google.com/iam-admin/serviceaccounts
|
|
70
|
+
* サービスアカウント作成後、キーのタブからJson形式でキーを作成します。
|
|
71
|
+
* プライベートキーはそこに記述されています。
|
|
73
72
|
*
|
|
74
73
|
* @param process.env.PURCHASE_SUBSCRIPTIONPATH
|
|
75
74
|
* Describes the path to the collection of subscriptions.
|
|
@@ -116,7 +115,7 @@ module.exports = (regions, options, data) => {
|
|
|
116
115
|
concurrency: options.concurrency,
|
|
117
116
|
maxInstances: options.maxInstances,
|
|
118
117
|
}, (query) => __awaiter(void 0, void 0, void 0, function* () {
|
|
119
|
-
var _b, _c, _d
|
|
118
|
+
var _b, _c, _d;
|
|
120
119
|
try {
|
|
121
120
|
/* ==== Android検証ここから ==== */
|
|
122
121
|
if (!query.data.userId) {
|
|
@@ -124,9 +123,8 @@ module.exports = (regions, options, data) => {
|
|
|
124
123
|
}
|
|
125
124
|
const res = yield verifier.verifyAndroid({
|
|
126
125
|
type: "subscriptions",
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
refreshToken: (_d = process.env.PURCHASE_ANDROID_REFRESHTOKEN) !== null && _d !== void 0 ? _d : "",
|
|
126
|
+
serviceAccountEmail: (_b = process.env.PURCHASE_ANDROID_SERVICEACCOUNT_EMAIL) !== null && _b !== void 0 ? _b : "",
|
|
127
|
+
serviceAccountPrivateKey: (_c = process.env.PURCHASE_ANDROID_SERVICEACCOUNT_PRIVATE_KEY) !== null && _c !== void 0 ? _c : "",
|
|
130
128
|
packageName: query.data.packageName,
|
|
131
129
|
productId: query.data.productId,
|
|
132
130
|
purchaseToken: query.data.purchaseToken,
|
|
@@ -143,7 +141,7 @@ module.exports = (regions, options, data) => {
|
|
|
143
141
|
/* ==== ここまでAndroid検証 ==== */
|
|
144
142
|
/* ==== Firestoreの更新ここから ==== */
|
|
145
143
|
yield subscriber.updateSubscription({
|
|
146
|
-
targetCollectionPath: (
|
|
144
|
+
targetCollectionPath: (_d = query.data.path) !== null && _d !== void 0 ? _d : process.env.PURCHASE_SUBSCRIPTIONPATH,
|
|
147
145
|
targetDocumentId: query.data.purchaseToken,
|
|
148
146
|
data: res,
|
|
149
147
|
additionalData: query.data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription_verify_android.js","sourceRoot":"","sources":["../../src/functions/subscription_verify_android.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,gEAAkD;AAClD,uEAAyD;AAGzD
|
|
1
|
+
{"version":3,"file":"subscription_verify_android.js","sourceRoot":"","sources":["../../src/functions/subscription_verify_android.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,12 +12,7 @@ export declare abstract class CallProcessFunctionBase extends FunctionsBase {
|
|
|
12
12
|
*
|
|
13
13
|
* FunctionsのCallメソッド実行用のFunctionのデータを定義するためのベースクラス。
|
|
14
14
|
*/
|
|
15
|
-
constructor(
|
|
16
|
-
data?: {
|
|
17
|
-
[key: string]: string;
|
|
18
|
-
};
|
|
19
|
-
options?: HttpFunctionsOptions | undefined | null;
|
|
20
|
-
});
|
|
15
|
+
constructor(options?: HttpFunctionsOptions);
|
|
21
16
|
/**
|
|
22
17
|
* Specify the actual contents of the process.
|
|
23
18
|
*
|
|
@@ -46,8 +46,8 @@ class CallProcessFunctionBase extends functions_base_1.FunctionsBase {
|
|
|
46
46
|
*
|
|
47
47
|
* FunctionsのCallメソッド実行用のFunctionのデータを定義するためのベースクラス。
|
|
48
48
|
*/
|
|
49
|
-
constructor(
|
|
50
|
-
super({
|
|
49
|
+
constructor(options = {}) {
|
|
50
|
+
super({ options: options });
|
|
51
51
|
this.data = {};
|
|
52
52
|
}
|
|
53
53
|
build(regions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"call_process_function_base.js","sourceRoot":"","sources":["../../src/lib/call_process_function_base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"call_process_function_base.js","sourceRoot":"","sources":["../../src/lib/call_process_function_base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,qDAAyF;AAGzF;;;;GAIG;AACH,MAAsB,uBAAwB,SAAQ,8BAAa;IAC/D;;;;OAIG;IACH,YAAY,UAAgC,EAAE;QAC1C,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAqBhC,SAAI,GAA8B,EAAE,CAAC;IApBrC,CAAC;IAqBD,KAAK,CAAC,OAAiB;;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAkD,CAAC;QACxE,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CACzB;YACI,MAAM,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,OAAO;YAClC,cAAc,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;YACvC,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;YACvB,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;YACnC,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;YACjC,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;SACtC,EACD,CAAO,KAAK,EAAE,EAAE;YACZ,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAA,CACJ,CAAC;IACN,CAAC;CACJ;AA7CD,0DA6CC"}
|
|
@@ -14,12 +14,7 @@ export declare abstract class RequestProcessFunctionBase extends FunctionsBase {
|
|
|
14
14
|
*
|
|
15
15
|
* HTTPリクエスト実行用のFunctionのデータを定義するためのベースクラス。
|
|
16
16
|
*/
|
|
17
|
-
constructor(
|
|
18
|
-
data?: {
|
|
19
|
-
[key: string]: string;
|
|
20
|
-
};
|
|
21
|
-
options?: HttpFunctionsOptions | undefined | null;
|
|
22
|
-
});
|
|
17
|
+
constructor(options?: HttpFunctionsOptions);
|
|
23
18
|
/**
|
|
24
19
|
* Specify the actual contents of the process.
|
|
25
20
|
*
|
|
@@ -46,8 +46,8 @@ class RequestProcessFunctionBase extends functions_base_1.FunctionsBase {
|
|
|
46
46
|
*
|
|
47
47
|
* HTTPリクエスト実行用のFunctionのデータを定義するためのベースクラス。
|
|
48
48
|
*/
|
|
49
|
-
constructor(
|
|
50
|
-
super({
|
|
49
|
+
constructor(options = {}) {
|
|
50
|
+
super({ options: options });
|
|
51
51
|
this.data = {};
|
|
52
52
|
}
|
|
53
53
|
build(regions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request_process_function_base.js","sourceRoot":"","sources":["../../src/lib/request_process_function_base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,qDAAuE;AAKvE;;;;GAIG;AACH,MAAsB,0BAA2B,SAAQ,8BAAa;IAClE;;;;OAIG;IACH,YAAY,
|
|
1
|
+
{"version":3,"file":"request_process_function_base.js","sourceRoot":"","sources":["../../src/lib/request_process_function_base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,qDAAuE;AAKvE;;;;GAIG;AACH,MAAsB,0BAA2B,SAAQ,8BAAa;IAClE;;;;OAIG;IACH,YAAY,UAAgC,EAAE;QAC1C,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAqBhC,SAAI,GAA8B,EAAE,CAAC;IApBrC,CAAC;IAqBD,KAAK,CAAC,OAAiB;;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAkD,CAAC;QACxE,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAC5B;YACI,MAAM,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,OAAO;YAClC,cAAc,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;YACvC,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;YACvB,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;YACnC,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;YACjC,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;SACtC,EACD,CAAO,GAAG,EAAE,GAAG,EAAE,EAAE;YACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC,CAAA,CACJ,CAAC;IACN,CAAC;CACJ;AA7CD,gEA6CC"}
|
|
@@ -10,12 +10,7 @@ export declare abstract class ScheduleProcessFunctionBase extends FunctionsBase
|
|
|
10
10
|
*
|
|
11
11
|
* 定期スケジュール実行用のFunctionのデータを定義するためのベースクラス。
|
|
12
12
|
*/
|
|
13
|
-
constructor(
|
|
14
|
-
data?: {
|
|
15
|
-
[key: string]: string;
|
|
16
|
-
};
|
|
17
|
-
options?: SchedulerFunctionsOptions | undefined | null;
|
|
18
|
-
});
|
|
13
|
+
constructor(options?: SchedulerFunctionsOptions);
|
|
19
14
|
/**
|
|
20
15
|
* Specify the schedule to execute the process in cron format.
|
|
21
16
|
*
|
|
@@ -46,8 +46,8 @@ class ScheduleProcessFunctionBase extends functions_base_1.FunctionsBase {
|
|
|
46
46
|
*
|
|
47
47
|
* 定期スケジュール実行用のFunctionのデータを定義するためのベースクラス。
|
|
48
48
|
*/
|
|
49
|
-
constructor(
|
|
50
|
-
super({
|
|
49
|
+
constructor(options = {}) {
|
|
50
|
+
super({ options: options });
|
|
51
51
|
this.data = {};
|
|
52
52
|
}
|
|
53
53
|
build(regions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule_process_function_base.js","sourceRoot":"","sources":["../../src/lib/schedule_process_function_base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,qDAA4E;AAE5E;;;;GAIG;AACH,MAAsB,2BAA4B,SAAQ,8BAAa;IACnE;;;;OAIG;IACH,YAAY,
|
|
1
|
+
{"version":3,"file":"schedule_process_function_base.js","sourceRoot":"","sources":["../../src/lib/schedule_process_function_base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AACnD,qDAA4E;AAE5E;;;;GAIG;AACH,MAAsB,2BAA4B,SAAQ,8BAAa;IACnE;;;;OAIG;IACH,YAAY,UAAqC,EAAE;QAC/C,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAoBhC,SAAI,GAA8B,EAAE,CAAC;IAnBrC,CAAC;IAoBD,KAAK,CAAC,OAAiB;;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAuD,CAAC;QAC7E,OAAO,SAAS,CAAC,SAAS,CAAC,UAAU,CACjC;YACI,QAAQ,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,IAAI,CAAC,QAAQ;YAC5C,MAAM,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,mCAAI,OAAO,CAAC,CAAC,CAAC;YACrC,cAAc,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc;YACvC,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;YACvB,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;YACnC,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;YACjC,YAAY,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY;SACtC,EACD,CAAO,KAAK,EAAE,EAAE;YACZ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC,CAAA,CACJ,CAAC;IACN,CAAC;CACJ;AA7CD,kEA6CC"}
|
|
@@ -3,25 +3,20 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Android の受信確認を実行します。
|
|
5
5
|
*
|
|
6
|
-
* @param {
|
|
6
|
+
* @param {"products" | "subscriptions"} type
|
|
7
7
|
* Item type(products or subscriptions)
|
|
8
8
|
*
|
|
9
9
|
* アイテムの種類(製品またはサブスクリプション)
|
|
10
10
|
*
|
|
11
|
-
* @param {String}
|
|
12
|
-
* Google
|
|
11
|
+
* @param {String} serviceAccountEmail
|
|
12
|
+
* The email address of your Google Services account.
|
|
13
13
|
*
|
|
14
|
-
* Google
|
|
14
|
+
* Googleサービスアカウントのメールアドレス。
|
|
15
15
|
*
|
|
16
|
-
* @param {String}
|
|
17
|
-
* Google
|
|
16
|
+
* @param {String} serviceAccountPrivateKey
|
|
17
|
+
* A private key for your Google Services account.
|
|
18
18
|
*
|
|
19
|
-
* Google
|
|
20
|
-
*
|
|
21
|
-
* @param {String} refreshToken
|
|
22
|
-
* Refresh token obtained by accessing [android_auth_code].
|
|
23
|
-
*
|
|
24
|
-
* [android_auth_code]にアクセスして取得したリフレッシュトークン。
|
|
19
|
+
* Googleサービスアカウントのプライベートキー。
|
|
25
20
|
*
|
|
26
21
|
* @param {String} packageName
|
|
27
22
|
* Application package name.
|
|
@@ -43,11 +38,10 @@
|
|
|
43
38
|
*
|
|
44
39
|
* アイテムの受領情報。
|
|
45
40
|
*/
|
|
46
|
-
export declare function verifyAndroid({ type,
|
|
47
|
-
type:
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
refreshToken: string;
|
|
41
|
+
export declare function verifyAndroid({ type, serviceAccountEmail, serviceAccountPrivateKey, packageName, productId, purchaseToken, }: {
|
|
42
|
+
type: "products" | "subscriptions";
|
|
43
|
+
serviceAccountEmail: string;
|
|
44
|
+
serviceAccountPrivateKey: string;
|
|
51
45
|
packageName: string;
|
|
52
46
|
productId: string;
|
|
53
47
|
purchaseToken: string;
|
|
@@ -34,31 +34,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
35
|
exports.verifyAndroid = void 0;
|
|
36
36
|
const functions = __importStar(require("firebase-functions/v2"));
|
|
37
|
-
const
|
|
37
|
+
const googleapis_1 = require("googleapis");
|
|
38
38
|
/**
|
|
39
39
|
* Perform Android receipt verification.
|
|
40
40
|
*
|
|
41
41
|
* Android の受信確認を実行します。
|
|
42
42
|
*
|
|
43
|
-
* @param {
|
|
43
|
+
* @param {"products" | "subscriptions"} type
|
|
44
44
|
* Item type(products or subscriptions)
|
|
45
45
|
*
|
|
46
46
|
* アイテムの種類(製品またはサブスクリプション)
|
|
47
47
|
*
|
|
48
|
-
* @param {String}
|
|
49
|
-
* Google
|
|
48
|
+
* @param {String} serviceAccountEmail
|
|
49
|
+
* The email address of your Google Services account.
|
|
50
50
|
*
|
|
51
|
-
* Google
|
|
51
|
+
* Googleサービスアカウントのメールアドレス。
|
|
52
52
|
*
|
|
53
|
-
* @param {String}
|
|
54
|
-
* Google
|
|
53
|
+
* @param {String} serviceAccountPrivateKey
|
|
54
|
+
* A private key for your Google Services account.
|
|
55
55
|
*
|
|
56
|
-
* Google
|
|
57
|
-
*
|
|
58
|
-
* @param {String} refreshToken
|
|
59
|
-
* Refresh token obtained by accessing [android_auth_code].
|
|
60
|
-
*
|
|
61
|
-
* [android_auth_code]にアクセスして取得したリフレッシュトークン。
|
|
56
|
+
* Googleサービスアカウントのプライベートキー。
|
|
62
57
|
*
|
|
63
58
|
* @param {String} packageName
|
|
64
59
|
* Application package name.
|
|
@@ -80,39 +75,46 @@ const api_1 = require("./api");
|
|
|
80
75
|
*
|
|
81
76
|
* アイテムの受領情報。
|
|
82
77
|
*/
|
|
83
|
-
function verifyAndroid({ type,
|
|
78
|
+
function verifyAndroid({ type, serviceAccountEmail, serviceAccountPrivateKey, packageName, productId, purchaseToken, }) {
|
|
84
79
|
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
"
|
|
90
|
-
|
|
91
|
-
|
|
80
|
+
try {
|
|
81
|
+
const authClient = new googleapis_1.google.auth.JWT({
|
|
82
|
+
email: serviceAccountEmail,
|
|
83
|
+
key: serviceAccountPrivateKey,
|
|
84
|
+
scopes: ["https://www.googleapis.com/auth/androidpublisher"]
|
|
85
|
+
});
|
|
86
|
+
const playDeveloperApiClient = googleapis_1.google.androidpublisher({
|
|
87
|
+
version: "v3",
|
|
88
|
+
auth: authClient,
|
|
89
|
+
});
|
|
90
|
+
yield authClient.authorize();
|
|
91
|
+
if (type === "products") {
|
|
92
|
+
const res = yield playDeveloperApiClient.purchases.products.get({
|
|
93
|
+
packageName: packageName,
|
|
94
|
+
productId: productId,
|
|
95
|
+
token: purchaseToken,
|
|
96
|
+
});
|
|
97
|
+
if (res.status !== 200) {
|
|
98
|
+
throw new functions.https.HttpsError("not-found", "The validation data is empty.");
|
|
99
|
+
}
|
|
100
|
+
return res.data;
|
|
101
|
+
}
|
|
102
|
+
else if (type === "subscriptions") {
|
|
103
|
+
const res = yield playDeveloperApiClient.purchases.subscriptions.get({
|
|
104
|
+
packageName: packageName,
|
|
105
|
+
subscriptionId: productId,
|
|
106
|
+
token: purchaseToken,
|
|
107
|
+
});
|
|
108
|
+
if (res.status !== 200) {
|
|
109
|
+
throw new functions.https.HttpsError("not-found", "The validation data is empty.");
|
|
110
|
+
}
|
|
111
|
+
return res.data;
|
|
92
112
|
}
|
|
93
|
-
});
|
|
94
|
-
if (!res) {
|
|
95
|
-
throw new functions.https.HttpsError("not-found", "Cannot get access token.");
|
|
96
|
-
}
|
|
97
|
-
let json = (yield res.json());
|
|
98
|
-
console.log(json);
|
|
99
|
-
const accessToken = json["access_token"];
|
|
100
|
-
if (!accessToken) {
|
|
101
|
-
throw new functions.https.HttpsError("not-found", "Cannot get access token.");
|
|
102
113
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
timeout: 30 * 1000,
|
|
106
|
-
headers: {
|
|
107
|
-
"Content-Type": "application/json",
|
|
108
|
-
},
|
|
109
|
-
});
|
|
110
|
-
if (!res) {
|
|
111
|
-
throw new functions.https.HttpsError("not-found", "The validation data is empty.");
|
|
114
|
+
catch (error) {
|
|
115
|
+
console.log(error);
|
|
112
116
|
}
|
|
113
|
-
|
|
114
|
-
console.log(json);
|
|
115
|
-
return json;
|
|
117
|
+
throw new functions.https.HttpsError("not-found", "The validation data is empty.");
|
|
116
118
|
});
|
|
117
119
|
}
|
|
118
120
|
exports.verifyAndroid = verifyAndroid;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify_android.js","sourceRoot":"","sources":["../../src/lib/verify_android.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;
|
|
1
|
+
{"version":3,"file":"verify_android.js","sourceRoot":"","sources":["../../src/lib/verify_android.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAmD;AAEnD,2CAAoC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,SAAsB,aAAa,CAAC,EAChC,IAAI,EACJ,mBAAmB,EACnB,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,aAAa,GAQhB;;QACG,IAAI;YACA,MAAM,UAAU,GAAG,IAAI,mBAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBACnC,KAAK,EAAE,mBAAmB;gBAC1B,GAAG,EAAE,wBAAwB;gBAC7B,MAAM,EAAE,CAAC,kDAAkD,CAAC;aAC/D,CAAC,CAAC;YACH,MAAM,sBAAsB,GAAG,mBAAM,CAAC,gBAAgB,CAAC;gBACnD,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,UAAU;aACnB,CAAC,CAAC;YACH,MAAM,UAAU,CAAC,SAAS,EAAE,CAAC;YAC7B,IAAI,IAAI,KAAK,UAAU,EAAE;gBACrB,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC5D,WAAW,EAAE,WAAW;oBACxB,SAAS,EAAE,SAAS;oBACpB,KAAK,EAAE,aAAa;iBACvB,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;oBACpB,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAC;iBACtF;gBACD,OAAO,GAAG,CAAC,IAAI,CAAC;aACnB;iBAAM,IAAI,IAAI,KAAK,eAAe,EAAE;gBACjC,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC;oBACjE,WAAW,EAAE,WAAW;oBACxB,cAAc,EAAE,SAAS;oBACzB,KAAK,EAAE,aAAa;iBACvB,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;oBACpB,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAC;iBACtF;gBACD,OAAO,GAAG,CAAC,IAAI,CAAC;aACnB;SACJ;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACtB;QACD,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,+BAA+B,CAAC,CAAC;IACvF,CAAC;CAAA;AAnDD,sCAmDC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mathrunet/masamune",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Manages packages for the server portion (NodeJS) of the Masamune framework.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"firebase-admin": "^11.11.1",
|
|
42
42
|
"firebase-functions": "^4.6.0",
|
|
43
43
|
"form-data": "^4.0.0",
|
|
44
|
+
"googleapis": "^133.0.0",
|
|
44
45
|
"node-fetch": "^2.6.9",
|
|
45
46
|
"nodemailer": "^6.9.2",
|
|
46
47
|
"stripe": "^12.7.0",
|