Magento使用Paypal付款方式以编程方式创建订单


11

目前,我们有两个magento独立网站。一种表现为店面,另一种表现为后端。用户可以在前端下订单。

因此,我尝试在后端以编程方式创建相同的顺序。当用户通过checkmo付款方式付款时,它可以工作。但是,当用户通过PayPal付款时,它将无法正常工作。因此,有人知道我们如何使用PayPal付款方式以编程方式创建订单吗?有没有可能?

$quote->getPayment()->importData(array(3) {
    [method] => paypal_express
    [last_trans_id] => 65Y31421KL2753028
    [additional_information] => Array
    (
        [paypal_express_checkout_shipping_method] => 
        [paypal_payer_id] => 5LX84SUFY39L4
        [paypal_payer_email] => abbas-buyer-2@bluewisesoft.com
        [paypal_payer_status] => verified
        [paypal_address_status] => Confirmed
        [paypal_correlation_id] => b78b4e5e6e527
        [paypal_express_checkout_payer_id] => 5LX84SUFY39L4
        [paypal_express_checkout_token] => EC-7P402752023166448
        [paypal_express_checkout_redirect_required] => 
        [paypal_protection_eligibility] => Eligible
        [paypal_payment_status] => pending
        [paypal_pending_reason] => authorization
    )
});

错误:PayPal网关已拒绝请求。此令牌的交易成功完成(#10415:由于参数无效而导致交易被拒绝。有关详细信息,请参见其他错误消息)。


Answers:


4

无法使用实际的PayPal付款方式创建订单,因为您需要进行实际付款。这就是PayPal拒绝请求的原因;您还需要向PayPal发送令牌(以发起请求),以便他们进行验证。

由于您实际上并不需要第二笔付款,而是需要用于保存记录(据我所知),因此明智的做法是为其他Magento实例创建伪造的PayPal付款方式,并将其设置为转移时的付款方式命令。

正如Inchoo所详细解释的那样(听起来并不那么困难,因为您只需要实现Magento部分),我不会在这里复制/粘贴它,而只是给您链接。http://inchoo.net/magento/how-to-create-magento-payment-module/

只需将其称为“ paypal_proxy_payment”之类的东西,然后使用该方法,就可以了!


2

我在答案中分享了一个链接,请仔细检查,然后将代码复制粘贴到您的自定义控制器中,然后您必须更改付款方式

$this->orderData = array(
    'session'       => array(
        'customer_id'   => $this->_sourceCustomer->getId(),
        'store_id'      => $this->_storeId,
        ),
    'payment'       => array(
        'method'    => 'checkmo',
         ),
    );

而不是checkmo您可以编写您的付款方式。

请检查一下。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.