Magento支付网关文档

时间:2014-07-01 21:08:41

标签: javascript php xml magento

根据官方文档,支付网关的主要预定义功能是capture()authorize(),这些功能应在订单与选定的付款方式一起执行后执行。

支付网关我正在尝试设置请求https POST数据并返回json响应。它基本上只是cc支付网关。

  1. 这个帖子数据应该放在模块内的哪个位置?

  2. 如何在完成显示顺序后使用网关json响应(所以我知道它已正确执行)?

  3. 模块结构应该如何满足此任务的大多数基本需求?

  4. 这是我的代码尝试执行的操作:

    <?php
    
        class Mycompany_Pay_Model_Pay extends Mage_Payment_Model_Method_Abstract
        {
            protected $_code = 'mycompany_pay';
    
            protected $_isGateway               = true;
            protected $_canCapture              = true;
            protected $_canRefund               = true;
            protected $_canUseInternal          = true;
    
            protected $_allowCurrencyCode = array('EUR', 'HRK');
    
            protected $_minValue = 1;
    
            // taking predefined objects for further usage
            public function capture(Varien_Object $payment, $amount){
                $order = $payment->getOrder();
                //$order = Mage::getModel('sales/order')->load($orderId);
                $billingInfo = $order->getBillingAddress();
                $customer = Mage::getSingleton('customer/session')->getCustomer();
    
                $postfields = array('order_id'=>9999, // temp number for debugging 
                        'name'=>    $customer->getName(), 
                        'mail'=>    $customer->getEmail(), 
                        'address'=> $billingInfo->getStreet(1),
                        'zip'=>     $billingInfo->getPostcode(),
                        'city'=>    $billingInfo->getCity(),
                        'state'=>   $billingInfo->getRegion(),
                        'country'=> $billingInfo->getCountry(),
                        'amount'=>  $amount,
                        'currency'=>$order->getBaseCurrencyCode(),
                        'cc'=>      $payment->getCcNumber(),
                        'cvv'=>     $payment->getCcCid());
    
            curl_setopt($ch, CURLOPT_URL, 'https://mygatewayUrl');
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            curl_setopt($ch, CURLOPT_POST, 1);
    
            curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
            $result = curl_exec($ch);
            print $result;
            }
        }
    

    卷曲代码应该在捕获之外执行吗?每当我从我的magento测试站点测试订单时,我只会返回事务ID,说明订单已完成。没有实际的证据表明此捕获甚至可以运行。 (我尝试向它添加日志/断点,什么都不做)。

    另外一个问题:

    添加简单的CC表单以便用户填写选择此付款方式的最简单方法是什么(因此CC变量实际上并非像现在这样空?)

    非常感谢任何形式的帮助。

1 个答案:

答案 0 :(得分:0)

我认为在本教程中解释了实现所需内容的方法:

http://excellencemagentoblog.com/magento-create-custom-payment-method-api-based

我可以提取它的一部分来回答你的问题,但我认为Manish Prakash给出的整个概述会迷失,它会以一种非常清晰的方式涵盖整个过程,看一看。