/** * Copyright (C) 2014-2020 ServMask Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗ * ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝ * ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝ * ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗ * ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗ * ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ */ if ( ! defined( 'ABSPATH' ) ) { die( 'Kangaroos cannot jump here' ); } class Ai1wm_Export_Content { public static function execute( $params ) { // Set archive bytes offset if ( isset( $params['archive_bytes_offset'] ) ) { $archive_bytes_offset = (int) $params['archive_bytes_offset']; } else { $archive_bytes_offset = ai1wm_archive_bytes( $params ); } // Set file bytes offset if ( isset( $params['file_bytes_offset'] ) ) { $file_bytes_offset = (int) $params['file_bytes_offset']; } else { $file_bytes_offset = 0; } // Set content bytes offset if ( isset( $params['content_bytes_offset'] ) ) { $content_bytes_offset = (int) $params['content_bytes_offset']; } else { $content_bytes_offset = 0; } // Get processed files size if ( isset( $params['processed_files_size'] ) ) { $processed_files_size = (int) $params['processed_files_size']; } else { $processed_files_size = 0; } // Get total content files size if ( isset( $params['total_content_files_size'] ) ) { $total_content_files_size = (int) $params['total_content_files_size']; } else { $total_content_files_size = 1; } // Get total content files count if ( isset( $params['total_content_files_count'] ) ) { $total_content_files_count = (int) $params['total_content_files_count']; } else { $total_content_files_count = 1; } // What percent of files have we processed? $progress = (int) min( ( $processed_files_size / $total_content_files_size ) * 100, 100 ); // Set progress Ai1wm_Status::info( sprintf( __( 'Archiving %d content files...
%d%% complete', AI1WM_PLUGIN_NAME ), $total_content_files_count, $progress ) ); // Flag to hold if file data has been processed $completed = true; // Start time $start = microtime( true ); // Get content list file $content_list = ai1wm_open( ai1wm_content_list_path( $params ), 'r' ); // Set the file pointer at the current index if ( fseek( $content_list, $content_bytes_offset ) !== -1 ) { // Open the archive file for writing $archive = new Ai1wm_Compressor( ai1wm_archive_path( $params ) ); // Set the file pointer to the one that we have saved $archive->set_file_pointer( $archive_bytes_offset ); // Loop over files while ( list( $file_abspath, $file_relpath, $file_size, $file_mtime ) = fgetcsv( $content_list ) ) { $file_bytes_written = 0; // Add file to archive if ( ( $completed = $archive->add_file( $file_abspath, $file_relpath, $file_bytes_written, $file_bytes_offset ) ) ) { $file_bytes_offset = 0; // Get content bytes offset $content_bytes_offset = ftell( $content_list ); } // Increment processed files size $processed_files_size += $file_bytes_written; // What percent of files have we processed? $progress = (int) min( ( $processed_files_size / $total_content_files_size ) * 100, 100 ); // Set progress Ai1wm_Status::info( sprintf( __( 'Archiving %d content files...
%d%% complete', AI1WM_PLUGIN_NAME ), $total_content_files_count, $progress ) ); // More than 10 seconds have passed, break and do another request if ( ( $timeout = apply_filters( 'ai1wm_completed_timeout', 10 ) ) ) { if ( ( microtime( true ) - $start ) > $timeout ) { $completed = false; break; } } } // Get archive bytes offset $archive_bytes_offset = $archive->get_file_pointer(); // Truncate the archive file $archive->truncate(); // Close the archive file $archive->close(); } // End of the content list? if ( feof( $content_list ) ) { // Unset archive bytes offset unset( $params['archive_bytes_offset'] ); // Unset file bytes offset unset( $params['file_bytes_offset'] ); // Unset content bytes offset unset( $params['content_bytes_offset'] ); // Unset processed files size unset( $params['processed_files_size'] ); // Unset total content files size unset( $params['total_content_files_size'] ); // Unset total content files count unset( $params['total_content_files_count'] ); // Unset completed flag unset( $params['completed'] ); } else { // Set archive bytes offset $params['archive_bytes_offset'] = $archive_bytes_offset; // Set file bytes offset $params['file_bytes_offset'] = $file_bytes_offset; // Set content bytes offset $params['content_bytes_offset'] = $content_bytes_offset; // Set processed files size $params['processed_files_size'] = $processed_files_size; // Set total content files size $params['total_content_files_size'] = $total_content_files_size; // Set total content files count $params['total_content_files_count'] = $total_content_files_count; // Set completed flag $params['completed'] = $completed; } // Close the content list file ai1wm_close( $content_list ); return $params; } } SỐNG “NHÀN TÊNH” NHỜ TÍNH NĂNG “THANH TOÁN TỰ ĐỘNG” - Vay Tài Chính 247

SỐNG “NHÀN TÊNH” NHỜ TÍNH NĂNG “THANH TOÁN TỰ ĐỘNG”

Bạn có bao giờ rơi vào hoàn cảnh quên thanh toán hóa đơn?

Hay mất thời gian mỗi tháng phải ghi nhớ, nhắc lịch và xếp hàng, chờ đợi để thanh toán?

Với mong muốn mang đến sự tiện lợi tối đa, xua tan nỗi lo toan khi thanh toán khoản vay mỗi tháng. MAFC đã phối hợp cùng MoMo ra mắt 2 tính năng mới dành đến quý khách hàng:

Nội dung trong bài viết

“Thanh toán và ủy quyền thanh toán” qua ví MoMo trên ứng dụng My Finance
  1. Tại màn hình “Quản lý” >> Khoản vay >> Chọn “Thanh toán ngay”.
  2. Chọn kênh thanh toán “Ví MoMo”.
  3. Tại màn hình xác nhận thanh toán, bật nút “Ủy quyền thanh toán tự động” >> Chọn “Thanh toán và ủy quyền thanh toán”.
  4. Hệ thống tự động chuyển đến ví MoMo, chọn phương thức thanh toán phù hợp >> Tiếp tục.
  5. Tại màn hình “Thanh toán & ủy quyền thanh toán” >> Bấm xác nhận.
  6. Chuyển sang ứng dụng My Finance, thông báo trạng thái “Thanh toán và ủy quyền thanh toán thành công”

Xem hướng dẫn thực hiện chi tiết TẠI ĐÂY.

“Ủy quyền thanh toán tự động” trên ví MoMo
  1. Tại màn hình trang chủ ví MoMo >> Tìm kiếm “Thanh toán hóa đơn tự động”.
  2. Chọn “Mirae Asset”, nhập số hợp đồng >> “Tiếp tục”.
  3. Tại màn hình thông tin hóa đơn >> “Đăng ký thanh toán tự động”. 
  4. Cài đặt “Ngày thanh toán” cho khoản vay. 
  5. Nhấp chọn ô “Tôi đồng ý với Điều khoản sử dụng dịch vụ thanh toán tự động của MoMo” >> “Đăng ký”.

Xem hướng dẫn thực hiện chi tiết TẠI ĐÂY.

Ngay lúc này, việc thanh toán khoản vay MAFC chưa bao giờ đơn giản đến thế! Chỉ 1 lần đăng ký với chiếc điện thoại trên tay, khách hàng có thể dễ dàng thanh toán khoản vay MAFC tự động trọn đời và không mất phí giao dịch. Thêm vào đó, có thời gian tận hưởng cuộc sống, chăm lo nhà cửa và công việc. 

*Lưu ý:

Bạn có thể bỏ lỡ kỳ thanh toán khi tắt tính năng tự động thanh toán hoặc không có đủ tiền trong ví MoMo.

Bài được vaytaichinh247.net tổng hợp từ nhiều nguồn khác nhau cho bạn đọc tham khảo.