Через эквайринг CloudPayments происходит платёж, создаётся чек и ссылка на этот чек должна отправляться через вэбхук мне на сервер. Вебхук подключил, но журнал уведомлений в лк на сайте эквайера говорит что сервер вернул код 500. Пробовал сам отправлять
тот же самый запрос - всё работает. В поддержке подтвердили : если посылать вручную - работает, но сервис даёт 500 и на их стороне всё работает правильно. Ссылка на доки эквайера -
https://developers.cloudkassir.ru/#uvedomleniya . Лог из системного журнала -
Request: #35 V2 GET scooteradminpanel. ru/API/SetTransactionReceipt/?Id=xcFXqcG&DocumentNumber=2568&SessionNumber=31&Number=212&FiscalSign=4089338079&DeviceNumber=01801810027237&RegNumber=0005269331008904&FiscalNumber=9287440300810774&Inn=3528323904&Type=Income&Ofd=ООО «ПЕТЕР-СЕРВИС Спецтехнологии»&Url=https://ofd.ru/rec/3528323904/0005269331008904/928... 18:43:00&InvoiceId=&AccountId=4535&Receipt={"TinyUrl":"xcFXqcG","Email":null,"Phone":"+79858803440","CalculationPlace":"http://sota.world/","SettlePlace":"117342, Москва, ул. Бутлерова, 17Б","Items":[{"Label":"Поплнение счёта","Price":250.0,"Quantity":1.0,"Amount":250.0,"Department":null,"Vat":null,"EAN13":null,"AgentSign":null,"Method":0,"Object":0,"MeasurementUnit":null,"Code":null,"CalcVat":null,"VatDescription":null,"MethodName":null,"ObjectName":null,"AgentDescription":"","AgentData":null,"PurveyorData":null,"Excise":null,"CountryOriginCode":null,"CustomsDeclarationNumber":null,"ProductCodeData":null}],"TaxationSystem":1,"Amounts":{"Electronic":250.0,"Cash":0.0,"AdvancePayment":0.0,"Credit":0.0,"Provision":0.0},"IsBso":false,"Currency":0,"CustomerInfo":null,"CustomerInn":null,"HasServices":false,"AgentSign":null,"EncryptedData":null,"Signature":null,"HasAgentData":false,"CashierName":null,"CashierInn":null,"PurveyorData":null,"AgentData":null,"DocumentNumber":"2568","SessionNumber":"31","SessionCheckNumber":"212","FiscalSign":"4089338079","FiscalDate":"2021-06-02T18:43:00Z","DeviceNumber":"01801810027237","RegNumber":"0005269331008904","FiscalNumber":"9287440300810774","Ofd":0,"Url":"t=20210602T214300&s=250.00&fn=9287440300810774&i=2568&fp=4089338079&n=1","TestMode":false,"ClientAdress":"noreply@cloudkassir.ru","FfdVersion":105,"KkmModelName":"MicroPay-ФАС","IsSmsDisabled":true,"ReceiptQrCodeUrl":"https://qr.cloudpayments.ru/receipt?q=t%3d20210602... «ПЕТЕР-СЕРВИС Спецтехнологии»","OfdUrl":"ofd.ru","OfdInn":"7841465198","VatTotals":[{"Vat":null,"Label":null,"Amount":0.0}],"TaxationSystemDescription":"УСН (Доход)"}&CalculationPlace=sota.world/&SettlePlace=117342, Москва, ул. Бутлерова, 17Б
Response: The remote server returned an error: (500) Internal Server Error.
Код моего метода -
class SetTransactionReceipt(APIView):
@swagger_auto_schema(operation_description="Закрыть заказ")
def get(self, request):
data = request.query_params
if 'TransactionId' in data:
q = request.query_params['n']
t = '{' + q[q.index(',') + 1:]
url = json.loads(t)['ReceiptOfdUrl']
new_link = ReceiptUrl(transaction_id=data['TransactionId'], link=url)
new_link.save()
else:
return HttpResponse(json.dumps({'code': 1}))
return HttpResponse(json.dumps({'code': 0}))