我正在进行扩展,将第三方API集成到Magento中。包括的步骤是填写我们网站上的表格。当用户点击提交时,API会预先填写用户随后批准的网站上的表单。一些get字符串变量被发送到我们站点上的页面,这会触发检索令牌的第二个API调用(幕后)。创建令牌后,我将令牌保存到第二个隐藏表单并通过此函数提交:
function submitAccount() {
var formId = 'form-payment-submit';
var myForm = new VarienForm(formId, true);
var postUrl = '<?php echo $this->getUrl('marketplacepayment/marketplaceaccount/paymentsetup/') ?>';
if (myForm.validator.validate()) {
new Ajax.Updater(
{ success:console.log("form success") }, postUrl, {
method:'post',
asynchronous:false,
evalScripts:false,
onComplete:function(request, json) {
//submitButtonOn();
alert('success!');
},
parameters: $(formId).serialize(true),
}
);
}
}
我的模块中的函数然后处理将值保存到数据库:
public function paymentsetupAction(){
if(!(empty($_POST['access']))){
// save tokens to db
$collection = Mage::getModel('marketplace/userprofile')->getCollection();
$collection->addFieldToFilter('mageuserid',array('eq'=>$_POST['userid']));
foreach($collection as $row){
$id=$row->getAutoid();
}
$collectionload = Mage::getModel('marketplace/userprofile')->load($id);
$collectionload->setaccesstoken($_POST['access']);
$collectionload->setrefreshtoken($_POST['refresh']);
$collectionload->setstripekey($_POST['key']);
$collectionload->save();
Mage::getSingleton('core/session')->addSuccess( Mage::helper('marketplace')->__('Your payment information has been sucessfully saved.'));
$this->_redirect('marketplacepayment/marketplaceaccount/payment');
}
}
问题是令牌没有被保存但没有出现错误。我无法将任何信息写入页面,因为提交是通过AJAX进行的,所以我对如何调试感到茫然。你看到paymentsetupAction有什么问题吗?或者,有没有更简单的方法让我知道它为什么不起作用?
答案 0 :(得分:0)
问题出在$ collection部分 - 我使用了错误的数据库列名:
$collectionload = Mage::getModel('marketplace/userprofile')->load($id);
$collectionload->setaccess_token($_POST['access']);
$collectionload->setrefresh_token($_POST['refresh']);
$collectionload->setstripe_key($_POST['key']);
$collectionload->save();
抱歉随机不重要的问题。