正常magento后台可设置几种支付类型,但如果在选择某一个支付类型下,需要再填入或选择某种补充性的支付资料时,这些数据如何在后续的代码中传递和访问呢。 我以我在国内的支付宝插件的基础上修改的支付宝外卡的代码进行举例。 图示效果如上。 这时需要在前台的支付信息提示中增加如下代码
<?php $_code=$this->getMethodCode() ?>
<div id="payment_form_<?php echo $_code ?>" style="display:none">
<input type="radio" name="payment[cc_type]" value="boc-visa" onclick="document.getElementById('alipaymethod').value='YES';" /><img src="https://img.alipay.com/sys/wkpayment/card_logo_VC.png" alt="Visa" />
<input type="radio" name="payment[cc_type]" value="boc-master" onclick="document.getElementById('alipaymethod').value='YES';" /><img src="https://img.alipay.com/sys/wkpayment/card_logo_MC.png" alt="MasterCard" />
<input type="radio" name="payment[cc_type]" value="boc-jcb" onclick="document.getElementById('alipaymethod').value='YES';" /><img src="https://img.alipay.com/sys/wkpayment/card_logo_JC.png" alt="JCB" />
<input id="alipaymethod" type="hidden" class="required-entry" />
</div>
在支付代码的model\payment.php中
$order->getPayment()->getData('cc_type');
这样的代码形式,就可以取到前台选择的数据了。(注意红色部份与上述代码的对应关系)
当时为了解决这个问题,特意找了国外的一些支付代码分析,才发现有这样的形式。
这里只是给大家做个示范,如果有更多的资料,可参照这个进行测试。 (责任编辑:最模板) |