From e5d2c2c4802c32c8fbad34e0595b2cfeb2281905 Mon Sep 17 00:00:00 2001 From: lehuygiang28 Date: Tue, 21 May 2024 14:19:05 +0700 Subject: [PATCH] docs(docs): :memo: update docs for log feature --- docs/docs/create-payment-url.md | 73 +++++++++++++++++++++++++++++++-- docs/docs/installation.md | 17 ++++++++ docs/docs/verify-ipn-call.md | 9 +++- docs/docs/verify-return-url.md | 9 +++- 4 files changed, 101 insertions(+), 7 deletions(-) diff --git a/docs/docs/create-payment-url.md b/docs/docs/create-payment-url.md index c9f02f1..66895e7 100644 --- a/docs/docs/create-payment-url.md +++ b/docs/docs/create-payment-url.md @@ -24,7 +24,13 @@ const paymentUrl = vnpay.buildPaymentUrl({ }); ``` -## Các thuộc tính +## API + +```ts +buildPaymentUrl(params: BuildPaymentUrl, options?: BuildPaymentUrlOptions): string +``` + +### Các thuộc tính của `BuildPaymentUrl` | Thuộc tính | Mô tả | Ghi chú | | ------------- | ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -38,9 +44,68 @@ const paymentUrl = vnpay.buildPaymentUrl({ Xem thêm các thuộc tính khác tại [VNPay](https://sandbox.vnpayment.vn/apis/docs/thanh-toan-pay/pay.html#danh-s%C3%A1ch-tham-s%E1%BB%91). -## Sử dụng trong Express +### Các thuộc tính của `BuildPaymentUrlOptions` + +| Thuộc tính | Kiểu dữ liệu | Mô tả | Ghi chú | +| ---------- | ---------------------------------------------------- | ----------------------------- | -------- | +| withHash | boolean | Cho phép `paymentUrl` có hash | Tùy chọn | +| logger | [LoggerOptions](./api/type-aliases/LoggerOptions.md) | Các option ghi log | Tùy chọn | + +## Sử dụng + +### Sử dụng logger {#use-logger} + +```typescript +import { ProductCode, VnpLocale, consoleLogger } from 'vnpay'; + +/* ... */ + +const paymentUrl = vnpay.buildPaymentUrl( + { + vnp_Amount: 10000, + vnp_IpAddr: '1.1.1.1', + vnp_TxnRef: '123456', + vnp_OrderInfo: 'Payment for order 123456', + vnp_OrderType: ProductCode.Other, + vnp_ReturnUrl: `http://localhost:${port}/vnpay-return`, + }, + { + logger: { + type: 'pick', // Chế độ chọn trường log, có thể là 'pick', 'omit' hoặc 'all' + fields: ['createdAt', 'method', 'paymentUrl'], // Chọn các trường cần log + loggerFn: consoleLogger, // Log dữ liệu ra console, có thể thay bằng hàm khác + }, + }, +); +``` + +### Sử dụng custom logger + +```typescript +import { ProductCode, VnpLocale, consoleLogger } from 'vnpay'; + +/* ... */ + +const paymentUrl = vnpay.buildPaymentUrl( + { + vnp_Amount: 10000, + vnp_IpAddr: '1.1.1.1', + vnp_TxnRef: '123456', + vnp_OrderInfo: 'Payment for order 123456', + vnp_OrderType: ProductCode.Other, + vnp_ReturnUrl: `http://localhost:${port}/vnpay-return`, + }, + { + logger: { + type: 'pick', // Chế độ chọn trường log, có thể là 'pick', 'omit' hoặc 'all' + fields: ['createdAt', 'method', 'paymentUrl'], // Chọn các trường cần log + loggerFn: (data) => logToDatabase(data), // Hàm lưu log vào database, bạn cần tự cài đặt + }, + }, +); +``` -### Với MVC +### Với Express MVC Các bước tạo URL thanh toán trong Express với MVC: @@ -74,7 +139,7 @@ app.post('/order', async (req, res) => { }); ``` -### Với API +### Với Express API Các bước tạo URL thanh toán trong Express với API: diff --git a/docs/docs/installation.md b/docs/docs/installation.md index baaaa0c..00e8192 100644 --- a/docs/docs/installation.md +++ b/docs/docs/installation.md @@ -35,11 +35,28 @@ import { VNPay } from 'vnpay'; ### Khởi tạo đối tượng ```typescript +import { ignoreLogger } from 'vnpay'; + const vnpay = new VNPay({ tmnCode: 'YOUR_TMNCODE', secureSecret: 'YOUR_SECURE_SECRET', vnpayHost: 'https://sandbox.vnpayment.vn', testMode: true, // tùy chọn, ghi đè vnpayHost thành sandbox nếu là true hashAlgorithm: 'SHA512', // tùy chọn + + /** + * Sử dụng enableLog để bật/tắt logger + * Nếu enableLog là false, loggerFn sẽ không được sử dụng trong bất kỳ phương thức nào + */ + enableLog: true, // optional + + /** + * Hàm `loggerFn` sẽ được gọi để ghi log + * Mặc định, loggerFn sẽ ghi log ra console + * Bạn có thể ghi đè loggerFn để ghi log ra nơi khác + * + * `ignoreLogger` là một hàm không làm gì cả + */ + loggerFn: ignoreLogger, // optional }); ``` diff --git a/docs/docs/verify-ipn-call.md b/docs/docs/verify-ipn-call.md index 647646b..61d47b4 100644 --- a/docs/docs/verify-ipn-call.md +++ b/docs/docs/verify-ipn-call.md @@ -33,7 +33,14 @@ Xem thêm các thuộc tính VNPay sẽ trả về tại [VNPay](https://sandbox Các tham số mà VNPay trả về cũng nằm trong đối tượng `VerifyIpnCall`. ::: -## Sử dụng trong Express +## Sử dụng + +### Sử dụng logger + +- Tương tự như khi tạo URL thanh toán, bạn có thể sử dụng logger để ghi log thông tin xác thực IPN + [xem tại đây](./create-payment-url.md#use-logger). + +### Với Express Các bước xác thực URL trả về trong Express: diff --git a/docs/docs/verify-return-url.md b/docs/docs/verify-return-url.md index 2e01dc8..619cf92 100644 --- a/docs/docs/verify-return-url.md +++ b/docs/docs/verify-return-url.md @@ -24,9 +24,14 @@ Thông tin sau khi xác thực và của VNPay trả về Giống với các thuộc tính của đối tượng [`VerifyIpnCall`](./verify-ipn-call.md#các-thuộc-tính-của-đối-tượng-verifyipncall) ::: -## Sử dụng trong Express +## Sử dụng -### Với MVC +### Sử dụng logger + +- Tương tự như khi tạo URL thanh toán, bạn có thể sử dụng logger để ghi log thông tin xác thực return URL + [xem tại đây](./create-payment-url.md#use-logger). + +### Với Express MVC Các bước xác thực URL trả về trong Express với MVC: