hyd*_*ous 19 django post http payment-gateway
我一直在尝试将支付网关集成到django的网站中.我无法从支付网关获取响应数据.
支付网关有php的示例文档,如下所示:
$ErrorTx = isset($_POST['Error']) ? $_POST['Error'] : ''; //Error Number
$ErrorResult = isset($_POST['ErrorText']) ? $_POST['ErrorText'] : ''; //Error message
$payID = isset($_POST['paymentid']) ? $_POST['paymentid'] : ''; //Payment Id
Run Code Online (Sandbox Code Playgroud)
在支付网关在输入卡详细信息等之后重定向到的URL的视图中,我正在检查它是否是GET if request.method == "GET"
然后将请求传递给函数.当我调试请求时,我可以看到一个空的查询字典.如果我尝试res = request.GET ['paymentid']之类的话,我会收到一条错误消息,指出没有名为paymentid的密钥.
我错过了一些明显的东西吗 我对django还很新,所以我确定我做错了什么.
Ala*_*air 34
res = request.GET['paymentid']
将提出一个KeyError
if paymentid
不在GET数据中.
您的示例php代码检查是否paymentid
在POST数据中,并设置$payID
为''否则:
$payID = isset($_POST['paymentid']) ? $_POST['paymentid'] : ''
Run Code Online (Sandbox Code Playgroud)
python中的等价物是使用get()
带有默认参数的方法:
payment_id = request.POST.get('payment_id', '')
Run Code Online (Sandbox Code Playgroud)
在调试时,这就是我所看到的
response.GET: <QueryDict: {}>
,request.POST: <QueryDict: {}>
看起来好像问题没有访问POST数据,但是没有POST数据.你是怎么调试的?您使用的是浏览器,还是访问您网页的支付网关?如果您分享您的观点,将会很有帮助.
一旦你设法将一些帖子数据提交到你的页面,将示例php转换为python应该不会太棘手.