Nhảy tới nội dung

Giao dịch hoàn tiền (refund)

Đây là API để hệ thống merchant gửi yêu cầu hoàn tiền cho giao dịch qua hệ thống Cổng thanh toán VNPAY.

Chú ý:
  • refund là một trong các chức năng bị hạn chế bởi VNPAY trong môi trường sandbox, bạn cần liên hệ VNPAY để được hỗ trợ.
  • Xem thêm tại issue#12

Refund

import { Refund, RefundResponse, dateFormat, getDateInGMT7, VnpTransactionType } from 'vnpay';

/* ... */

/**
* Date phải là timezone GMT+7
* Và format theo định dạng `yyyyMMddHHmmss`
* Dùng 2 hàm `getDateInGMT7` và `dateFormat` để chuyển đổi
*/
const refundRequestDate = dateFormat(getDateInGMT7(new Date('2024/05/26')));
const orderCreatedAt = dateFormat(getDateInGMT7(new Date('2024/05/21')));

const result: RefundResponse = await vnpay.refund({
vnp_Amount: 10000,
vnp_CreateBy: 'giang',
vnp_CreateDate: refundRequestDate,
vnp_IpAddr: '127.0.0.1',
vnp_OrderInfo: 'Test order',
vnp_RequestId: '123456',
vnp_TransactionDate: orderCreatedAt,
vnp_TransactionType: VnpTransactionType.FULL_REFUND,
vnp_TxnRef: '123456',
vnp_Locale: VnpLocale.EN,
// vnp_TransactionNo: 123456, // optional
} as Refund);

Các thuộc tính

Refund

Thuộc tínhKiểu dữ liệuMô tả
vnp_AmountnumberSố tiền hoàn trả lại cho khách hàng. Số tiền này nhỏ hơn hoặc bằng số tiền của giao dịch
vnp_CreateBystringNgười khởi tạo hoàn tiền. Có thể là tên user thực hiện hoàn tiền của merchant.
vnp_CreateDatenumberThời gian phát sinh request hoàn (Request Date) GMT+7
vnp_IpAddrstringĐịa chỉ IP của máy chủ thực hiện gọi API
vnp_OrderInfostringMô tả thông tin yêu cầu hoàn( Request description)
vnp_RequestIdstringMã hệ thống merchant tự sinh ứng với mỗi yêu cầu hoàn trả giao dịch. Mã này là duy nhất dùng để phân biệt các yêu cầu hoàn trả giao dịch. Không được trùng lặp trong ngày.
vnp_TransactionDatenumberThời gian ghi nhận giao dịch tại website của merchant tính theo GMT+7
vnp_TransactionNonumberMã giao dịch ghi nhận tại hệ thống VNPAY
vnp_TransactionTypeVnpTransactionTypeLoại giao dịch tại hệ thống VNPAY
vnp_TxnRefstringLà mã giao dịch thanh toán của hệ thống merchant gửi VNPAY yêu cầu thanh toán.

RefundResponse

Thuộc tínhKiểu dữ liệuMô tả
isSuccessbooleanKết quả của yêu cầu
isVerifiedbooleanKết quả xác thực tính toàn vẹn của dữ liệu khi nhận về từ VNPay
messagestringThông báo xác thực
......Các tham số khác của VNPay sẽ trả về, tham khảo tại đây

Xem thêm các thuộc tính VNPay sẽ trả về tại VNPay.

mẹo

Các tham số mà VNPay trả về cũng nằm trong đối tượng RefundResponse.