2016-06-10 133 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