【发布时间】:2017-11-30 02:44:55
【问题描述】:
我有一个单页应用程序。首先,用户将 JSON 数据(amount 和 user 数据)发布到 Django 后端服务器(Buy view)上的 URL API。然后视图获取数量和用户数据以创建散列变量。最后,我想重定向到接受上述数据的不同域的 URL。
def Buy(request):
key = 'some_key'
txnid = 'some_id'
amount = reques.data.get("amount")
firstname = request.user.firstname
surl = 'http://mysite.in/buy/success'
furl = 'http://mysite.in/buy/fail'
hash = ''
salt = 'some_salt'
hash_list = [key, txnid, str(amount), firstname, salt]
hash_seq = "|".join(hash_list)
hashed = hashlib.sha512(hash_seq)
hashed_hexdigest_lower = hashed.hexdigest().lower()
data = {
"key": key,
"txnid": txnid,
"amount": amount,
"firstname": firstname,
"surl": surl,
"furl": furl,
"HASH": hashed_hexdigest_lower
}
url = "https://test.site.in/payment"
return redirect(url, kwargs=data)
基本上,当重定向发生时,我想将上述数据发布到该 URL,就像提交表单一样。我如何在 Django 中做到这一点?
【问题讨论】:
-
发布请求重定向时重定向用户的意义何在。只需向服务器上的 url test.site.in/payment 发送数据请求,无论响应是什么,您都将其返回给用户
-
@ArpitSolanki 是的,这就是这里的问题。 URL (test.site.in/payment) 是一个不同的域,而不是来自我的服务器。这是我正在使用的另一家公司的支付网关 API。
-
使用请求库之类的东西向其他域发出请求
-
@ArpitSolanki 是的,但我需要在用户的浏览器中打开它,以便用户可以输入付款凭据。如何使用
requests做到这一点? -
如果用户正在输入他的付款凭据,那么您通过向该服务器发送带有用户数据的发布请求来尝试做什么。如果用户要查看该页面,那么它应该是向支付网站发出的获取请求,该请求将向他显示该页面。
标签: django django-views