Comment accepter les paiements dans Telegram | API Yoomoney Python

Dans cet article, nous allons apprendre comment accepter les paiements dans le bot Telegram à l'aide de l'API Yoomoney.





introduction

Pour commencer, j'ai récemment voulu créer un magasin de produits électroniques sur Telegram. Et je suis tombé sur le problème qu'au moment du travail, il n'y avait pas de solutions toutes faites. Je voulais accepter des paiements sans entrepreneurs individuels et tout ce mouvement. Par conséquent, mon choix s'est porté entre Qiwi et Yoomoney (anciennement Yandex Money). Je suis moi-même de Biélorussie ... Par conséquent, il est plus facile d'obtenir un compte «identifié» auprès de Yoomoney.





En conséquence, j'ai créé la bibliothèque yoomoney pour Python.





Si ce message vous a aidé, veuillez jouer sur GitHub . Je serai très content!





La description

  • Nous obtenons le jeton





  • Vérification du jeton





  • Comment émettre une facture pour le paiement





  • Vérification du paiement





Nous obtenons le jeton

Pour utiliser l'API Yoomoney, vous devez obtenir un jeton spécial. Tout d'abord, nous enregistrons l'application:





1.  Accédez au portefeuille YuMoney. S'il n'y a pas de portefeuille,  créez-en un .





2.  Accédez à la page d' inscription de l'  application .





3.  Spécifiez les paramètres de l'application:





4.  Cliquez sur le bouton  Confirmer .





  , , (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
      
      



. . .





Formulaire de paiement

, .





: , ?

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.





Connaissant le libellé de la transaction, nous pouvons filtrer l'historique des transactions du portefeuille. Mettez simplement une étiquette dans 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)
      
      



En conséquence, nous obtenons une liste de toutes les opérations pour notre filtre:





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
      
      



Nous savons maintenant si le paiement a été effectué.





Tout! Rien d'autre n'est nécessaire pour recevoir des paiements.





Conclusion

Si ce message vous a aidé, veuillez jouer sur GitHub . Je serai très content!








All Articles