• Resolved fetech

    (@fetech)


    Boa tarde,

    Ao fazer um desenvolvimento para um cliente com inser??o de encomendas via API Woocommerce deparamo-nos com um problema.

    Pagamento Ref. MB, conseguimos resolver a situa??o pois verificamos que se criarmos a encomenda no estado on-hold, o sistema gera a referência MB sem qualquer constrangimento.

    Acontece que após várias tentativas continuamos a n?o conseguir bons resultados com pagamento MB Way. Tentamos incluir uma meta_key com o mesmo nome do input que surge no frontend para o no de telefone, tentamos com diferentes estados, tentamos com o conjunto _mbway_ifthen_for_woocommerce_phone e _mbway_ifthen_for_woocommerce_val mas continuamos sem sucesso.

    O que devemos fazer para que o pagamento MB Way seja gerado da forma correta?

    Obrigado.

Viewing 3 replies - 1 through 3 (of 3 total)
  • O MBWAY requer uma chamada a um webservice da ifthenpay para gerar o pedido de pagamento.

    Provavelmente teríamos de fazer desenvolvimento à medida, disponibilizando uma action que vocês chamariam para gerar esse pedido de pagamento.

    Essa inser??o via API é síncrona com o processo de encomenda do cliente, ou vem de outro sistema em batch? é que no MBWAY só há 5 minutos para pagar e a experiência esperada pelo cliente é que ao escolher o método de pagamento receba imediatamente a push notification no telemóvel.

    Thread Starter fetech

    (@fetech)

    A inser??o de encomenda é síncrona, ou seja, apenas pretendemos que o funcionamento ocorra exatamente como ocorre quando se insere uma encomenda pelo processo normal.
    Exatamente com o mesmo pedido e 5 minutos para pagamento, a única coisa que muda é a origem do pedido que em vez de ser feito pela loja, é gerado através da API do Woocommerce.

    Em todos os pagamentos definidos no website o processo está a funcionar corretamente, inclusive no pagamento por Ref. MB, em que conseguimos descobrir que era necessário criar a encomenda no estado “on-hold”, em vez de “pending” que é o estado default.

    O habitual é que as a??es associadas à cria??o de encomendas sejam despoletadas independentemente da origem (checkout ou rest-api). Por acreditarmos nisto é que questionamos se faltará alguma informa??o, ou se teremos que fazer alguma altera??o no pedido que n?o estamos a encontrar.
    Conseguem identificar o “problema”?

    Segue um exemplo de um pedido que estamos a fazer:

    Array
    (
        [customer_id] => 1
        [payment_method] => mbway_ifthen_for_woocommerce
        [payment_method_title] => MB WAY
        [currency] => EUR
        [status] => on-hold
        [billing] => Array
            (
                [first_name] => XXXX
                [last_name] => XXXXXXX
                [address_1] => XXXXXX
                [city] => XXXX
                [postcode] => XXXX-XXX
                [country] => PT
                [phone] => 9XXXXXXX4
            )
       [shipping] => Array
            (
                [first_name] => XXXX
                [last_name] => XXXXXXX
                [address_1] => XXXX
                [city] => XXXX
                [postcode] => XXXX-XXX
                [country] => PT
            )
        [shipping_lines] => Array
            (
                [0] => Array
                    (
                        [method_id] => local_pickup
                        [method_title] => XXXX
                    )
            )
        [line_items] => Array
            (
                [0] => Array
                    (
                        [product_id] => XXX
                        [quantity] => 1
                        [total] => 4.690265486725664
                        [meta_data] => Array
                            (
                            )
                    )
            )
        [meta_data] => Array
            (
                [0] => Array
                    (
                        [key] => _mbway_ifthen_for_woocommerce_phone
                        [value] => 9XXXXXXX8
                    )
                [1] => Array
                    (
                        [key] => _billing_nif
                        [value] => 2XXXXXXX2
                    )
            )
    )

    Olá de novo,

    No caso do Multibanco o estado tem mesmo de ser “on hold”, tal como em pagamentos por transferência bancária, por exemplo, isto porque s?o métodos de pagamento que n?o têm validade (ou têm validade longa) e necessitam que seja enviado email ao cliente com os dados de pagamento.

    Quanto às ac??es serem despoletadas independentemente da origem, n?o é garantido. Vejamos o exemplo do PayPal, em que o visitante é encaminhado para a plataforma para escolher o método de pagamento. Se a encomenda é injectada pela REST API n?o têm como redireccionar o cliente. O mesmo acontece no método cart?o de crédito da ifthenpay. Assim como nos Stripe, por exemplo: https://scottbolinger.com/process-payments-woocommerce-rest-api/ em que o pagamento tem de ser processado do lado do cliente da REST API e n?o do lado do WooCommerce.

    No caso do MBWAY, no momento da cria??o da encomenda, na fun??o process_payment da gateway, chamamos o webservice da ifthenpay para gerar o pedido de pagamento. Esta fun??o só corre no checkout normal e n?o na REST. é assim por design.

    Para que isto funcione, teremos de fazer desenvolvimento à medida do nosso lado para correr estas rotinas (com os devidos ajustes) no hook “woocommerce_api_create_order”. Podemos or?amentar esse desenvolvimento, se nos contactarem para o [email protected]

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Cria??o de encomendas via API com pagamento MB Way’ is closed to new replies.