在angularjs中处理付款的正确方法

时间:2016-07-06 21:26:03

标签: angularjs

大多数用于集成的支付框架都需要创建带有计算哈希的自定义表单,并将其提交给执行重定向的支付服务器。 表单的生成是在服务器端完成的(我假设由于安全原因),所以示例看起来我们得到了一种从输入字符串(来自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的新手:)

反正。 谢谢你的帮助!

1 个答案:

答案 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/来自服务器以重定向到指定的网址,因此重定向未发生