سؤال

كيفية حفظ النظام لأجل الجدول تحت أي دولة عندما يتم إلغاء الدفع عن طريق باي بال القياسية.

هل كانت مفيدة؟

المحلول

بعد أن أمضى ساعات قليلة على هذا جئت لأول مرة لمعرفة أن الماجنتو 1.9 يشمل باي بال اكسبرس جنبا إلى جنب مع باي بال القياسية.لذلك جعل هذا واضحا أنا فقط إلغاء تنشيط التعبير عن طريق التغييرات سكل وكتلة يعيد كتابة (في اشارة بعض مصادر خارجية).بالعودة إلى النقطة ، نحتاج إلى تجاوز لإجراء إلغاء باي بال.يمكن الحصول على هذا من قبل مراقب sales_order_payment_cancel, ، تشرح بقية الرموز أدناه عملية أخرى أيضا.آمل أن يساعد هذا شخص ما.

المحلية / ستاكوفيرفلو/بايبالستاندارد / الخ / التكوين.شمل

<?xml version="1.0"?>
<config>
    <modules>
        <Stackoverflow_Paypalstandard>
            <version>0.1.0</version>
        </Stackoverflow_Paypalstandard>
    </modules>
    <global>
        <models>
            <custom_paypalstandard>
                <class>Stackoverflow_Paypalstandard_Model</class>
            </custom_paypalstandard>
        </models>
        <blocks>
            <custom_paypalstandard>
                <class>Stackoverflow_Paypalstandard_Block</class>
            </custom_paypalstandard>
            <paypal>
                <rewrite>
                    <standard_redirect>Stackoverflow_Paypalstandard_Block_Standard_Redirect</standard_redirect>
                    <adminhtml_system_config_fieldset_location>Stackoverflow_Paypalstandard_Block_Adminhtml_System_Config_Fieldset_Location</adminhtml_system_config_fieldset_location>
                </rewrite>
            </paypal>
        </blocks>
        <events>
            <sales_order_payment_cancel>
                <observers>
                    <after_placing_order>
                        <class>custom_paypalstandard/observer</class>
                        <method>implementOrderStatus</method>
                    </after_placing_order>
                </observers>
            </sales_order_payment_cancel>
        </events>
    </global>
</config>

المحلية / ستاكوفيرفلو/بايبالستاندارد / كتلة / أدمينتمل / نظام / التكوين/فيلدسيت / الموقع.بي إتش بي

هذا هو جزء من تجاوز لإلغاء تنشيط باي بال اكسبرس-لهذا يرجى الرجوع بعض رابط.

محلي / ستاكوفيرفلو/بايبالستاندارد / بلوك / ستاندارد / إعادة توجيه.بي إتش بي

class Stackoverflow_Paypalstandard_Block_Standard_Redirect extends Mage_Paypal_Block_Standard_Redirect
{
    public function _toHtml()
    {
        $standard = Mage::getModel('paypal/standard');

        $form = new Varien_Data_Form();
        $form->setAction($standard->getConfig()->getPaypalUrl())
            ->setId('paypal_standard_checkout')
            ->setName('paypal_standard_checkout')
            ->setMethod('POST')
            ->setUseContainer(true);
        foreach ($standard->getStandardCheckoutFormFields() as $field=>$value) {
            $form->addField($field, 'hidden', array('name'=>$field, 'value'=>$value));
        }
        $idSuffix = Mage::helper('core')->uniqHash();
        $submitButton = new Varien_Data_Form_Element_Submit(array(
            'value'    => $this->__('Click here if you are not redirected within 10 seconds...'),
        ));
        $id = "submit_to_paypal_button_{$idSuffix}";
        $submitButton->setId($id);
        $form->addElement($submitButton);
        $html = '<html><body>';
        $html.= $this->__('You will be redirected to the PayPal website in a few seconds.');
        $html.= $form->toHtml();
        $html.= '<script type="text/javascript">document.getElementById("paypal_standard_checkout").submit();</script>';
        $html.= '</body></html>';

        return $html;
    }
}

محلي / ستاكوفيرفلو / بايبالستاندارد/نموذج / مراقب.بي إتش بي


class Stackoverflow_Paypalstandard_Model_Observer
{

 public function implementOrderStatus($observer)
    {
        $payment = $observer->getEvent()->getPayment();
        $order = $payment->getOrder();
        $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_CANCEL, false);
        $orderIds = Mage::getSingleton('adminhtml/session')->getNonCancelledOrders();
        if (!$orderIds) {
            $orderIds = array($order->getId());
        } else {
            $orderIds[] = $order->getId();
        }
        Mage::getSingleton('adminhtml/session')->setNonCancelledOrders($orderIds);
    }
}

الخ / وحدات / ستاكوفيرفلو_بايبالستاندارد.شمل


<config>
    <modules>
        <Stackoverflow_Paypalstandard>
            <active>true</active>
            <codePool>local</codePool>
        </Stackoverflow_Paypalstandard>
    </modules>
</config>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top