我将通过提供的回调URL从应用程序中的远程API接收通知。
如果我的回调网址是https://example.com/api/v1/sell/callback
远程API使用GET
以此方式向我的应用发送通知
https://example.com/api/v1/sell/callback?invoice_id=BNSLE30AL&address=1PTPiwZ4&transaction_hash=94d37dc&value=1075&confirmations=1
这是远程API发送的请求。
问题是他们的所有请求都收到404,我希望我可以使用request.query_params
来接收他们的响应中的数据,但是我显然不能,因为远程API无法到达此端点。
这是我用于回调的端点
@csrf_exempt
@list_route(methods=['GET'], permission_classes=[AllowAny])
def callback(self, request):
print(request.query_params)
print(request.data)
return Response(status=status.HTTP_200_OK)
由于我得到的只是一个404错误,因此如何使我的端点可访问外部API。
其他信息:
我正在使用Django Viewset
当我在没有任何参数的情况下向https://example.com/api/callback
发出请求时,便可以访问该端点。
更新: 我已经添加了由远程服务器发送的请求,现在我想我可能必须为此使用带有正则表达式的自定义网址...这个想法?
更新2:
views.py
class InvoiceModelViewSet(ModelViewSet):
model = Invoice
serializer_class = InvoiceModelSerializer
@csrf_exempt
@list_route(methods=['POST', 'GET'], permission_classes=[AllowAny])
def callback(self, request):
print(request.query_params)
return Response(status=status.HTTP_200_OK)
urls.py
使用视图集路由器
router.register(r'sell', InvoiceModelViewSet , base_name='sell')