2016-07-06 11 views
0

大多數用於集成的支付框架需要使用計算出的散列創建自定義表單並將其提交給重定向的支付服務器。 表單的生成是在服務器端完成的(我認爲是出於安全原因),所以示例看起來像我們得到了一種php文件,用於計算來自輸入字符串(來自POST)的散列並且文檔被submited onload事件。一切正常。在angularjs中處理付款的正確方法

現在進入世界的世界,情況似乎有點不同,因爲大部分代碼都是在用戶端處理的。 因此問題:如何正確地做到這一點?你能分享任何工作樣本嗎?

我嘗試了以下方法: 1.準備生成表單的php(當php文件被瀏覽器直接調用時工作)。 2.在角應用程序了我已經做了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.製備PHP文件,將計算的散列(私人鹽)和通過JSON 2.在需要產生角製備的形式(如一個完全相同返回它要成功支付到付款站點),模型填充一次php將返回散列 3.做POST到PHP文件,獲得散列,填充模型字段一次成功 4.一旦模型準備好 - 然後提交表單。

問題是如何在angularjs中從js提交表單? 另外我不確定這樣的解決方案是否安全?

請耐心等待我是angularjs的新手:)

無論如何。 感謝您的幫助!

回答

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正在發送XHR請求到order.php這是用來從服務器請求數據,客戶端瀏覽器簡單地忽略頭,例如。 Location: http://www.example.com/來自服務器重定向到指定的網址所以重定向沒有發生

+0

謝謝Nitesh。這似乎是解決這個問題的正確方法! – razzledazzle