簡體   English   中英

使用重定向將信息發布到新頁面的最佳做法?

[英]Best practice for POST'ing to a new page with a redirect?

我正在嘗試解決一個看起來像這樣的工作流:(在PHP中)

  1. 用戶在我的購物車中輸入訂單信息。
  2. 訂單被捕獲並存儲到我的數據庫中(不包含信用卡信息)
  3. 用戶被重定向到authorize.net的SIM卡頁面進行付款

當前設置:

shoppingcart.php-收集用戶運輸信息等

storeorder.php-將訂單存儲在我的數據庫中,然后組裝具有適當必需的authorize.net POST字段的表單

簡而言之,用戶最終不得不查看不必要的中間頁,在該中間頁中,他們必須單擊“付款”表單提交按鈕,然后將其發送到authorize.net。

結合這些步驟的最佳實踐是什么? (接收POST,將信息存儲在我的數據庫中,然后使用新的POST字段自動重定向到authorize.net,而無需任何用戶交互)

不要干擾用戶的錢!
即使您不想存儲信用卡詳細信息,您的網站也可能會被黑客入侵,攻擊者也會竊取它。

  1. 用戶在我的購物車中輸入訂單信息。
  2. 通過authorize.net的SIM卡頁面處理訂單以進行付款
  3. authorize.net與您的網站聯系,提供付款詳細信息。

是唯一正確的方法。
世界上每個站點都以這種方式工作。 所以你必須。 不要把自己當作聰明的王牌。

用戶是否必須在authorize.net頁面上進行任何類型的輸入,或者您的表單提供了所有必需的信息? 如果生成所有信息,那么最簡單的方法是通過cUrl調用,對authorize.net直接將數據推送給它們,並檢查返回狀態代碼/輸出以查看其是否成功等。

如果用戶仍然需要輸入帳單明細,請使用以下方法。

表單發布到/somepage.php

somepage.php運行它的處理,處理完成后一直在底部添加頭(“ Location: https : //www.authorize.net/dopaymenthere ”);

確保您仍然在此頁面上回顯“付款”按鈕,以防萬一用戶做了一些異常操作(強迫重定向停止等),這樣看起來就不會像破損的代碼,但有一些例外情況對他們的瀏覽器做一些不尋常的事情,您仍然可以優雅地處理它們

PS:這只能通過將post變量作為get請求串聯來起作用,假設authorize.net將把get請求作為變量處理。

無需使用get請求即可做到這一點的最簡單方法是使用javascript,方法是在dom就緒的情況下提交表單...這樣您就可以向用戶顯示處理訂單消息。 並將它們以嵌入式隱藏形式直接發布到authorize.net,以防您的處理花費比預期更長的時間等。

在processing.php頁面上的jquery術語中,您將具有以下內容:

echo $form; // HTML form with all it's values required by authorize.net
echo "<h1>Processing your request</h1>";
<script type='text/javascript'>$(document).ready(function(){$('#hiddenformid').submit();});</script>

shoppingcart.php您可以放置​​一個Checkout按鈕。 按下后,將提交用戶操作。 Do not save item prices/quantity in hidden fields. 在用戶簽出按鈕的POST上,您可以將所有信息保存在數據庫中,並在PHP Post條件中創建HTML表單,以設置authorize.net的值並將標頭重定向到PAYMENT頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM