问题
我正在成功发布到远程支付网站,但同时我需要将订单的详细信息保存到数据库中
形式
这是提交数据的表单,其中大部分存储在配置中。
echo $this->Form->create(null, array('url' => Configure::read('Payment.strPurchaseURL'))); ?>
echo $this->Form->hidden('navigate', array(
'name' => 'navigate',
'value' => ''
));
echo $this->Form->hidden('VPSProtocol', array(
'name' => 'VPSProtocol',
'value' => Configure::read('Payment.strProtocol')
));
echo $this->Form->hidden('TxType', array(
'name' => 'TxType',
'value' => Configure::read('Payment.strTransactionType')
));
echo $this->Form->hidden('Vendor', array(
'name' => 'Vendor',
'value' => Configure::read('Payment.strVendorName')
));
echo $this->Form->hidden('Crypt', array(
'name' => 'Crypt',
'value' => $encrypted
));
echo $this->Form->end(__('Proceed to payment'));
控制器
视图控制器的其余部分正确地完成了它的工作,但是这个 if 语句永远不会被调用,因为 post 的操作将它从控制器中带走。$post_data
是来自会话的数据,由先前的表单生成。
if ($this->request->is('post')) {
$this->Order->create();
if ($this->Order->save($post_data)) {
...
逻辑有缺陷
我知道我的逻辑有缺陷,但是根据我的研究,您无法从控制器发布,所以我最终得到了一个有效的保存按钮或一个有效的远程发布。
我需要两者都做,但我还没有偶然发现一个好方法,希望你们中的一个好人可以让我直截了当。
非常感谢。