Advertisement
JouJoy

Untitled

Jul 10th, 2023
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.15 KB | None | 0 0
  1. import requests
  2. from requests.auth import HTTPBasicAuth
  3.  
  4. # Метод для авторизации платежа
  5. def authorize_payment(order_id, amount):
  6. url = 'https://megapay.com/api/authorize'
  7. token = '1234567890'
  8.  
  9. # Предварительная валидация данных
  10. if not order_id or not amount:
  11. print('Ошибка валидации данных: не указан идентификатор заказа или сумма платежа.')
  12. return
  13.  
  14. # Подготовка данных для запроса
  15. data = {
  16. 'orderId': order_id,
  17. 'amount': amount
  18. }
  19. try:
  20. # Выполнение запроса с авторизацией
  21. response = requests.post(url, json=data, auth=HTTPBasicAuth(token, ''))
  22.  
  23. # Обработка ошибок по коду состояния HTTP
  24. if response.status_code == 200:
  25. return response.json()
  26. else:
  27. print('Ошибка авторизации платежа:', response.status_code)
  28. except Exception as e:
  29. print('Error while connecting')
  30. print(e)
  31.  
  32. # Метод для выполнения платежа
  33. def make_payment(order_id, amount, card_number, card_expiry, card_cvv):
  34. url = 'https://megapay.com/api/pay'
  35. token = '1234567890'
  36.  
  37. # Предварительная валидация данных
  38. if not order_id or not amount or not card_number or not card_expiry or not card_cvv:
  39. print('Ошибка валидации данных: недостаточно информации для выполнения платежа.')
  40. return
  41.  
  42. # Подготовка данных для запроса
  43. data = {
  44. 'orderId': order_id,
  45. 'amount': amount,
  46. 'cardNumber': card_number,
  47. 'cardExpiry': card_expiry,
  48. 'cardCVV': card_cvv
  49. }
  50. try:
  51. # Выполнение запроса с авторизацией
  52. response = requests.post(url, json=data, auth=HTTPBasicAuth(token, ''))
  53.  
  54. # Обработка ошибок по коду состояния HTTP
  55. if response.status_code == 200:
  56. return response.json()
  57. else:
  58. print('Ошибка выполнения платежа:', response.status_code)
  59. except Exception as e:
  60. print('Error while connecting')
  61. print(e)
  62.  
  63. # Метод для возврата платежа
  64. def refund_payment(order_id):
  65. url = 'https://megapay.com/api/refund'
  66. token = '1234567890'
  67.  
  68. # Предварительная валидация данных
  69. if not order_id:
  70. print('Ошибка валидации данных: не указан идентификатор заказа для возврата платежа.')
  71. return
  72.  
  73. # Подготовка данных для запроса
  74. data = {
  75. 'orderId': order_id
  76. }
  77.  
  78. try:
  79. # Выполнение запроса с авторизацией
  80. response = requests.post(url, json=data, auth=HTTPBasicAuth(token, ''))
  81.  
  82. # Обработка ошибок по коду состояния HTTP
  83. if response.status_code == 200:
  84. return response.json()
  85. else:
  86. print('Ошибка возврата платежа:', response.status_code)
  87. except Exception as e:
  88. print('Error while connecting')
  89. print(e)
  90.  
  91. # Пример использования методов
  92. order_id = '12345'
  93. amount = 100.0
  94. card_number = '1234567812345678'
  95. card_expiry = '12/24'
  96. card_cvv = '123'
  97.  
  98. # Авторизация платежа
  99. auth_result = authorize_payment(order_id, amount)
  100. if auth_result:
  101. print('Платеж авторизован:', auth_result)
  102.  
  103. # Выполнение платежа
  104. payment_result = make_payment(order_id, amount, card_number, card_expiry, card_cvv)
  105. if payment_result:
  106. print('Платеж выполнен:', payment_result)
  107.  
  108. # Возврат платежа
  109. refund_result = refund_payment(order_id)
  110. if refund_result:
  111. print('Платеж возвращен:', refund_result)
  112.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement