@wiicode/youcanpay-sdk 1.0.0 → 1.0.4
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/README.md +212 -33
- package/dist/client.js +5 -3
- package/dist/client.js.map +1 -1
- package/dist/interfaces/token.interface.d.ts +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +30 -6
package/README.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# YouCanPay SDK
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/@wiicode/youcanpay-sdk)
|
|
4
|
+
[](https://www.npmjs.com/package/@wiicode/youcanpay-sdk)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[](https://github.com/eeyuub/youcanpay)
|
|
7
|
+
|
|
3
8
|
Production-ready Node.js SDK for [YouCanPay](https://youcanpay.com) - Morocco's payment gateway.
|
|
4
9
|
|
|
5
10
|
Works with **any Node.js framework** (Express, Fastify, Hapi) and has first-class **NestJS integration**.
|
|
@@ -22,11 +27,11 @@ Works with **any Node.js framework** (Express, Fastify, Hapi) and has first-clas
|
|
|
22
27
|
## Installation
|
|
23
28
|
|
|
24
29
|
```bash
|
|
25
|
-
npm install youcanpay-sdk
|
|
30
|
+
npm install @wiicode/youcanpay-sdk
|
|
26
31
|
```
|
|
27
32
|
|
|
28
33
|
```bash
|
|
29
|
-
yarn add youcanpay-sdk
|
|
34
|
+
yarn add @wiicode/youcanpay-sdk
|
|
30
35
|
```
|
|
31
36
|
|
|
32
37
|
### Peer Dependencies
|
|
@@ -70,7 +75,7 @@ YCP_WEBHOOK_SECRET=your_random_secret_here
|
|
|
70
75
|
### Plain Node.js / Express
|
|
71
76
|
|
|
72
77
|
```typescript
|
|
73
|
-
import { YouCanPayClient, CurrencyCode } from 'youcanpay-sdk';
|
|
78
|
+
import { YouCanPayClient, CurrencyCode } from '@wiicode/youcanpay-sdk';
|
|
74
79
|
|
|
75
80
|
// Initialize client
|
|
76
81
|
const client = new YouCanPayClient({
|
|
@@ -82,12 +87,12 @@ const client = new YouCanPayClient({
|
|
|
82
87
|
// Create a payment
|
|
83
88
|
async function createPayment() {
|
|
84
89
|
const { token } = await client.createToken({
|
|
85
|
-
orderId: 'order-123',
|
|
86
90
|
amount: 50000, // 500.00 MAD (in centimes)
|
|
87
91
|
currency: CurrencyCode.MAD,
|
|
88
92
|
customerIp: '192.168.1.1',
|
|
89
93
|
successUrl: 'https://myapp.com/payment/success',
|
|
90
94
|
errorUrl: 'https://myapp.com/payment/error',
|
|
95
|
+
// orderId: 'order-123', // Optional - auto-generated UUID if not provided
|
|
91
96
|
});
|
|
92
97
|
|
|
93
98
|
// Redirect user to YouCanPay checkout
|
|
@@ -103,7 +108,7 @@ async function createPayment() {
|
|
|
103
108
|
```typescript
|
|
104
109
|
// app.module.ts
|
|
105
110
|
import { Module } from '@nestjs/common';
|
|
106
|
-
import { YouCanPayModule } from 'youcanpay-sdk';
|
|
111
|
+
import { YouCanPayModule } from '@wiicode/youcanpay-sdk';
|
|
107
112
|
|
|
108
113
|
@Module({
|
|
109
114
|
imports: [
|
|
@@ -123,7 +128,7 @@ export class AppModule {}
|
|
|
123
128
|
// app.module.ts
|
|
124
129
|
import { Module } from '@nestjs/common';
|
|
125
130
|
import { ConfigModule, ConfigService } from '@nestjs/config';
|
|
126
|
-
import { YouCanPayModule } from 'youcanpay-sdk';
|
|
131
|
+
import { YouCanPayModule } from '@wiicode/youcanpay-sdk';
|
|
127
132
|
|
|
128
133
|
@Module({
|
|
129
134
|
imports: [
|
|
@@ -146,7 +151,7 @@ export class AppModule {}
|
|
|
146
151
|
```typescript
|
|
147
152
|
// payments.service.ts
|
|
148
153
|
import { Injectable } from '@nestjs/common';
|
|
149
|
-
import { YouCanPayService, CurrencyCode } from 'youcanpay-sdk';
|
|
154
|
+
import { YouCanPayService, CurrencyCode } from '@wiicode/youcanpay-sdk';
|
|
150
155
|
|
|
151
156
|
@Injectable()
|
|
152
157
|
export class PaymentsService {
|
|
@@ -250,7 +255,7 @@ async function initiatePayment(userId: string, amount: number) {
|
|
|
250
255
|
#### Step 7-8: Handle Webhook
|
|
251
256
|
|
|
252
257
|
```typescript
|
|
253
|
-
import { parseWebhookPayload, verifyWebhookSecret } from 'youcanpay-sdk';
|
|
258
|
+
import { parseWebhookPayload, verifyWebhookSecret } from '@wiicode/youcanpay-sdk';
|
|
254
259
|
|
|
255
260
|
app.post('/webhook', async (req, res) => {
|
|
256
261
|
// Verify webhook secret
|
|
@@ -312,11 +317,11 @@ Create a payment token.
|
|
|
312
317
|
|
|
313
318
|
```typescript
|
|
314
319
|
const { token } = await client.createToken({
|
|
315
|
-
orderId: string, // Your unique order ID
|
|
316
320
|
amount: number, // Amount in centimes (5000 = 50.00 MAD)
|
|
317
321
|
currency: CurrencyCode, // 'MAD' | 'USD' | 'EUR'
|
|
318
322
|
customerIp: string, // Customer's IP address
|
|
319
323
|
successUrl: string, // Redirect URL on success
|
|
324
|
+
orderId?: string, // Optional - auto-generated UUID if not provided
|
|
320
325
|
errorUrl?: string, // Redirect URL on error
|
|
321
326
|
customer?: { // Optional customer info
|
|
322
327
|
name?: string,
|
|
@@ -384,7 +389,7 @@ import {
|
|
|
384
389
|
verifyWebhookSecret,
|
|
385
390
|
verifyWebhookHMAC,
|
|
386
391
|
createWebhookSignature,
|
|
387
|
-
} from 'youcanpay-sdk';
|
|
392
|
+
} from '@wiicode/youcanpay-sdk';
|
|
388
393
|
|
|
389
394
|
// Parse YouCanPay webhook payload
|
|
390
395
|
const webhook = parseWebhookPayload(requestBody);
|
|
@@ -415,7 +420,7 @@ import {
|
|
|
415
420
|
validateIP,
|
|
416
421
|
validateEmail,
|
|
417
422
|
validatePaymentInput,
|
|
418
|
-
} from 'youcanpay-sdk';
|
|
423
|
+
} from '@wiicode/youcanpay-sdk';
|
|
419
424
|
|
|
420
425
|
// All return: { valid: boolean, error?: string }
|
|
421
426
|
|
|
@@ -446,7 +451,7 @@ import {
|
|
|
446
451
|
formatAmount,
|
|
447
452
|
sanitizeString,
|
|
448
453
|
SUPPORTED_CURRENCIES,
|
|
449
|
-
} from 'youcanpay-sdk';
|
|
454
|
+
} from '@wiicode/youcanpay-sdk';
|
|
450
455
|
|
|
451
456
|
toCentimes(50.00); // 5000
|
|
452
457
|
fromCentimes(5000); // 50.00
|
|
@@ -466,7 +471,7 @@ import type {
|
|
|
466
471
|
ParsedWebhookPayload,
|
|
467
472
|
ValidationResult,
|
|
468
473
|
CurrencyCode,
|
|
469
|
-
} from 'youcanpay-sdk';
|
|
474
|
+
} from '@wiicode/youcanpay-sdk';
|
|
470
475
|
```
|
|
471
476
|
|
|
472
477
|
---
|
|
@@ -500,7 +505,7 @@ YouCanPay sends webhooks with this structure:
|
|
|
500
505
|
### Parsing with SDK
|
|
501
506
|
|
|
502
507
|
```typescript
|
|
503
|
-
import { parseWebhookPayload, ParsedWebhookPayload } from 'youcanpay-sdk';
|
|
508
|
+
import { parseWebhookPayload, ParsedWebhookPayload } from '@wiicode/youcanpay-sdk';
|
|
504
509
|
|
|
505
510
|
const webhook: ParsedWebhookPayload = parseWebhookPayload(requestBody);
|
|
506
511
|
|
|
@@ -527,7 +532,7 @@ import {
|
|
|
527
532
|
ParseWebhookPipe,
|
|
528
533
|
ParsedWebhookPayload,
|
|
529
534
|
verifyWebhookSecret,
|
|
530
|
-
} from 'youcanpay-sdk';
|
|
535
|
+
} from '@wiicode/youcanpay-sdk';
|
|
531
536
|
|
|
532
537
|
@Controller('payments')
|
|
533
538
|
export class PaymentsController {
|
|
@@ -620,43 +625,211 @@ const payment = await prisma.payment.create({
|
|
|
620
625
|
});
|
|
621
626
|
```
|
|
622
627
|
|
|
623
|
-
### TypeORM Example
|
|
628
|
+
### TypeORM Example (Complete NestJS Entity)
|
|
624
629
|
|
|
625
630
|
```typescript
|
|
631
|
+
// payment-status.enum.ts
|
|
632
|
+
export enum PaymentStatus {
|
|
633
|
+
PENDING = 'PENDING',
|
|
634
|
+
COMPLETED = 'COMPLETED',
|
|
635
|
+
FAILED = 'FAILED',
|
|
636
|
+
REFUNDED = 'REFUNDED',
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
// payment.entity.ts
|
|
640
|
+
import {
|
|
641
|
+
Entity,
|
|
642
|
+
PrimaryGeneratedColumn,
|
|
643
|
+
Column,
|
|
644
|
+
CreateDateColumn,
|
|
645
|
+
UpdateDateColumn,
|
|
646
|
+
ManyToOne,
|
|
647
|
+
JoinColumn,
|
|
648
|
+
} from 'typeorm';
|
|
649
|
+
import { PaymentStatus } from './payment-status.enum';
|
|
650
|
+
import { User } from '../users/user.entity';
|
|
651
|
+
|
|
626
652
|
@Entity('payments')
|
|
627
653
|
export class Payment {
|
|
628
654
|
@PrimaryGeneratedColumn('uuid')
|
|
629
655
|
id: string;
|
|
630
656
|
|
|
631
|
-
@Column({ unique: true })
|
|
657
|
+
@Column({ unique: true, name: 'order_id' })
|
|
632
658
|
orderId: string;
|
|
633
659
|
|
|
634
|
-
@Column({ nullable: true })
|
|
660
|
+
@Column({ nullable: true, name: 'token_id' })
|
|
635
661
|
tokenId: string;
|
|
636
662
|
|
|
637
|
-
@Column({ nullable: true })
|
|
663
|
+
@Column({ nullable: true, name: 'transaction_id' })
|
|
638
664
|
transactionId: string;
|
|
639
665
|
|
|
640
|
-
@Column()
|
|
641
|
-
amount: number;
|
|
666
|
+
@Column({ type: 'integer' })
|
|
667
|
+
amount: number; // In centimes
|
|
642
668
|
|
|
643
|
-
@Column()
|
|
669
|
+
@Column({ length: 3 })
|
|
644
670
|
currency: string;
|
|
645
671
|
|
|
646
|
-
@Column({
|
|
647
|
-
|
|
672
|
+
@Column({
|
|
673
|
+
type: 'enum',
|
|
674
|
+
enum: PaymentStatus,
|
|
675
|
+
default: PaymentStatus.PENDING,
|
|
676
|
+
})
|
|
677
|
+
status: PaymentStatus;
|
|
648
678
|
|
|
649
|
-
@Column()
|
|
679
|
+
@Column({ name: 'user_id' })
|
|
650
680
|
userId: string;
|
|
651
681
|
|
|
652
|
-
@
|
|
682
|
+
@ManyToOne(() => User, { onDelete: 'CASCADE' })
|
|
683
|
+
@JoinColumn({ name: 'user_id' })
|
|
684
|
+
user: User;
|
|
685
|
+
|
|
686
|
+
@Column({ type: 'jsonb', nullable: true })
|
|
687
|
+
metadata: Record<string, any>;
|
|
688
|
+
|
|
689
|
+
@Column({ nullable: true })
|
|
690
|
+
errorMessage: string;
|
|
691
|
+
|
|
692
|
+
@CreateDateColumn({ name: 'created_at' })
|
|
653
693
|
createdAt: Date;
|
|
654
694
|
|
|
655
|
-
@UpdateDateColumn()
|
|
695
|
+
@UpdateDateColumn({ name: 'updated_at' })
|
|
656
696
|
updatedAt: Date;
|
|
657
697
|
}
|
|
658
698
|
```
|
|
659
699
|
|
|
700
|
+
### Complete Payment Service Example
|
|
701
|
+
|
|
702
|
+
```typescript
|
|
703
|
+
// payments.service.ts
|
|
704
|
+
import { Injectable, NotFoundException } from '@nestjs/common';
|
|
705
|
+
import { InjectRepository } from '@nestjs/typeorm';
|
|
706
|
+
import { Repository } from 'typeorm';
|
|
707
|
+
import { YouCanPayService, CurrencyCode, parseWebhookPayload, ParsedWebhookPayload } from '@wiicode/youcanpay-sdk';
|
|
708
|
+
import { Payment } from './payment.entity';
|
|
709
|
+
import { PaymentStatus } from './payment-status.enum';
|
|
710
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
711
|
+
|
|
712
|
+
@Injectable()
|
|
713
|
+
export class PaymentsService {
|
|
714
|
+
constructor(
|
|
715
|
+
@InjectRepository(Payment)
|
|
716
|
+
private readonly paymentRepo: Repository<Payment>,
|
|
717
|
+
private readonly youcanpay: YouCanPayService,
|
|
718
|
+
) {}
|
|
719
|
+
|
|
720
|
+
async createPayment(userId: string, amount: number, currency: string, customerIp: string) {
|
|
721
|
+
const orderId = uuidv4();
|
|
722
|
+
|
|
723
|
+
// 1. Save payment to database
|
|
724
|
+
const payment = this.paymentRepo.create({
|
|
725
|
+
orderId,
|
|
726
|
+
amount,
|
|
727
|
+
currency,
|
|
728
|
+
userId,
|
|
729
|
+
status: PaymentStatus.PENDING,
|
|
730
|
+
});
|
|
731
|
+
await this.paymentRepo.save(payment);
|
|
732
|
+
|
|
733
|
+
// 2. Create token with YouCanPay
|
|
734
|
+
const { token } = await this.youcanpay.createToken({
|
|
735
|
+
orderId,
|
|
736
|
+
amount,
|
|
737
|
+
currency: currency as CurrencyCode,
|
|
738
|
+
customerIp,
|
|
739
|
+
successUrl: `${process.env.APP_URL}/payments/success`,
|
|
740
|
+
errorUrl: `${process.env.APP_URL}/payments/error`,
|
|
741
|
+
});
|
|
742
|
+
|
|
743
|
+
// 3. Update payment with token ID
|
|
744
|
+
payment.tokenId = token.id;
|
|
745
|
+
await this.paymentRepo.save(payment);
|
|
746
|
+
|
|
747
|
+
return {
|
|
748
|
+
paymentId: payment.id,
|
|
749
|
+
paymentUrl: this.youcanpay.getPaymentUrl(token.id),
|
|
750
|
+
};
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
async handleWebhook(payload: unknown) {
|
|
754
|
+
const webhook = parseWebhookPayload(payload);
|
|
755
|
+
|
|
756
|
+
const payment = await this.paymentRepo.findOne({
|
|
757
|
+
where: { orderId: webhook.orderId },
|
|
758
|
+
});
|
|
759
|
+
|
|
760
|
+
if (!payment) {
|
|
761
|
+
throw new NotFoundException('Payment not found');
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
// Idempotency check
|
|
765
|
+
if (payment.status === PaymentStatus.COMPLETED) {
|
|
766
|
+
return { received: true, already_processed: true };
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
// Update payment status
|
|
770
|
+
payment.transactionId = webhook.transactionId;
|
|
771
|
+
payment.status = webhook.isSuccess ? PaymentStatus.COMPLETED : PaymentStatus.FAILED;
|
|
772
|
+
await this.paymentRepo.save(payment);
|
|
773
|
+
|
|
774
|
+
return { received: true };
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
async getPaymentByOrderId(orderId: string) {
|
|
778
|
+
return this.paymentRepo.findOne({ where: { orderId } });
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
async getUserPayments(userId: string) {
|
|
782
|
+
return this.paymentRepo.find({
|
|
783
|
+
where: { userId },
|
|
784
|
+
order: { createdAt: 'DESC' },
|
|
785
|
+
});
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
```
|
|
789
|
+
|
|
790
|
+
### Mongoose Example (MongoDB)
|
|
791
|
+
|
|
792
|
+
```typescript
|
|
793
|
+
// payment.schema.ts
|
|
794
|
+
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
|
|
795
|
+
import { Document } from 'mongoose';
|
|
796
|
+
|
|
797
|
+
export enum PaymentStatus {
|
|
798
|
+
PENDING = 'PENDING',
|
|
799
|
+
COMPLETED = 'COMPLETED',
|
|
800
|
+
FAILED = 'FAILED',
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
@Schema({ timestamps: true })
|
|
804
|
+
export class Payment extends Document {
|
|
805
|
+
@Prop({ required: true, unique: true })
|
|
806
|
+
orderId: string;
|
|
807
|
+
|
|
808
|
+
@Prop()
|
|
809
|
+
tokenId: string;
|
|
810
|
+
|
|
811
|
+
@Prop()
|
|
812
|
+
transactionId: string;
|
|
813
|
+
|
|
814
|
+
@Prop({ required: true })
|
|
815
|
+
amount: number;
|
|
816
|
+
|
|
817
|
+
@Prop({ required: true })
|
|
818
|
+
currency: string;
|
|
819
|
+
|
|
820
|
+
@Prop({ enum: PaymentStatus, default: PaymentStatus.PENDING })
|
|
821
|
+
status: PaymentStatus;
|
|
822
|
+
|
|
823
|
+
@Prop({ required: true })
|
|
824
|
+
userId: string;
|
|
825
|
+
|
|
826
|
+
@Prop({ type: Object })
|
|
827
|
+
metadata: Record<string, any>;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
export const PaymentSchema = SchemaFactory.createForClass(Payment);
|
|
831
|
+
```
|
|
832
|
+
|
|
660
833
|
### Status Flow
|
|
661
834
|
|
|
662
835
|
```
|
|
@@ -674,7 +847,7 @@ PENDING ──────┬──────> COMPLETED (webhook: transaction
|
|
|
674
847
|
YouCanPay uses **centimes** (smallest currency unit):
|
|
675
848
|
|
|
676
849
|
```typescript
|
|
677
|
-
import { toCentimes, fromCentimes, formatAmount } from 'youcanpay-sdk';
|
|
850
|
+
import { toCentimes, fromCentimes, formatAmount } from '@wiicode/youcanpay-sdk';
|
|
678
851
|
|
|
679
852
|
// User enters: 50.00 MAD
|
|
680
853
|
const centimes = toCentimes(50.00); // 5000
|
|
@@ -686,7 +859,7 @@ const display = formatAmount(5000, 'MAD'); // "50.00 MAD"
|
|
|
686
859
|
### Input Validation
|
|
687
860
|
|
|
688
861
|
```typescript
|
|
689
|
-
import { validatePaymentInput } from 'youcanpay-sdk';
|
|
862
|
+
import { validatePaymentInput } from '@wiicode/youcanpay-sdk';
|
|
690
863
|
|
|
691
864
|
const validation = validatePaymentInput({
|
|
692
865
|
amount: userInput.amount,
|
|
@@ -718,7 +891,7 @@ if (!validation.valid) {
|
|
|
718
891
|
### YouCanPayError
|
|
719
892
|
|
|
720
893
|
```typescript
|
|
721
|
-
import { YouCanPayError, ErrorCodes } from 'youcanpay-sdk';
|
|
894
|
+
import { YouCanPayError, ErrorCodes } from '@wiicode/youcanpay-sdk';
|
|
722
895
|
|
|
723
896
|
try {
|
|
724
897
|
await client.createToken({ ... });
|
|
@@ -790,7 +963,7 @@ Use any future expiry date and any 3-digit CVV.
|
|
|
790
963
|
|
|
791
964
|
```typescript
|
|
792
965
|
// Jest mock
|
|
793
|
-
jest.mock('youcanpay-sdk', () => ({
|
|
966
|
+
jest.mock('@wiicode/youcanpay-sdk', () => ({
|
|
794
967
|
YouCanPayClient: jest.fn().mockImplementation(() => ({
|
|
795
968
|
createToken: jest.fn().mockResolvedValue({
|
|
796
969
|
token: { id: 'test-token-123' },
|
|
@@ -840,9 +1013,15 @@ interface YouCanPayOptions {
|
|
|
840
1013
|
|
|
841
1014
|
## Support
|
|
842
1015
|
|
|
1016
|
+
- [GitHub Repository](https://github.com/eeyuub/youcanpay)
|
|
1017
|
+
- [Report Issues](https://github.com/eeyuub/youcanpay/issues)
|
|
1018
|
+
- [npm Package](https://www.npmjs.com/package/@wiicode/youcanpay-sdk)
|
|
843
1019
|
- [YouCanPay Documentation](https://youcanpay.com/docs)
|
|
844
|
-
|
|
1020
|
+
|
|
1021
|
+
## Author
|
|
1022
|
+
|
|
1023
|
+
**WiiCode** - [@eeyuub](https://github.com/eeyuub)
|
|
845
1024
|
|
|
846
1025
|
## License
|
|
847
1026
|
|
|
848
|
-
MIT
|
|
1027
|
+
MIT - see [LICENSE](https://github.com/eeyuub/youcanpay/blob/master/LICENSE) for details.
|
package/dist/client.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.YouCanPayClient = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
const crypto_1 = require("crypto");
|
|
8
9
|
const constants_1 = require("./constants");
|
|
9
10
|
const errors_1 = require("./errors");
|
|
10
11
|
const enums_1 = require("./enums");
|
|
@@ -25,10 +26,11 @@ class YouCanPayClient {
|
|
|
25
26
|
}
|
|
26
27
|
async createToken(params) {
|
|
27
28
|
const startTime = Date.now();
|
|
29
|
+
const orderId = params.orderId ?? (0, crypto_1.randomUUID)();
|
|
28
30
|
const body = new URLSearchParams();
|
|
29
31
|
body.append('pri_key', this.privateKey);
|
|
30
32
|
body.append('pub_key', this.publicKey);
|
|
31
|
-
body.append('order_id',
|
|
33
|
+
body.append('order_id', orderId);
|
|
32
34
|
body.append('amount', String(params.amount));
|
|
33
35
|
body.append('currency', params.currency);
|
|
34
36
|
body.append('customer_ip', params.customerIp);
|
|
@@ -62,11 +64,11 @@ class YouCanPayClient {
|
|
|
62
64
|
try {
|
|
63
65
|
const response = await this.http.post('/tokenize', body);
|
|
64
66
|
const data = response.data;
|
|
65
|
-
await this.logger.log('createToken', { orderId
|
|
67
|
+
await this.logger.log('createToken', { orderId, amount: params.amount, currency: params.currency }, data, 'success', Date.now() - startTime, params.metadata);
|
|
66
68
|
return data;
|
|
67
69
|
}
|
|
68
70
|
catch (error) {
|
|
69
|
-
await this.logger.log('createToken', { orderId
|
|
71
|
+
await this.logger.log('createToken', { orderId, amount: params.amount, currency: params.currency }, undefined, 'error', Date.now() - startTime);
|
|
70
72
|
throw this.handleError(error);
|
|
71
73
|
}
|
|
72
74
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA6C;AAC7C,2CAKqB;AACrB,qCAAsD;AACtD,mCAA+B;AAC/B,6CAAmD;AAYnD,MAAa,eAAe;IAO1B,YAAY,OAAyB;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,GAAG,eAAK,CAAC,MAAM,CAAC;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,sCAA0B,CAAC,CAAC,CAAC,8BAAkB;YACvE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|