@mathrunet/masamune 0.2.0 → 0.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe.js","sourceRoot":"","sources":["../../src/functions/stripe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,574 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ const functions = __importStar(require("firebase-functions"));
36
+ const stripe = __importStar(require("stripe"));
37
+ const admin = __importStar(require("firebase-admin"));
38
+ const uuid = __importStar(require("uuid"));
39
+ /**
40
+ * Receives and processes webhooks from Stripe.
41
+ * Please register the URL when you deploy this in your Stripe webhook settings.
42
+ * Firestore integration is a must; please make Firestore available as well.
43
+ *
44
+ * StripeからのWebhookを受け取り処理を行います。
45
+ * こちらをデプロイした際のURLをStripeのWebhook設定に登録してください。
46
+ * Firestoreとの連携が必須です。Firestoreも利用可能にしてください。
47
+ *
48
+ * @param {string} purchase.stripe.api_key
49
+ * API key (publicly available key) to connect to Stripe.
50
+ * Log in to the following URL and create a project.
51
+ * After creating a project, you can copy the publishable key.
52
+ *
53
+ * Stripeへ接続するためのAPIキー(公開可能キー)。
54
+ * 下記URLにログインし、プロジェクトを作成します。
55
+ * プロジェクト作成後、公開可能キーをコピーすることができます。
56
+ *
57
+ * Production environment
58
+ * https://dashboard.stripe.com/apikeys
59
+ * Development enveironment
60
+ * https://dashboard.stripe.com/test/apikeys
61
+ *
62
+ * @param {string} purchase.stripe.user_path
63
+ * Stripe user (customer) pass.
64
+ * Stripeのユーザー(カスタマー)用パス。
65
+ *
66
+ * @param {string} purchase.stripe.payment_path
67
+ * Path for payment method information to be placed under [purchase.stripe.user_path].
68
+ * [purchase.stripe.user_path]の下に配置する支払い方法の情報用パス。
69
+ *
70
+ * @param {string} purchase.stripe.purchase_path
71
+ * Path for purchase information to be placed under [purchase.stripe.user_path].
72
+ * [purchase.stripe.user_path]の下に配置する購入情報用パス。
73
+ *
74
+ * @param {string} purchase.stripe.webhook_secret
75
+ * Specify the **Signature Secret** after setting it up as a webhook.
76
+ * Webhookとして設定したあとの**署名シークレット**を指定します。
77
+ *
78
+ */
79
+ module.exports = (regions) => functions.region(...regions).https.onRequest((req, res) => __awaiter(void 0, void 0, void 0, function* () {
80
+ var _a;
81
+ try {
82
+ const config = functions.config().purchase;
83
+ const stripeConfig = config.stripe;
84
+ const apiKey = stripeConfig.api_key;
85
+ const stripeUserPath = stripeConfig.user_path;
86
+ const stripePurchasePath = stripeConfig.purchase_path;
87
+ const stripeWebhookSecret = stripeConfig.webhook_secret;
88
+ const firestoreInstance = admin.firestore();
89
+ const stripeClient = new stripe.Stripe(apiKey, {
90
+ apiVersion: "2022-11-15",
91
+ });
92
+ const signature = req.headers["stripe-signature"];
93
+ if (!signature) {
94
+ res.status(403).send(JSON.stringify({
95
+ "error": "Access denied.",
96
+ }));
97
+ return;
98
+ }
99
+ const event = stripeClient.webhooks.constructEvent(req.rawBody, signature, stripeWebhookSecret);
100
+ switch (event.type) {
101
+ case "payment_intent.requires_action":
102
+ case "payment_intent.amount_capturable_updated": {
103
+ const payment = event.data.object;
104
+ const paymentId = payment["id"];
105
+ const customerId = payment["customer"];
106
+ const status = payment["status"];
107
+ if (!customerId) {
108
+ res.status(404).send(JSON.stringify({
109
+ "error": "The customer id is not found.",
110
+ }));
111
+ return;
112
+ }
113
+ if (!status) {
114
+ res.status(404).send(JSON.stringify({
115
+ "error": "The status is not found.",
116
+ }));
117
+ return;
118
+ }
119
+ const userCol = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
120
+ if (userCol.empty) {
121
+ res.status(404).send(JSON.stringify({
122
+ "error": "The account data is not found.",
123
+ }));
124
+ return;
125
+ }
126
+ const user = userCol.docs[0];
127
+ const userId = user.id;
128
+ const purchaseCol = yield firestoreInstance.collection(`${stripeUserPath}/${userId}/${stripePurchasePath}`).where("paymentId", "==", paymentId).get();
129
+ if (purchaseCol.empty) {
130
+ res.status(404).send(JSON.stringify({
131
+ "error": "The purchase data is not found.",
132
+ }));
133
+ return;
134
+ }
135
+ const purchase = purchaseCol.docs[0];
136
+ const update = {};
137
+ switch (status) {
138
+ case "requires_payment_method":
139
+ case "requires_confirmation": {
140
+ update["confirm"] = false;
141
+ update["verify"] = false;
142
+ update["capture"] = false;
143
+ update["success"] = false;
144
+ break;
145
+ }
146
+ case "requires_action": {
147
+ update["confirm"] = true;
148
+ update["verify"] = false;
149
+ update["capture"] = false;
150
+ update["success"] = false;
151
+ break;
152
+ }
153
+ case "requires_capture": {
154
+ update["confirm"] = true;
155
+ update["verify"] = true;
156
+ update["capture"] = false;
157
+ update["success"] = false;
158
+ break;
159
+ }
160
+ }
161
+ update["updatedTime"] = new Date();
162
+ yield purchase.ref.set(update, {
163
+ merge: true,
164
+ });
165
+ res.status(200).send(JSON.stringify({
166
+ "success": true,
167
+ }));
168
+ return;
169
+ }
170
+ case "payment_intent.succeeded": {
171
+ const payment = event.data.object;
172
+ const paymentId = payment["id"];
173
+ const customerId = payment["customer"];
174
+ if (!customerId) {
175
+ res.status(404).send(JSON.stringify({
176
+ "error": "The customer id is not found.",
177
+ }));
178
+ return;
179
+ }
180
+ const userCol = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
181
+ if (userCol.empty) {
182
+ res.status(404).send(JSON.stringify({
183
+ "error": "The account data is not found.",
184
+ }));
185
+ return;
186
+ }
187
+ const user = userCol.docs[0];
188
+ const userId = user.id;
189
+ const purchaseCol = yield firestoreInstance.collection(`${stripeUserPath}/${userId}/${stripePurchasePath}`).where("paymentId", "==", paymentId).get();
190
+ if (purchaseCol.empty) {
191
+ res.status(404).send(JSON.stringify({
192
+ "error": "The purchase data is not found.",
193
+ }));
194
+ return;
195
+ }
196
+ const purchase = purchaseCol.docs[0];
197
+ const update = {};
198
+ update["confirm"] = true;
199
+ update["verify"] = true;
200
+ update["capture"] = true;
201
+ update["success"] = true;
202
+ update["error"] = admin.firestore.FieldValue.delete();
203
+ update["errorMessage"] = admin.firestore.FieldValue.delete();
204
+ update["updatedTime"] = new Date();
205
+ if (payment["charges"] && payment["charges"]["data"] && payment["charges"]["data"].length > 0 && payment["charges"]["data"][0]) {
206
+ if (payment["charges"]["data"][0]["receipt_url"]) {
207
+ update["receiptUrl"] = payment["charges"]["data"][0]["receipt_url"];
208
+ }
209
+ if (payment["charges"]["data"][0]["amount_captured"]) {
210
+ update["capturedAmount"] = payment["charges"]["data"][0]["amount_captured"];
211
+ }
212
+ }
213
+ yield purchase.ref.set(update, {
214
+ merge: true,
215
+ });
216
+ res.status(200).send(JSON.stringify({
217
+ "success": true,
218
+ }));
219
+ return;
220
+ }
221
+ case "payment_intent.payment_failed": {
222
+ const payment = event.data.object;
223
+ const paymentId = payment["id"];
224
+ const customerId = payment["customer"];
225
+ const status = payment["status"];
226
+ if (!customerId) {
227
+ res.status(404).send(JSON.stringify({
228
+ "error": "The customer id is not found.",
229
+ }));
230
+ return;
231
+ }
232
+ const userCol = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
233
+ if (userCol.empty) {
234
+ res.status(404).send(JSON.stringify({
235
+ "error": "The account data is not found.",
236
+ }));
237
+ return;
238
+ }
239
+ const user = userCol.docs[0];
240
+ const userId = user.id;
241
+ const purchaseCol = yield firestoreInstance.collection(`${stripeUserPath}/${userId}/${stripePurchasePath}`).where("paymentId", "==", paymentId).get();
242
+ if (purchaseCol.empty) {
243
+ res.status(404).send(JSON.stringify({
244
+ "error": "The purchase data is not found.",
245
+ }));
246
+ return;
247
+ }
248
+ const errorMessage = payment["last_payment_error"]["message"];
249
+ const purchase = purchaseCol.docs[0];
250
+ const update = {};
251
+ switch (status) {
252
+ case "requires_payment_method":
253
+ case "requires_confirmation": {
254
+ update["confirm"] = false;
255
+ update["verify"] = false;
256
+ update["capture"] = false;
257
+ update["success"] = false;
258
+ break;
259
+ }
260
+ case "requires_action": {
261
+ update["confirm"] = true;
262
+ update["verify"] = false;
263
+ update["capture"] = false;
264
+ update["success"] = false;
265
+ break;
266
+ }
267
+ case "requires_capture": {
268
+ update["confirm"] = true;
269
+ update["verify"] = true;
270
+ update["capture"] = false;
271
+ update["success"] = false;
272
+ break;
273
+ }
274
+ }
275
+ update["updatedTime"] = new Date();
276
+ update["error"] = true;
277
+ update["errorMessage"] = errorMessage;
278
+ yield purchase.ref.set(update, {
279
+ merge: true,
280
+ });
281
+ res.status(200).send(JSON.stringify({
282
+ "success": true,
283
+ }));
284
+ return;
285
+ }
286
+ case "payment_method.detached":
287
+ case "payment_method.updated": {
288
+ const payment = event.data.object;
289
+ const previous = event.data.previous_attributes;
290
+ let customerId = payment["customer"];
291
+ if (!customerId) {
292
+ customerId = previous["customer"];
293
+ }
294
+ if (!customerId) {
295
+ res.status(404).send(JSON.stringify({
296
+ "error": "The customer id is not found.",
297
+ }));
298
+ return;
299
+ }
300
+ const col = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
301
+ if (col.empty) {
302
+ res.status(404).send(JSON.stringify({
303
+ "error": "The account data is not found.",
304
+ }));
305
+ return;
306
+ }
307
+ const user = col.docs[0];
308
+ const userId = user.id;
309
+ yield syncStripePayment(stripeClient, firestoreInstance, userId, customerId);
310
+ res.status(200).send(JSON.stringify({
311
+ "success": true,
312
+ }));
313
+ return;
314
+ }
315
+ case "customer.updated": {
316
+ const customer = event.data.object;
317
+ const customerId = customer["id"];
318
+ if (!customerId) {
319
+ res.status(404).send(JSON.stringify({
320
+ "error": "The customer id is not found.",
321
+ }));
322
+ return;
323
+ }
324
+ const col = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
325
+ if (col.empty) {
326
+ res.status(404).send(JSON.stringify({
327
+ "error": "The account data is not found.",
328
+ }));
329
+ return;
330
+ }
331
+ const user = col.docs[0];
332
+ const userId = user.id;
333
+ yield syncStripePayment(stripeClient, firestoreInstance, userId, customerId);
334
+ res.status(200).send(JSON.stringify({
335
+ "success": true,
336
+ }));
337
+ return;
338
+ }
339
+ case "checkout.session.completed": {
340
+ const session = event.data.object;
341
+ const customerId = session["customer"];
342
+ if (!customerId) {
343
+ res.status(404).send(JSON.stringify({
344
+ "error": "The customer id is not found.",
345
+ }));
346
+ return;
347
+ }
348
+ const setupIntent = session["setup_intent"];
349
+ if (!setupIntent) {
350
+ res.status(404).send(JSON.stringify({
351
+ "error": "The setup intent is not found.",
352
+ }));
353
+ return;
354
+ }
355
+ const col = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
356
+ if (col.empty) {
357
+ res.status(404).send(JSON.stringify({
358
+ "error": "The account data is not found.",
359
+ }));
360
+ return;
361
+ }
362
+ const user = col.docs[0];
363
+ const userId = user.id;
364
+ const update = {};
365
+ if (session["setup_intent"]) {
366
+ update["setupIntent"] = session["setup_intent"];
367
+ }
368
+ yield user.ref.set(update, {
369
+ merge: true,
370
+ });
371
+ yield syncStripePayment(stripeClient, firestoreInstance, userId, customerId);
372
+ res.status(200).send(JSON.stringify({
373
+ "success": true,
374
+ }));
375
+ return;
376
+ }
377
+ case "customer.subscription.trial_will_end":
378
+ case "customer.subscription.updated":
379
+ case "customer.subscription.created": {
380
+ const now = new Date();
381
+ const update = {};
382
+ const subscription = event.data.object;
383
+ const status = subscription["status"];
384
+ if (status != "active") {
385
+ res.status(200).send(JSON.stringify({
386
+ "success": "Subscription is not active.",
387
+ }));
388
+ return;
389
+ }
390
+ const endDate = new Date(subscription["current_period_end"] * 1000);
391
+ const id = subscription["id"];
392
+ const userId = subscription.metadata.userId;
393
+ const orderId = (_a = subscription.metadata.orderId) !== null && _a !== void 0 ? _a : id;
394
+ const targetPath = `${stripePurchasePath}/${orderId}`;
395
+ const plan = subscription.plan;
396
+ let doc;
397
+ const subscriptionCol = yield firestoreInstance.collection(`${stripePurchasePath}`).where("subscription", "==", id).get();
398
+ if (subscriptionCol.empty) {
399
+ doc = yield firestoreInstance.doc(targetPath);
400
+ }
401
+ else {
402
+ doc = subscriptionCol.docs[0].ref;
403
+ }
404
+ update["expired"] = now >= endDate;
405
+ if (userId) {
406
+ update["user"] = userId;
407
+ }
408
+ update["@uid"] = orderId;
409
+ update["@time"] = new Date();
410
+ update["subscription"] = id;
411
+ update["application"] = subscription["application"];
412
+ update["application_fee_percent"] = subscription["application_fee_percent"];
413
+ update["cancel_at"] = subscription["cancel_at"];
414
+ update["cancel_at_period_end"] = subscription["cancel_at_period_end"];
415
+ update["canceled_at"] = subscription["canceled_at"];
416
+ update["collection_method"] = subscription["collection_method"];
417
+ update["currency"] = subscription["currency"];
418
+ update["current_period_start"] = subscription["current_period_start"];
419
+ update["current_period_end"] = subscription["current_period_end"];
420
+ update["customer"] = subscription["customer"];
421
+ update["default_payment_method"] = subscription["default_payment_method"];
422
+ update["ended_at"] = subscription["ended_at"];
423
+ update["latest_invoice"] = subscription["latest_invoice"];
424
+ update["price_id"] = plan["id"];
425
+ update["active"] = plan["active"];
426
+ update["amount"] = plan["amount"];
427
+ update["billing_scheme"] = plan["billing_scheme"];
428
+ update["interval"] = plan["interval"];
429
+ update["interval_count"] = plan["interval_count"];
430
+ update["usage_type"] = plan["usage_type"];
431
+ update["quantity"] = subscription["quantity"];
432
+ update["start_date"] = subscription["start_date"];
433
+ update["start_date"] = subscription["start_date"];
434
+ console.log(`Subscription status is ${status} ${stripePurchasePath}.`);
435
+ yield doc.set(update, {
436
+ merge: true,
437
+ });
438
+ res.status(200).send(JSON.stringify({
439
+ "success": "Subscription is active.",
440
+ }));
441
+ break;
442
+ }
443
+ case "customer.subscription.deleted": {
444
+ const subscription = event.data.object;
445
+ const status = subscription["status"];
446
+ console.log(`Subscription status is ${status} ${"expired"}.`);
447
+ // Then define and call a method to handle the subscription deleted.
448
+ // handleSubscriptionDeleted(subscriptionDeleted);
449
+ break;
450
+ }
451
+ default: {
452
+ res.status(404).send(JSON.stringify({
453
+ "error": "Event is not found.",
454
+ }));
455
+ return;
456
+ }
457
+ }
458
+ }
459
+ catch (err) {
460
+ console.error(err);
461
+ throw err;
462
+ }
463
+ }));
464
+ /**
465
+ * Synchronize Stripe acquisition results to Firestore.
466
+ *
467
+ * Stripeの取得結果をFirestoreに同期します。
468
+ *
469
+ * @param {stripe.Stripe} stripeClient
470
+ * Stripe client instances.
471
+ * ストライプのクライアントインスタンス。
472
+ *
473
+ * @param {FirebaseFirestore.Firestore} firestoreInstance
474
+ * Firestore client instances.
475
+ * Firestoreのクライアントインスタンス。
476
+ *
477
+ * @param {string} userId
478
+ * User ID.
479
+ * ユーザーID。
480
+ *
481
+ * @param {string} customerId
482
+ * Customer ID.
483
+ * 顧客ID。
484
+ *
485
+ * @returns {Promise<void>}
486
+ *
487
+ */
488
+ function syncStripePayment(stripeClient, firestoreInstance, userId, customerId) {
489
+ return __awaiter(this, void 0, void 0, function* () {
490
+ const config = functions.config().purchase;
491
+ const stripeConfig = config.stripe;
492
+ const stripeUserPath = stripeConfig.user_path;
493
+ const stripePaymentPath = stripeConfig.payment_path;
494
+ const customer = yield stripeClient.customers.retrieve(customerId);
495
+ let defaultSource = customer.invoice_settings.default_payment_method;
496
+ const paymentMethods = yield stripeClient.customers.listPaymentMethods(customerId, {
497
+ type: "card",
498
+ });
499
+ if (!defaultSource && paymentMethods.data.length > 0) {
500
+ defaultSource = paymentMethods.data[0].id;
501
+ yield stripeClient.customers.update(customerId, {
502
+ invoice_settings: {
503
+ default_payment_method: defaultSource,
504
+ },
505
+ });
506
+ }
507
+ const payments = yield firestoreInstance.collection(`${stripeUserPath}/${userId}/${stripePaymentPath}`).get();
508
+ yield firestoreInstance.runTransaction((transaction) => __awaiter(this, void 0, void 0, function* () {
509
+ payments.docs.forEach((doc) => {
510
+ const data = doc.data();
511
+ const method = paymentMethods.data.find((m) => m.id == data["id"]);
512
+ if (!method) {
513
+ transaction.delete(doc.ref);
514
+ }
515
+ else {
516
+ const card = method.card;
517
+ if (!card) {
518
+ return;
519
+ }
520
+ const update = {};
521
+ const isDefault = method.id == defaultSource;
522
+ if (method.type === data["type"] && card.exp_month === data["expMonth"] && card.exp_year === data["expYear"] && card.brand === data["brand"] && card.last4 === data["numberLast"] && card.last4 === data["numberLast"] && isDefault === data["default"]) {
523
+ return;
524
+ }
525
+ update["type"] = method.type;
526
+ update["expMonth"] = card.exp_month;
527
+ update["expYear"] = card.exp_year;
528
+ update["brand"] = card.brand;
529
+ update["numberLast"] = card.last4;
530
+ update["default"] = isDefault;
531
+ transaction.set(doc.ref, update, {
532
+ merge: true,
533
+ });
534
+ }
535
+ });
536
+ paymentMethods.data.forEach((method) => __awaiter(this, void 0, void 0, function* () {
537
+ const card = method.card;
538
+ if (!card) {
539
+ return;
540
+ }
541
+ const doc = payments.docs.find((item) => item.data()["id"] == method.id);
542
+ if (doc) {
543
+ return;
544
+ }
545
+ const uid = uuid.v4();
546
+ const update = {};
547
+ const isDefault = method.id == defaultSource;
548
+ update["@uid"] = uid;
549
+ update["@time"] = new Date();
550
+ update["id"] = method.id;
551
+ update["type"] = method.type;
552
+ update["expMonth"] = card.exp_month;
553
+ update["expYear"] = card.exp_year;
554
+ update["brand"] = card.brand;
555
+ update["numberLast"] = card.last4;
556
+ update["default"] = isDefault;
557
+ transaction.set(firestoreInstance.doc(`${stripeUserPath}/${userId}/${stripePaymentPath}/${uid}`), update, {
558
+ merge: true,
559
+ });
560
+ }));
561
+ const update = {};
562
+ if (defaultSource) {
563
+ update["defaultPayment"] = defaultSource;
564
+ }
565
+ else {
566
+ update["defaultPayment"] = admin.firestore.FieldValue.delete();
567
+ }
568
+ yield transaction.set(firestoreInstance.doc(`${stripeUserPath}/${userId}`), update, {
569
+ merge: true,
570
+ });
571
+ }));
572
+ });
573
+ }
574
+ //# sourceMappingURL=stripe_hook.js.map