【问题标题】:Magento SOAP V_2 creating order error: Payment not allowedMagento SOAP V_2 创建订单错误:不允许付款
【发布时间】:2014-03-19 23:25:02
【问题描述】:

我正在尝试使用 .NET consol 使用 SOAP API V_2 在 Magento 1.7.2 上创建订单。

使用每种付款方式时,我总是收到相同的错误“付款不允许”。

//create an order with Magento API

        MagentoService proxy = new MagentoService();
        string sessionId = proxy.login("xxx", "xxx");
        int idCarrello = proxy.shoppingCartCreate(sessionId, "1");
        proxy.UnsafeAuthenticatedConnectionSharing = false;

        shoppingCartCustomerEntity clienteMagento = new shoppingCartCustomerEntity();

        clienteMagento.firstname = "name";
        clienteMagento.lastname = "surname";
        clienteMagento.email = "xxx@mmmm.com";
        clienteMagento.mode = "guest";

        proxy.shoppingCartCustomerSet(sessionId, idCarrello, clienteMagento, "1");

        shoppingCartCustomerAddressEntity indirizzoSpedizione = new shoppingCartCustomerAddressEntity();
        shoppingCartCustomerAddressEntity indirizzoBill = new shoppingCartCustomerAddressEntity();


        indirizzoSpedizione.mode = "shipping";
        indirizzoSpedizione.firstname = clienteMagento.firstname;
        indirizzoSpedizione.lastname = clienteMagento.lastname;
        indirizzoSpedizione.street = "viale europa 32";
        indirizzoSpedizione.city = "Foggia";

        indirizzoSpedizione.region = "FG";
        indirizzoSpedizione.telephone = "111";
        indirizzoSpedizione.postcode = "71122";
        indirizzoSpedizione.country_id = "IT";
        indirizzoSpedizione.is_default_billing = 0;
        indirizzoSpedizione.is_default_shipping = 0;

        indirizzoBill.mode = "billing";
        indirizzoBill.firstname = clienteMagento.firstname;
        indirizzoBill.lastname = clienteMagento.lastname;
        indirizzoBill.street = "viale europa 32";
        indirizzoBill.city = "Foggia";

        indirizzoBill.region = "FG";
        indirizzoBill.telephone = "111";
        indirizzoBill.postcode = "71122";
        indirizzoBill.country_id = "IT";
        indirizzoBill.is_default_billing = 0;
        indirizzoBill.is_default_shipping = 0;

        shoppingCartCustomerAddressEntity[] indirizzi = new shoppingCartCustomerAddressEntity[] { indirizzoSpedizione, indirizzoBill };

        proxy.shoppingCartCustomerAddresses(sessionId, idCarrello, indirizzi, "1");
        proxy.shoppingCartShippingMethod(sessionId, idCarrello, "flatrate_flatrate", "1");

        shoppingCartPaymentMethodResponseEntity[] paymentMethods = proxy.shoppingCartPaymentList(sessionId, idCarrello, "1");

        Console.WriteLine(paymentMethods); //paymentMethods is always empty!!

        shoppingCartPaymentMethodEntity modoPagamento = new shoppingCartPaymentMethodEntity();

        modoPagamento.po_number = null;
        modoPagamento.method = "checkmo";
        modoPagamento.cc_cid = null;
        modoPagamento.cc_owner = null;
        modoPagamento.cc_number = null;
        modoPagamento.cc_type = null;
        modoPagamento.cc_exp_year = null;
        modoPagamento.cc_exp_month = null;

        proxy.shoppingCartPaymentMethod(sessionId, idCarrello, modoPagamento, "1");

这里是例外:

         //Payment method is not allowed (I tryed checkmo, banktransfer, etc)
        //proxy.shoppingCartOrder(sessionId, idCarrello, "1", new string[] { });

有什么想法吗?

【问题讨论】:

  • 您是否在管理员配置中启用了付款方式,并且当您在不通过肥皂浏览网站时进行结帐时它们是否有效?我的猜测是,您在其中创建购物车的商店视图/网站没有启用付款方式,因为您没有在购物车付款列表调用中获得任何付款方式。你可以试试int idCarrello = proxy.shoppingCartCreate(sessionId);。此外,最终的参数存储视图通常是 en_gb 之类的代码,而不是数字。

标签: magento soap


【解决方案1】:

我遇到了同样的问题。这就是解决方案 - 您忘记了产品,只需添加产品即可销售。另外你必须按照这个顺序做(它不会按其他顺序工作):

shoppingCartCustomerSet(guest for simplicity);
shoppingCartCustomerAddresses();
shoppingCartProductAdd();
shoppingCartShippingMethod();
shoppingCartPaymentMethod();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 2014-05-08
    相关资源
    最近更新 更多