Dalam posting ini, kita akan belajar bagaimana menerima pembayaran di bot Telegram menggunakan API Yoomoney.
pengantar
Pertama-tama, saya baru-baru ini ingin membuat toko barang elektronik di Telegram. Dan saya mengalami masalah bahwa pada saat bekerja tidak ada solusi yang siap pakai. Saya ingin menerima pembayaran tanpa pengusaha individu dan semua gerakan ini. Oleh karena itu, pilihan saya adalah antara Qiwi dan Yoomoney (sebelumnya Yandex Money). Saya sendiri dari Belarusia ... Oleh karena itu, lebih mudah mendapatkan akun "Identifikasi" dari Yoomoney.
Hasilnya, saya membuat perpustakaan yoomoney untuk Python.
Jika postingan ini membantu Anda, harap bintangi di GitHub . Saya akan sangat senang!
Deskripsi
Kami mendapatkan tokennya
Memeriksa token
Bagaimana menerbitkan faktur untuk pembayaran
Verifikasi pembayaran
Kami mendapatkan tokennya
Untuk menggunakan Yoomoney API, Anda perlu mendapatkan token khusus. Pertama-tama, kami mendaftarkan aplikasinya:
1. Buka dompet YuMoney. Jika tidak ada dompet, buatlah .
2. Buka halaman Pendaftaran Aplikasi .
3. Tentukan parameter aplikasi:
4. Klik tombol Konfirmasi .
, , (client_id) , , (client_secret).
!
client_id redirect_uri, .
: . .
pip install yoomoney
from yoomoney import Authorize
Authorize(
client_id="YOUR_CLIENT_ID",
redirect_uri="YOUR_REDIRECT_URI",
scope=["account-info",
"operation-history",
"operation-details",
"incoming-transfers",
"payment-p2p",
"payment-shop",
]
)
! !
YOUR_TOKEN :
from yoomoney import Client
token = "YOUR_TOKEN"
client = Client(token)
user = client.account_info()
print("Account number:", user.account)
print("Account balance:", user.balance)
print("Account currency code in ISO 4217 format:", user.currency)
print("Account status:", user.account_status)
print("Account type:", user.account_type)
print("Extended balance information:")
for pair in vars(user.balance_details):
print("\t-->", pair, ":", vars(user.balance_details).get(pair))
print("Information about linked bank cards:")
cards = user.cards_linked
if len(cards) != 0:
for card in cards:
print(card.pan_fragment, " - ", card.type)
else:
print("No card is linked to the account")
:
Account number: 410019014512803
Account balance: 999999999999.99
Account currency code in ISO 4217 format: 643
Account status: identified
Account type: personal
Extended balance information:
--> total : 999999999999.99
--> available : 999999999999.99
--> deposition_pending : None
--> blocked : None
--> debt : None
--> hold : None
Information about linked bank cards:
No card is linked to the account
! .
Quickpay.
from yoomoney import Quickpay
quickpay = Quickpay(
receiver="410019014512803",
quickpay_form="shop",
targets="Sponsor this project",
paymentType="SB",
sum=150,
)
print(quickpay.base_url)
print(quickpay.redirected_url)
:
https://yoomoney.ru/quickpay/confirm.xml?receiver=410019014512803&quickpay-form=shop&targets=Sponsor%20this%20project&paymentType=SB&sum=150
https://yoomoney.ru/transfer/quickpay?requestId=343532353937313933395f66326561316639656131626539326632616434376662373665613831373636393537613336383639
. . .
, .
: , ?
label - , . , .
:
from yoomoney import Quickpay
quickpay = Quickpay(
receiver="410019014512803",
quickpay_form="shop",
targets="Sponsor this project",
paymentType="SB",
sum=150,
lebel="a1b2c3d4e5"
)
print(quickpay.base_url)
print(quickpay.redirected_url)
.
Client.
Mengetahui label transaksi, kita dapat memfilter riwayat transaksi dompet. Cukup beri label di client.operation_history ():
from yoomoney import Client
token = "YOUR_TOKEN"
client = Client(token)
history = client.operation_history(label="a1b2c3d4e5")
print("List of operations:")
print("Next page starts with: ", history.next_record)
for operation in history.operations:
print()
print("Operation:",operation.operation_id)
print("\tStatus -->", operation.status)
print("\tDatetime -->", operation.datetime)
print("\tTitle -->", operation.title)
print("\tPattern id -->", operation.pattern_id)
print("\tDirection -->", operation.direction)
print("\tAmount -->", operation.amount)
print("\tLabel -->", operation.label)
print("\tType -->", operation.type)
Hasilnya, kami mendapatkan daftar semua operasi untuk filter kami:
List of operations:
Next page starts with: None
Operation: 670278348725002105
Status --> success
Datetime --> 2021-10-10 10:10:10
Title --> ****4487
Pattern id --> None
Direction --> in
Amount --> 150.0
Label --> a1b2c3d4e5
Type --> deposition
Sekarang kami tahu apakah pembayaran berhasil.
Segala sesuatu! Tidak ada lagi yang dibutuhkan untuk menerima pembayaran.
Kesimpulan
Jika postingan ini membantu Anda, harap bintangi di GitHub . Saya akan sangat senang!