大多数用于集成的支付框架都需要创建带有计算哈希的自定义表单,并将其提交给执行重定向的支付服务器。 表单的生成是在服务器端完成的(我假设由于安全原因),所以示例看起来我们得到了一种从输入字符串(来自POST)计算哈希的php文件,并且文档是提交的onload事件。一切正常。
现在进入agular世界,案例似乎有点不同,因为大多数代码都是在用户端处理的。 因此问题:如何正确地做到这一点?你能分享任何工作样本吗?
我试过以下: 1.准备生成表单的php(当浏览器直接调用php文件时有效)。 在角度应用程序中,我做了这样的POST:
$http({
method: "post",
url: "./app/components/db/order.php",
data: {
username: $scope.message.username,
phone: $scope.message.phone,
// all needed things
},
}).success(function (response) {
//success
})
.error(function(data, status, headers, config) {
// failure
});
这里的主要问题是php生成文档,但它似乎并没有真正重定向(至少我没有看到这种重定向发生在浏览器中)。 你能解释一下为什么它不起作用吗? 你能告诉我如何实现我的目标吗?
此外据我了解,在php端进行的任何回声都会导致从上面的代码进入“成功”部分 可以在没有回到角度的情况下进行POST吗?
我也在考虑以下解决方案: 1.准备将计算哈希(使用private-salt)并通过json返回的php文件 2.以角度准备形式(与需要生成的成功提交到付款站点完全相同),填充模型一旦php将返回哈希 3. POST到php文件,获取哈希,填写模型字段一旦成功 4.模型准备好后 - 然后提交表格。
问题是如何从angularjs中的js提交表单? 另外我不确定这样的解决方案是否安全?
请耐心等待我是angularjs的新手:)
反正。 谢谢你的帮助!
答案 0 :(得分:0)
您必须使用带有post方法的html表单
<form action="./app/components/db/order.php" method="POSTget">
<input type="text" name="username" value={{message.username}}/>
<input type="text" name="phone" value={{message.phone}}/>
<input type="submit"/>
</form>
您还可以隐藏您的安全辞职表单并触发表单使用javascript document.getElementById("myForm").submit();
此代码可以使用,因为此表单会将数据提交到 order.php ,但在您的代码中,$http
正在向 order.php <发送XHR请求/ strong>用于从服务器请求数据,客户端浏览器只是忽略标题,例如。 Location: http://www.example.com/
来自服务器以重定向到指定的网址,因此重定向未发生