Package: qiwiBillPaymentsAPI
Universal payments API Python SDKPython SDK модуль для внедрения единого платежного протокола эквайринга и QIWI Кошелька.Установка и подключениеУстановка с помощью pip:pip3installqiwiBillPaymentsAPIПодключение:fromQiwiBillPaymentsAPIimportQiwiBillPaymentsAPIДокументацияAPI P2P-счетов (для физических лиц):https://developer.qiwi.com/ru/p2p-paymentsAPI QIWI Кассы (для юридических лиц):https://developer.qiwi.com/ru/bill-paymentsАвторизацияДля использования SDK требуетсяPUBLIC_KEYиSECRET_KEY, подробности вдокументации.PUBLIC_KEY='48e7qUxn9T7RyYE1MVZswX1FRSbE6iyCj2gCRwwF3Dnh5XrasNTx3BGPiMsyXQFNKQhvukniQG8RTVhYm3iPywsuk1L1SFfXsQkJYBHTMPqBjvf57v4MCz22zbCf67Lz6fdJFmn2UuziWYc2aubucguB9R7yhBvnVjdHV6tTDKNQvcPEQEAV*********'SECRET_KEY='eyJ2ZXJzaW9uIjoicmVzdF92MyIsImRhdGEiOnsibWVyY2hhbnRfaWQiOjUyNjgxMiwiYXBpX3VzZXJfaWQiOjcxNjI2MTk3LCJzZWNyZXQiOiJmZjBiZmJiM2UxYzc0MjY3YjIyZDIzOGYzMDBkNDhlYjhiNTnONPININONPN090MTg5Z**********************'qiwiApi=QiwiBillPaymentsAPI(PUBLIC_KEY,SECRET_KEY)СменаPUBLIC_KEYиSECRET_KEYна новый:NEW_PUBLIC_KEY='cmVzdF92MyIsImRhdGEiOnsibWVyY2hhbnRfaWQiOjUyNjgxMiwiYXBpX3VzZXJfaWQiOjcxNjI2MTk3LCJzZWNyZXQiOiJmZjBiZmJiM2UxYzc0MjY3YjIyZDIzOGYzMDBkNDhlYjhiNTk5NmIbhchhbbiNTk5NmIbhHBHIBDBI*****************'NEW_SECRET_KEY='kokoOKPzaW9uIjoicmVzdF92MyIsImRhdGEiOnsibWVyY2hhbnRfaWQiOjUyNjgxMiwiYXBpX3VzZXJfaWQiOjcxNjI2MTk3LCJzZWNyZXQiOiJmZjBiZmJiM2UxYzc0MjY3YjIyZDIzOGYzMDBkNDhlYjhiNTk5NmIbhchhbbHBHIBDBI**********************'qiwiApi.public_key=NEW_PUBLIC_KEYqiwiApi.secret_key=NEW_SECRET_KEYПримерыПо-умолчанию пользователю доступно несколько способов оплаты. В платежной форме параметры счета передаются в открытом виде в ссылке. Далее клиенту отображается форма с выбором способа оплаты. При использовании этого способа нельзя гарантировать, что все счета выставлены мерчантом, в отличие от выставления по API.
Через API все параметры передаются в закрытом виде , так же в API поддерживаются операции выставления и отмены счетов, возврата средств по оплаченным счетам, а также проверки статуса выполнения операций.Платежная формаПростой способ для интеграции. При открытии формы клиенту автоматически выставляется счет. Параметры счета передаются в открытом виде в ссылке. Далее клиенту отображается платежная форма с выбором способа оплаты. При использовании этого способа нельзя гарантировать, что все счета выставлены мерчантом, в отличие от выставления по API.МетодcreatePaymentFormсоздает платежную форму. В параметрах нужно указать: ключ идентификации провайдера, полученный в QIWI КассеpublicKey, идентификатор счетаbillIdвнутри вашей системы и суммуamount. В результате будет получена ссылка на форму оплаты, которую можно передать клиенту. Подробнее о доступных параметрах вдокументации.params={'publicKey':qiwiApi.public_key,'amount':200,'billId':'893794793973','successUrl':'https://merchant.com/payment/success?billId=893794793973'}link=qiwiApi.createPaymentForm(params)В результате:https://oplata.qiwi.com/create?publicKey=2tbp1WQvsgQeziGY9vTLe9vDZNg7tmCymb4Lh6STQokqKrpCC6qrUUKEDZAJ7mvFnzr1yTebUiQaBLDnebLMMxL8nc6FF5zfmGQnypdXCbQJqHEJW5RJmKfj8nvgc&amount=200&billId=893794793973&successUrl=https%3A%2F%2Fmerchant.com%2Fpayment%2Fsuccess%3FbillId%3D893794793973&customFields[apiClient]=python_sdk&customFields[apiClientVersion]=3.1.2Выставление счетаНадежный способ для интеграции. Параметры передаются server2server с использованием авторизации. Метод позволяет выставить счет, при успешном выполнении запроса в ответе вернется параметрpayUrl- ссылка для редиректа пользователя на платежную форму.МетодcreateBillвыставляет новый счет. В параметрах нужно указать: идентификатор счетаbillIdвнутри вашей системы и дополнительными параметрамиfields. В результате будет получен ответ с данными о выставленном счете.billId='cc961e8d-d4d6-4f02-b737-2297e51fb48e'fields={'amount':1.00,'currency':'RUB','comment':'test','expirationDateTime':'2018-03-02T08:44:07','email':'example@mail.org','account':'client4563','successUrl':'http://test.ru/'}bill=qiwiApi.createBill(billId,fields)В результате:{"siteId":"270305","billId":"cc961e8d-d4d6-4f02-b737-2297e51fb48e","amount":{"currency":"RUB","value":"200.34"},"status":{"value":"WAITING","changedDateTime":"2018-07-12T10:28:38.855+03:00"},"comment":"test","creationDateTime":"2018-07-12T10:28:38.855+03:00","expirationDateTime":"2018-08-26T10:28:38.855+03:00","payUrl":"https://oplata.qiwi.com/form/?invoice_uid=bb773791-9bd9-42c1-b8fc-3358cd108422&successUrl=http%3A%2F%2Ftest.ru%2F"}Информация о счетеМетодgetBillInfoвозвращает информацию о счете. В параметрах нужно указать идентификатор счетаbillIdвнутри вашей системы, в результате будет получен ответ со статусом счета. Подробнее вдокументации.billId='cc961e8d-d4d6-4f02-b737-2297e51fb48e';billInfo=qiwiApi.getBillInfo(billId)Ответ:{"siteId":"270305","billId":"cc961e8d-d4d6-4f02-b737-2297e51fb48e","amount":{"currency":"RUB","value":"200.34"},"status":{"value":"WAITING","changedDateTime":"2018-07-12T10:31:06.846+03:00"},"comment":"test","creationDateTime":"2018-07-12T10:31:06.846+03:00","expirationDateTime":"2018-08-26T10:31:06.846+03:00","payUrl":"https://oplata.qiwi.com/form/?invoice_uid=ee3ad91d-cfb8-4dbf-8449-b6859fdfec3c"}Отмена неоплаченного счетаМетодcancelBillотменяет неоплаченный счет. В параметрах нужно указать идентификатор счетаbillIdвнутри вашей системы, в результате будет получен ответ с информацией о счете. Подробнее вдокументации.billId='cc961e8d-d4d6-4f02-b737-2297e51fb48e'qiwiApi.cancelBill(billId)Ответ:{"siteId":"270305","billId":"cc961e8d-d4d6-4f02-b737-2297e51fb48e","amount":{"currency":"RUB","value":"200.34"},"status":{"value":"REJECTED","changedDateTime":"2018-07-12T10:32:17.595+03:00"},"comment":"test","creationDateTime":"2018-07-12T10:32:17.481+03:00","expirationDateTime":"2018-08-26T10:32:17.481+03:00","payUrl":"https://oplata.qiwi.com/form/?invoice_uid=cc961e8d-d4d6-4f02-b737-2297e51fb48e"}