2016-06-10 199 views
0

我已經在Silverstripe中設置了一個表單,當提交時將輸入所有數據,返回表單,然後向數據添加一個md5校驗和。 一旦完成,它需要發送到外部URL,但我無法得到這個工作。Silverstripe - 將數據發佈到外部URL

public function doPayment($data, Form $form) { 
    $data['CHECKSUM'] = md5($data['NAME'].$data['SURNAME']); 

有什麼辦法可以發送這個嗎?

我試圖

setFormAction 

,但它似乎並不一旦形式已經返回工作崗位。

謝謝

+0

請問你處理什麼樣的支付服務提供商在這裏?你可能會更好地使用像omnipay或甚至是silverstripe-omnipay模塊? – bummzack

+0

不幸的是我不能使用Omnipay,它需要成爲我們當地的供應商之一。 – Craig

+0

我明白了。你仍然可以實現你自己的Omnipay網關......這取決於你需要什麼功能,這可能會減少整體工作量。 – bummzack

回答

0

你真的不應該重新加載窗體添加到它的MD5。這樣,用戶仍然可以在提交之前修改表單數據(從而使散列無效)。

你應該做的是採取形式數據,計算散列並將所有內容直接發送到服務器(例如支付提供商)。您可以使用curl調用或guzzle庫。

使用狂飲,你的代碼看起來是這樣的:

​​
+0

對不起,我應該更清楚一點。這就是我目前正在做的事情,但我堅持將所有內容發送到支付服務器。 – Craig

+0

@Craig所以你目前使用CURL或guzzle,但它不起作用? – bummzack

+0

我確實給了CURL一個嘗試,但是我也無法發送它。讓我再看看CURL。 – Craig