B2W1234's picture
Update app.py
da00eb7 verified
import gradio as gr
from PIL import Image
import requests
import openpyxl
from openpyxl import load_workbook
all_content = []
def append_to_excel(content):
# Tên tệp Excel
file_path = "lienhoan.xlsx"
# Mở hoặc tạo mới tệp Excel
try:
workbook = load_workbook(file_path)
sheet = workbook.active
except FileNotFoundError:
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.append(["Số thứ tự", "Nội dung"]) # Thêm tiêu đề cột
# Tìm số thứ tự mới
new_row_number = sheet.max_row
# Thêm nội dung vào tệp Excel
sheet.append([new_row_number, content])
# Lưu tệp Excel
workbook.save(file_path)
return f"Nội dung '{content}' đã được thêm vào dòng {new_row_number} của tệp {file_path}"
def check_status_banking():
api_token = 'BDKRUEDQ7VPL6Z2HRMSGS3SEN0T4OA9NCFYAZ1BGK8LMQXBEQVUPY6IOFIIPMJB7'
# URL API MBBank để lấy danh sách giao dịch ngân hàng
url = 'https://my.sepay.vn/userapi/transactions/list'
# Header với API Token
headers = {
'Authorization': f'Bearer {api_token}',
'Content-Type': 'application/json'
}
# Tham số lọc (tùy chọn)
params = {
'account_number': '73899918092007', # Thay thế bằng số tài khoản của bạn
# 'transaction_date_min': '2023-01-01', # Thay thế bằng ngày bắt đầu
# 'transaction_date_max': '2023-12-31', # Thay thế bằng ngày kết thúc
'limit': 1 # Số lượng giao dịch trả về
}
# Gửi yêu cầu GET tới API
response = requests.get(url, headers=headers)
# print(response)
# Kiểm tra mã trạng thái HTTP của phản hồi
# Kiểm tra mã trạng thái HTTP của phản hồi
if response.status_code == 200:
# In nội dung phản hồi JSON
transactions = response.json()
transaction_content = transactions['transactions']
for value in transaction_content:
transaction_content = value['transaction_content']
all_content.append(transaction_content)
print(all_content)
return all_content
else:
print(f'Error: {response.status_code}')
print(response.text)
def get_qr_code(context_bank):
amount = "50000"
url = f"https://img.vietqr.io/image/MBBank-73899918092007-compact2.jpg?amount={amount}&addInfo={context_bank}&accountName=TRAN%20DINH%20NHAT"
print(url)
result = requests.get(url)
with open("qr_code.png", "wb") as f:
f.write(result.content)
qr_image = Image.open("qr_code.png")
return qr_image
def display_info():
# Thông tin tài khoản
account_name = "Trần Đình Nhật"
account_number = "738999918092007"
content = "Điền nội dung chuyển khoản"
# Ảnh QR code
return account_name, account_number, content
def check_payment_status(content):
# Giả sử kiểm tra trạng thái thanh toán và trả về thông báo
print("content", content)
content_banking = check_status_banking()
for i in content_banking:
if content in i:
result = append_to_excel(content)
return "Được rồi đó bạn iu"
else:
return "Tao chưa nhận được xiền, gửi lại mau thồn lằng"
# Tạo form Gradio
with gr.Blocks() as demo:
with gr.Row():
with gr.Column():
qr_image = gr.Image(label="QR Code", type="pil")
with gr.Column():
account_name = gr.Textbox(label="Tên tài khoản:", value="Trần Đình Nhật", interactive=False)
account_number = gr.Textbox(label="Số tài khoản:", value="738999918092007", interactive=False)
content = gr.Textbox(label="Nội dung:", value="chuyển khoản", interactive=True)
get_qr_button = gr.Button("Lấy mã qr")
get_qr_button.click(get_qr_code, inputs=content, outputs=qr_image)
payment_status_output = gr.Textbox(label="Trạng Thái Thanh Toán", interactive=False)
check_status_button = gr.Button("Check Trạng Thái Thanh Toán")
check_status_button.click(check_payment_status, inputs=content, outputs=payment_status_output)
with gr.Row():
gr.Markdown("© 2024 Trần Đình Nhật")
# Hiển thị thông tin và ảnh
get_qr_code(content)
demo.load(display_info, outputs=[account_name, account_number, content])
# Chạy ứng dụng
demo.launch(inline=False)