西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > magento教程 >

Magento支付模块开发的若干提示

时间:2016-10-18 21:32来源:未知 作者:好模板 点击:
1.magento 支付模型类在何处指定? 在etc/config.xml的标签payment/{payment_method}/model指定支付类(这里假设mypay/paya) 2. 如果支付方法类似PayPal Standard(转向支付网关网站进行支付),那么支付
1.magento '支付模型类'在何处指定? 
在etc/config.xml的标签payment/{payment_method}/model指定支付类(这里假设mypay/paya) 
 
2. 如果支付方法类似PayPal Standard(转向支付网关网站进行支付),那么支付模型类mypay/paya中应该覆盖方法getOrderPlaceRedirectUrl(). 
 
3. 如果支付方法不是转向某个页面,而是hook某段代码操作(支付操作)怎么做? 
在etc/system.xml的 config/sections/payment/groups/{payment_method}/fields/payment_action/source_model标签下指定对应的'支付方法类',如mypay/payb_paymentAction。该类只有一个方法返回Action列表 
 
public function toOptionArray(){  
  return array(  
    array(  
     'value' => Cartz_Mypay_Model_Payb::PAYMENT_ACTION_AUTH_CAPTURE,  
     'label' => Mage::helper('dps')->__('Authorise and Capture')  
    ),  
    array(  
      'value' => Cartz_Mypay_Model_Payb::PAYMENT_ACTION_AUTH,  
      'label' => Mage::helper('dps')->__('Authorise')  
    )  
  );  
}  
 
代码中 
 
Cartz_Mypay_Model_Payb::PAYMENT_ACTION_AUTH_CAPTURE='authorize_capture';  
Cartz_Mypay_Model_Payb::PAYMENT_ACTION_AUTH ='authorize';  
 
这样,一旦客户点击'Place Order'按钮,依次执行: 
 
$order->place();  
$order->getPayment()->place();  
 
查看$order->getPayment()->place()方法内部,就能清楚看到它正在访问system.xml的payment_action值。当该值为authorize_capture时,支付模型类的capture方法被调用;当该值为authorize,支付模型类的authorize方法被调用。 
 
4. 用户执行checkout进行到 Payment Information点击continue按钮时,发生了什么? 
调用你的支付模型类(mypay/paya)的validate(), isAvaliable()等方法,并没有真正地做支付行为。 
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容