2017-10-07 88 views
-2

我有一個基於服務的公司和完全使用Dreamweaver創建的網站。它沒有購物車,也沒有我們銷售的服務是完全相同的價格,所以包含一個服務是沒有意義的。通過PHP爲支付平臺傳遞信息

我的銀行爲我提供了一個支付網關來實現支付自動化,並允許客戶選擇他們自己的貨幣,但它是爲具有購物車或數據庫的網站構建的。

所以我試圖找到一個解決方案:

1 - 允許我向爲客戶詳細介紹

2 - 詢問客戶,以確認他們是由於支付(這需要量在0到10000歐元之間,不允許使用圓點,空格和空格,並且包含2位小數)

3 - 確認他們的姓名和填寫在單獨頁面的表格中的金額(他們的終端沒有顯示要支付的金額所以我想確認這個給客戶)

4 - 將正確的信息,支付終端

5 - 返回到我們的網站,以確認支付已通過

6不見了 - 向我發送一封電子郵件,所有客戶端,並且填寫的信息該付款已被批准。

這裏是銀行

<form action="https://hpp.prueba.santanderelavontpvvirtual.es/pay" method="POST"> 
<input type="hidden" name="MERCHANT_ID" value="<?=$merchantid?>"> 
<input type="hidden" name="ORDER_ID" value="<?=$orderid?>"> 
<input type="hidden" name="ACCOUNT" value="<?=$account?>"> 
<input type="hidden" name="CURRENCY" value="<?=$curr?>"> 
<input type="hidden" name="AMOUNT" value="<?=$amount?>"> 
<input type="hidden" name="TIMESTAMP" value="<?=$timestamp?>"> 
<input type="hidden" name="DCC_ENABLE" value="1"> 
<input type="hidden" name="SHA1HASH" value="<?=$sha1hash?>"> 
<input type="hidden" name="HPP_LANG" value="EN"> 
<input type="hidden" name="AUTO_SETTLE_FLAG" value="1"> 
<input type="hidden" name="MERCHANT_RESPONSE_URL" value="tpv-mailer.php"> 
<input type="Submit" value="Pay by credit card on a Secure Website"> 
</form> 

我是新來的PHP提供的代碼,銀行發過來的文檔不清晰,在所有的,所以我一直停留在這個問題上一會兒。

我有表格要求來自客戶端的數據認爲POST工作和支付系統工作(雖然它只收取相同的金額),但我似乎無法找到代碼將客戶填入的$金額傳遞給「 >在不破壞的哈希銀行網關。

我想也許通過URL發送該信息,或者創建一個會話。沒有人有經驗,這一點,並能幫助我嗎?

非常感謝你提前!

+0

@LasVegasCoder你在評論中說的一切都是不正確的 –

回答

-1

這就是我將如何去做的:

  1. 從頭開始用自己的多步表單(因爲你想確認他們的名字和數量)。

  2. 通過jQuery AJAX將表單發佈到PHP腳本。

  3. 在您的PHP腳本驗證每一個字段。請記住,客戶可以發送任何東西,所以你想確保他們寫了一個實際的金額例如。

  4. 準備從PHP腳本發送到您銀行的API端點的POST請求。使用用戶提交的字段(驗證它們之後)並生成可能需要的其他字段,例如時間戳和返回URL。

  5. 發送此POST請求到您的銀行。

  6. 請閱讀他們的回覆。

  7. 處理它們的響應,例如,發送一個JSON到你的jQuery AJAX函數,並提供關於下一步做什麼的信息,比如要重定向到哪個頁面。這也是您可以配置PHP向您發送該通知郵件的地方。

您不必使用AJAX,但通過這樣做,您可以根據需要向客戶端顯示一個很好的「處理...」視圖。

您需要完全理解您銀行要求的所有參數,例如$sha1hhash來自何處。如果他們有文檔差那麼總會有另類,例如:

這就是說,如果你正在運行的公司,是新的PHP作爲你提到過,你可能想考慮聘請專業人員爲你做。這是值得的投資。

+0

感謝您的及時回覆。我希望比使用AJAX更簡單的解決方案,我不想改變支付平臺(PayPal需要很大的佣金...)。其他參數工作正常,我只需要一種方法來讓客戶真正填寫$金額。但我認爲,如果我解決不了這個問題,僱用某人可能是一個不錯的選擇。 – NinilieM

+0

然後您可以跳過jQuery AJAX,並使用正常表單提交(提交給您的PHP腳本)。關鍵在於您在整個流程中有一箇中間步驟,這樣您就可以允許客戶指定他們想要的任何金額,然後您將其驗證,然後將其發送到銀行的API。 – Optimae

+0

這是我似乎無法找到如何做中間步驟的東西... – NinilieM

-1

花了整整一天的時間,並試圖瞭解PHP後,我找到了解決我的問題的方法。由於我找不到任何文檔在線回答這個問題之前,我想如果有人需要它有一天能分享:

首先,你需要創建一個3步PHP的形式:

  • 第一頁一個標準表格,它向我的客戶詢問信息,過濾並清理它
  • 它重定向到第二頁,它充當郵件程序並收集信息。在標題中,它通過電子郵件將收集的信息發送給我,然後它調用付款網關。在正文中,它總結了先前發送的信息併爲客戶端提供了一個到網關的鏈接
  • 第三頁是網關的響應。它可以讓客戶知道任何錯誤或感謝他們的預訂,並重新發送一封電子郵件與預訂確認。

的一段代碼我需要的是:

第1頁:在報頭 :

$amount=$_REQUEST['charge']; 
詢問由於其作爲$充電

在第2頁的保存量

in body - 顯示付款金額:

<?php 
$FIRSTNAME=$_REQUEST['firstname']; 
$LASTNAME=$_REQUEST['lastname']; 
$CHARGE=$_REQUEST['charge']; 
echo <<<TEXT 
<h3 style="text-align:left;padding-left:1em">Hello, $FIRSTNAME $LASTNAME, balance is $amount euros</h3> 
TEXT; 
?> 

支付平臺似乎正在工作,現在金額由客戶端決定,無需訪問數據庫。

+0

此代碼中存在主要的XSS漏洞。 – ceejayoz

+0

那麼我該如何解決呢? – NinilieM

+0

查找XSS,初學者。如果你不知道它是什麼,並且你正在處理財務信息,我建議僱用一個人來做這個項目。 – ceejayoz