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

[b][size=x-large]1.[/size][/b] '支付模型类'在何处指定?
在etc/config.xml的标签payment/{payment_method}/model指定支付类(这里假设mypay/paya)

[b][size=x-large]2.[/size][/b] 如果支付方法类似PayPal Standard(转向支付网关网站进行支付),那么支付模型类mypay/paya中应该覆盖方法getOrderPlaceRedirectUrl().

[b][size=x-large]3.[/size][/b] 如果支付方法不是转向某个页面,而是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方法被调用。

[b][size=x-large]4.[/size][/b] 用户执行checkout进行到 Payment Information点击continue按钮时,发生了什么?
调用你的支付模型类(mypay/paya)的validate(), isAvaliable()等方法,并没有真正地做支付行为。

TO BE CONTINUED.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值