Để sử dụng toàn bộ tiện ích nâng cao của Hệ Thống Pháp Luật vui lòng lựa chọn và đăng ký gói cước.
NGÂN HÀNG NHÀ NƯỚC | CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM |
Số: 3956/NHNN-TT | Hà Nội, ngày 25 tháng 05 năm 2023 |
Kính gửi: | - Các ngân hàng, chi nhánh ngân hàng nước ngoài; |
Nhằm tiếp tục đẩy mạnh thanh toán không dùng tiền mặt (TTKDTM) và triển khai có hiệu quả Chương trình chuyển đổi số Quốc gia, Đề án phát triển ứng dụng dữ liệu về dân cư, định danh và xác thực điện tử phục vụ chuyển đổi số quốc gia giai đoạn 2022 - 2025, tầm nhìn đến năm 20301. Tiếp tục nghiên cứu, áp dụng các chương trình, chính sách ưu đãi về phí dịch vụ thanh toán, trung gian thanh toán đối với khách hàng, trong đó ưu tiên thực hiện miễn phí duy trì tài khoản, phí rút tiền mặt đối với các khách hàng thuộc nhóm đối tượng hưởng chính sách an sinh xã hội2. Tích cực hưởng ứng và chủ động triển khai các hoạt động thiết thực trong khuôn khổ Chương trình Ngày không tiền mặt năm 2023 thông qua các chương trình ưu đãi, chính sách khuyến mại phù hợp trong thời gian diễn ra sự kiện (trong tháng 06/2023 và đỉnh điểm vào Ngày không tiền mặt - 16/6 năm 2023), cụ thể:
2.1. Các ngân hàng, chi nhánh ngân hàng nước ngoài
- Nghiên cứu, áp dụng chính sách ưu đãi hợp lý; phối hợp với các đơn vị chấp nhận thanh toán (đơn vị cung ứng điện, nước, dịch vụ viễn thông, trang thương mại điện tử, siêu thị, nhà hàng, trung tâm mua sắm,...) thực hiện các chương trình khuyến mại, quảng bá dịch vụ, tri ân khách hàng nhằm khuyến khích khách hàng TTKDTM như: miễn giảm phí dịch vụ thanh toán; tặng quà, hoàn tiền, giảm giá hàng hóa dịch vụ, tặng điểm thưởng,... cho khách hàng khi mở mới tài khoản thanh toán, thẻ ngân hàng,... hoặc thực hiện thanh toán hóa đơn, chi trả tiền mua hàng hóa, dịch vụ bằng các phương thức TTKDTM (thanh toán thẻ, thanh toán qua ứng dụng trên điện thoại di động, thanh toán qua mã QR, trích nợ tự động,…);
- Xem xét thực hiện ưu đãi phí chiết khấu cho các đơn vị chấp nhận thanh toán tham gia, đồng hành cùng với ngân hàng trong các chương trình khuyến mại, quảng bá dịch vụ, tri ân khách hàng trong thời gian diễn ra sự kiện.
2.2. Các tổ chức cung ứng dịch vụ trung gian thanh toán
- Phối hợp với ngân hàng, chi nhánh ngân hàng nước ngoài, các tổ chức cung ứng hàng hóa, dịch vụ.... nghiên cứu, áp dụng chính sách ưu đãi, khuyến mại hợp lý (giảm giá, chiết khấu, hoàn tiền, tích điểm thưởng, quay số,...) cho khách hàng sử dụng dịch vụ trung gian thanh toán;
- Các tổ chức cung ứng dịch vụ trung gian thanh toán cung ứng dịch vụ Ví điện tử có chính sách ưu đãi hợp lý (miễn, giảm phí, phiếu quà tặng,...) cho khách hàng đăng ký, liên kết thành công tài khoản Ví điện tử với thẻ ghi nợ nội địa, tài khoản thanh toán.
3. Các ngân hàng, chi nhánh ngân hàng nước ngoài và tổ chức cung ứng dịch vụ trung gian thanh toán chủ động xây dựng các chương trình, chính sách ưu đãi của đơn vị mình, quảng bá tới khách hàng và phối hợp với các tổ chức, đơn vị liên quan để triển khai thực hiện
Trong quá trình triển khai, nếu phát sinh vướng mắc, khó khăn, đề nghị phản ánh về NHNN (Vụ Thanh toán) để tổng hợp./.
| TL. THỐNG ĐỐC |
lồng nhau (bên trong) hay không
const memberID = 0;
const vbID = '0575d829db268d46081164b4e8df457c';
// State management cho phân tích
let isAnalyzing = false; // Có đang phân tích không
let currentAnalyzingAddress = null; // Address đang được phân tích
let currentAnalyzingElement = null; // Element đang được phân tích
let currentAnalyzingBadge = null; // Badge của element đang phân tích
let isPanelOpen = false; // Panel phân tích có đang mở không
console.log('Tiện ích loaded - memberID:', memberID, 'vbID:', vbID);
function isInViewportAndTabNoiDung(element) {
const rect = element.getBoundingClientRect();
const buffer = 1500; // Buffer to preload content below the viewport (approx. 50+ lines)
const viewHeight = window.innerHeight || document.documentElement.clientHeight;
const isInViewport = rect.top < viewHeight + buffer && rect.bottom >= 0;
const isInTabNoiDung = $(element).closest('#tab_noi_dung_vb').length > 0;
return isInViewport && isInTabNoiDung;
}
function getAddress(element) {
const validTags = ['trichyeu', 'cancu', 'phan', 'chuong', 'muc', 'tieumuc', 'dieu', 'khoan', 'diem'];
const $parent = $(element).closest(validTags.join(','));
if (!$parent.length) {
return null;
}
let addr = $parent.attr('address');
if (!addr && $parent.prop('tagName').toLowerCase() === 'trichyeu') {
addr = 'trichyeu';
$parent.attr('address', addr);
}
return addr || null;
}
function processTnplClasses($element) {
const tnplKeysInLine = new Set(); // key = slug hoặc text (thường là slug)
$element.find('tnpl').each(function () {
const $tnpl = $(this);
const tnplSlug = ($tnpl.attr('slug') || '').trim().toLowerCase();
const tnplKey = tnplSlug || $tnpl.text().trim().toLowerCase();
// Đã xử lý trong cùng dòng => bỏ
if (tnplKeysInLine.has(tnplKey)) {
return;
}
tnplKeysInLine.add(tnplKey);
let tnplExists = false;
// Chỉ duyệt các tnpl đã được tô màu (class on)
$('tnpl.on').each(function () {
const $existingTnpl = $(this);
const existingSlug = ($existingTnpl.attr('slug') || '').trim().toLowerCase();
const existingKey = existingSlug || $existingTnpl.text().trim().toLowerCase();
if (
existingKey === tnplKey &&
isInViewportAndTabNoiDung($existingTnpl[0])
) {
tnplExists = true;
return false; // break each
}
});
if (!tnplExists) {
$tnpl.addClass('on');
}
});
}
function processQueue() {
while (pendingRequests < maxConcurrentRequests && requestQueue.length > 0) {
const task = requestQueue.shift();
pendingRequests++;
task()
.always(() => {
pendingRequests--;
processQueue();
});
}
}
function processVisibleParagraphs() {
try {
$('#tab_noi_dung_vb p:not([is-posted="1"])').each(function () {
let $element = $(this);
if (isInViewportAndTabNoiDung(this)) {
$element.attr('is-posted', '1');
$element.addClass('loading-content');
let p_innerHTML = $element.html();
let address = null;
if (cac_cau_hinh.loai_noi_dung.includes('docs')) {
address = getAddress($element);
}
const isSubP = $element.parents('p').length > 0;
if (isSubP && !allow_sub_p) {
$element.removeClass('loading-content');
return; // Không gửi nếu không cho phép
}
const postData = { p_content: p_innerHTML, cac_cau_hinh, address };
if (isSubP && allow_sub_p) {
postData.sub_p = 1;
}
requestQueue.push(() =>
$.ajax({
url: '//tnpl' + (Math.floor(Math.random() * 10) + 1) + '.hethongphapluat.com/tien-ich/tim.tien.ich.php',
type: 'POST',
data: postData,
success: function(response) {
$element.html(response);
processTnplClasses($element);
// Đợi CTTD và các tiện ích load xong rồi mới attach badge
if (memberID === 4 && typeof attachPhanTichBadge === 'function') {
setTimeout(function() {
// $element chính là thẻ p, kiểm tra và attach badge trực tiếp
const $parent = $element.closest('phan, chuong, muc, tieumuc, dieu, khoan, diem');
if ($parent.length > 0 && $parent.find('.badge-phan-tich[data-for="' + $parent.attr('address') + '"]').length === 0) {
const address = $parent.attr('address');
$element.attr('data-address', address);
// Lấy tên loại thẻ cho tooltip
const parentType = getParentTypeName($parent.prop('tagName').toLowerCase());
// Append badge VÀO PARENT (dieu, khoan,...) thay vì vào để tránh xung đột CTTD
const $badge = $('Phân tích');
$parent.append($badge);
// Thêm class để CSS set position: relative CHỈ cho element có badge
$parent.addClass('has-phan-tich-badge');
}
// Xử lý các p con (nếu có sub-p)
attachPhanTichBadge($element);
}, 300); // Đợi 300ms để CTTD render xong
}
},
complete: function() {
$element.removeClass('loading-content');
}
})
);
processQueue();
}
});
} catch(e) {
console.error('Lỗi processVisibleParagraphs:', e);
}
}
$(window).on('scroll resize', function () {
processVisibleParagraphs();
});
console.log('Bắt đầu processVisibleParagraphs lần đầu...');
processVisibleParagraphs();
console.log('processVisibleParagraphs lần đầu hoàn thành');
// Chức năng phân tích điều luật (chỉ cho member_id = 4)
if (memberID === 4) {
// Modal cảnh báo
function showWarningModal(message) {
// Tạo modal nếu chưa có
if ($('#warningModal').length === 0) {
const modalHTML = `
' + message + '
const $badge = $('Phân tích');
$parent.append($badge);
// Thêm class để CSS set position: relative CHỈ cho element có badge
$parent.addClass('has-phan-tich-badge');
}
}
});
}
// Helper: Escape HTML entities
function escapeHtml(text) {
const map = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
return String(text).replace(/[&<>"']/g, function(m) { return map[m]; });
}
// Helper: Convert Markdown to HTML (đơn giản)
function markdownToHtml(markdown) {
if (!markdown) return '';
let html = markdown;
// Headers
html = html.replace(/^### (.*$)/gim, ' ' + para.replace(/\n/g, ' Đang phân tích... Đang phân tích... Đang xóa cache và phân tích lại... Đang phân tích...$1
');
html = html.replace(/^## (.*$)/gim, '$1
');
html = html.replace(/^# (.*$)/gim, '$1
');
// Bold
html = html.replace(/\*\*(.*?)\*\*/g, '$1');
// Italic
html = html.replace(/\*(.*?)\*/g, '$1');
// Blockquote
html = html.replace(/^> (.*$)/gim, '$1
');
html = html.replace(/^> (.*$)/gim, '$1
');
// Lists (unordered)
html = html.replace(/^\- (.*$)/gim, '$1
');
// Lists (ordered)
html = html.replace(/^\d+\. (.*$)/gim, '
') + '' + escapeHtml(response.ten_van_ban) + '
';
if (response.so_hieu) {
html += 'Số hiệu: ' + escapeHtml(response.so_hieu) + '
';
}
html += 'Điều khoản: ' + escapeHtml(response.address) + '';
if (response.from_cache) {
html += ' Cache';
}
html += '
Vui lòng thử lại sau.
Chi tiết: ${escapeHtml(errorMsg)}
' + escapeHtml(response.ten_van_ban) + '
';
if (response.so_hieu) {
html += 'Số hiệu: ' + escapeHtml(response.so_hieu) + '
';
}
html += 'Điều khoản: ' + escapeHtml(response.address) + '';
html += '
Vui lòng thử lại sau.
Chi tiết: ${escapeHtml(errorMsg)}