Closed rodrigoreeis closed 4 years ago
@rodrigoreeis
É possível sim. Mas necessita de implementação.
https://docs.woocommerce.com/document/woocommerce-rest-api/ https://woocommerce.github.io/woocommerce-rest-api-docs/#create-an-order
{
"payment_method": "picpay",
"payment_method_title": "PicPay"
...
O WooCommerce não está chamando o método _WC_PicPay_Gateway::process_payment($order_id)_ quando o pedido é criado através da API.
Isso eu consegui fazer normalmente, minha dúvida é na hora que o usuário realiza o pagamento o status da order muda automaticamente no seu plugin ?
Porque a API do picpay é bem simples pra gerar o QR code a questão em dúvida é em relação a integração com o pedido no CMS do Woocommerce
E eu já tinha realizado algumas teste através do postman chamando o picpay como gateway de pagamento ele não retornava a URL do QR code então eu teria que implementar as chamadas da API do picpay correto?
Isso eu consegui fazer normalmente, minha dúvida é na hora que o usuário realiza o pagamento o status da order muda automaticamente no seu plugin ?
R: Sim. Quando o pagamento é realizado no PicPay esse plugin altera automaticamente o status do pedido no WooCommerce.
E eu já tinha realizado algumas teste através do postman chamando o picpay como gateway de pagamento ele não retornava a URL do QR code então eu teria que implementar as chamadas da API do picpay correto?
R: Quando é realizada uma chamada na API do WooCommerce para criar a "order" informando o _"payment_method": "picpay" e "payment_method_title": "PicPay" o correto seria retornar os dados da "order" criada contendo o PicPay_PaymentURL e o PicPay_QRCode_ assim:
{
"id": 411,
"parent_id": 0,
"number": "411",
"order_key": "wc_order_1JmAafEzsU6gR",
"created_via": "rest-api",
"version": "4.0.1",
"status": "pending",
"currency": "BRL",
"date_created": "2020-04-27T23:23:51",
"date_created_gmt": "2020-04-28T02:23:51",
"date_modified": "2020-04-27T23:51:14",
"date_modified_gmt": "2020-04-28T02:51:14",
"discount_total": "0.00",
"discount_tax": "0.00",
"shipping_total": "0.00",
"shipping_tax": "0.00",
"cart_tax": "0.00",
"total": "1.00",
"total_tax": "0.00",
"prices_include_tax": false,
"customer_id": 0,
"customer_ip_address": "",
"customer_user_agent": "",
"customer_note": "",
"billing": {
"first_name": "Fulano",
"last_name": "de Tal",
"company": "",
"address_1": "Rua Teste",
"address_2": "",
"city": "São Paulo",
"state": "SP",
"postcode": "10000-000",
"country": "BR",
"email": "teste@exemplo.com.br",
"phone": "('1) 2222-2222",
"number": "1234",
"neighborhood": "Teste",
"persontype": "F",
"cpf": "39500150603",
"rg": "",
"cnpj": "",
"ie": "",
"birthdate": "01-01-1988T00:00:00",
"sex": "M",
"cellphone": ""
},
"shipping": {
"first_name": "Fulano",
"last_name": "de Tal",
"company": "",
"address_1": "Rua Teste",
"address_2": "",
"city": "São Paulo",
"state": "SP",
"postcode": "10000-000",
"country": "BR",
"number": "1234",
"neighborhood": "Teste"
},
"payment_method": "picpay",
"payment_method_title": "PicPay",
"transaction_id": "",
"date_paid": null,
"date_paid_gmt": null,
"date_completed": null,
"date_completed_gmt": null,
"cart_hash": "",
"meta_data": [
{
"id": 5964,
"key": "_billing_persontype",
"value": "1"
},
{
"id": 5965,
"key": "_billing_cpf",
"value": "395.001.506-03"
},
{
"id": 5966,
"key": "_billing_cnpj",
"value": ""
},
{
"id": 5967,
"key": "_billing_birthdate",
"value": "01\/01\/1988"
},
{
"id": 5968,
"key": "_billing_sex",
"value": "Masculino"
},
{
"id": 5969,
"key": "_billing_number",
"value": "1234"
},
{
"id": 5970,
"key": "_billing_neighborhood",
"value": "Teste"
},
{
"id": 5971,
"key": "_billing_cellphone",
"value": ""
},
{
"id": 5972,
"key": "_shipping_number",
"value": "1234"
},
{
"id": 5973,
"key": "_shipping_neighborhood",
"value": "Teste"
},
{
"id": 5974,
"key": "is_vat_exempt",
"value": "no"
},
{
"id": 5976,
"key": "PicPay_PaymentURL",
"value": "https:\/\/app.picpay.com\/checkout\/NWFmMGRjNmViZDc0Y2EwMDMwNzZlYzEw"
},
{
"id": 5977,
"key": "PicPay_QRCode",
"value": "data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAIAAAAP3aGbAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAIHklEQVR4nO3dwW4bORRFQcfI\/3+yMYsBZmfCYTjUO62qbRC5LckHvbhg\/\/r6+voAKPh89QUA\/JRgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARm\/X30B3\/r8DMf06+vru3\/a+70WL7jn+GUsXnDv4o+\/4M2f9dRv78uF31bg3QgWkCFYQIZgARmCBWQIFpAhWECGYAEZc4ejC0OGbUMmoHuOT1sX9maZQ+amx19wyBcgOm1NXjTwngQLyBAsIEOwgAzBAjIEC8gQLCBDsICM5HB04fgc7g0Pt7y5hxxy8TdfcGH+u\/Fy7rCADMECMgQLyBAsIEOwgAzBAjIEC8gQLCDjacPRtCGHW96cL+4dfHrz7NDjl8HfcIcFZAgWkCFYQIZgARmCBWQIFpAhWECGYAEZhqMNNx8fv3DzAfdDnizPKO6wgAzBAjIEC8gQLCBDsIAMwQIyBAvIECwg42nD0fnjwPQZm8cd36+mPfX3OsgdFpAhWECGYAEZggVkCBaQIVhAhmABGYIFZCSHozeXjcd5YPoPHX83hryH6W\/vy3nvgAzBAjIEC8gQLCBDsIAMwQIyBAvIECwg49dTZ4dF8\/eQN48wvXnxe\/zt3OcOC8gQLCBDsIAMwQIyBAvIECwgQ7CADMECMuYOR28ezDjkQfDpcy+Pv4fHDZnR7r3gnvnfwz\/lDgvIECwgQ7CADMECMgQLyBAsIEOwgAzBAjLmDkePG7KUG3L85nE3Z7RD5qZDPsohG+A73GEBGYIFZAgWkCFYQIZgARmCBWQIFpAhWEDG71dfwLeGrPIW3mqw9zeGvFFDzvOc\/8WezB0WkCFYQIZgARmCBWQIFpAhWECGYAEZggVkzD1xdMjacM\/NcWD6jdoz\/\/DY4x\/lkBd8OXdYQIZgARmCBWQIFpAhWECGYAEZggVkCBaQMXc4etzNVd5xQ572fnO++Iaf1\/Gf9TzusIAMwQIyBAvIECwgQ7CADMECMgQLyBAsIMOj6m\/\/rD1DHrO+kN5D3tyvHr+M+d\/eg9xhARmCBWQIFpAhWECGYAEZggVkCBaQIVhAxtwTR4fM4eZfxpDR40J6U3r8C3DzBcf+dW9zhwVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARlzTxzd89Tntt\/01JHqzcfH8z\/xOQEZggVkCBaQIVhAhmABGYIFZAgWkCFYQEbyxNEhxznuveBxQ3aeQ15wyP9amL9fHduED3dYQIhgARmCBWQIFpAhWECGYAEZggVkCBaQMXc4uvCGjz5fmL+HXEgfEPrUK5zchBFvK8BPCBaQIVhAhmABGYIFZAgWkCFYQIZgARlzH1WfPupzYcjOc2HvZw0ZIqankkNOUp3MHRaQIVhAhmABGYIFZAgWkCFYQIZgARmCBWTMHY4uPPUJ7HuGbEoXhlzGnvTFP29T6g4LyBAsIEOwgAzBAjIEC8gQLCBDsIAMwQIy5j6q\/uaw7eZxjkOOFV24+RT7IfPFIR\/lkG3zZO6wgAzBAjIEC8gQLCBDsIAMwQIyBAvIECwgI3ni6M0V5UJ6UnjT8ct46qj45mUsTJ6bjvhCA\/yEYAEZggVkCBaQIVhAhmABGYIFZAgWkDH3xNE9N5dyQ+aLx6WP+hxi\/jp0YXITpn\/wAP8RLCBDsIAMwQIyBAvIECwgQ7CADMECMpLD0fkPTHc+5EBDZpkL88+wfTl3WECGYAEZggVkCBaQIVhAhmABGYIFZAgWkDF3ODpk8zbkcMs33K8OeeeHuPn2jm3ChzssIESwgAzBAjIEC8gQLCBDsIAMwQIyBAvImDscfaqbp5su3Dzc8uZlLMx\/pPuQye5k7rCADMECMgQLyBAsIEOwgAzBAjIEC8gQLCDj96sv4FvpAycXW76bU8n5P2vvU745Ut0TPc9zvnAUgHcjWECGYAEZggVkCBaQIVhAhmABGYIFZMwdji4Mmd49ddo6\/2TOheMj1T1DfuUhfykHhf\/kgHcjWECGYAEZggVkCBaQIVhAhmABGYIFZCSHowvp0ePC8cfHH\/+9hixRhxwretzx3ys6N3WHBWQIFpAhWECGYAEZggVkCBaQIVhAhmABGU8bjs43ZG148wX3\/teQs0MXhgwshyyH7xjxwQP8hGABGYIFZAgWkCFYQIZgARmCBWQIFpBhONpwfOZ3\/JjKhZtz04WbFz\/\/Z0W90a8K1AkWkCFYQIZgARmCBWQIFpAhWECGYAEZTxuORs9R\/Nfxx5EPeTeGXPze23v80M4hx8BGDyN1hwVkCBaQIVhAhmABGYIFZAgWkCFYQIZgARnJ4ehTj1icv+WbfyTm\/J3nwvE3anHxQ75Rf+qZf\/nAIwkWkCFYQIZgARmCBWQIFpAhWECGYAEZv6L7MeANucMCMgQLyBAsIEOwgAzBAjIEC8gQLCBDsIAMwQIyBAvIECwgQ7CADMECMgQLyBAsIEOwgAzBAjIEC8gQLCBDsIAMwQIyBAvIECwgQ7CADMECMgQLyBAsIEOwgAzBAjIEC8gQLCBDsIAMwQIyBAvIECwgQ7CADMECMgQLyBAsIEOwgAzBAjIEC8gQLCBDsIAMwQIyBAvIECwgQ7CADMECMgQLyBAsIOMfNhb2ttAasncAAAAASUVORK5CYII="
}
],
"line_items": [
{
"id": 113,
"name": "Camiseta com gola V",
"product_id": 37,
"variation_id": 0,
"quantity": 1,
"tax_class": "",
"subtotal": "1.00",
"subtotal_tax": "0.00",
"total": "1.00",
"total_tax": "0.00",
"taxes": [],
"meta_data": [],
"sku": "",
"price": 1
}
],
"tax_lines": [],
"shipping_lines": [
{
"id": 114,
"method_title": "Retirar no local",
"method_id": "local_pickup",
"instance_id": "3",
"total": "0.00",
"total_tax": "0.00",
"taxes": [],
"meta_data": [
{
"id": 855,
"key": "Itens",
"value": "Camiseta com gola V × 1"
}
]
}
],
"fee_lines": [],
"coupon_lines": [],
"refunds": [],
"currency_symbol": "R$",
"_links": {
"self": [
{
"href": "https:\/\/example.com\/wp-json\/wc\/v3\/orders\/411"
}
],
"collection": [
{
"href": "https:\/\/example.com\/wp-json\/wc\/v3\/orders"
}
]
}
}
Esses dados não estão sendo retornados porque o método _WC_PicPay_Gateway::process_payment($order_id) não está sendo executado quando a "order"_ está sendo criada através da API do WooCommerce.
Então uma nova funcionalidade precisa ser implementada nesse plugin para ele reconheça as chamadas realizadas na API do WooCommerce a fim de colocar o método _WC_PicPay_Gateway::process_payment($order_id)_ para ser executado. Seria algo semelhante a isto: https://stackoverflow.com/questions/30922742/woocommerce-rest-api-v2-how-to-process-payment#30942730
Marquei essa issue como "enhancement" para futura implementação.
Acredito que melhor resposta não teria ficou tudo mais claro, de alguma certa maneira eu consigo gerar uma order pela API, porém é exatamente isso que foi comentado.
Minha única solução que vem no momento seria gerar o QR code direto na API do picpay e fazer a relação do ID da order e ficar trocando o status manualmente, pensando no cenário que não irei ter um fluxo grande de vendas por esse método.
Realmente se eu tivesse conhecimento em PHP e soubesse um pouco mais de wordpress eu implementaria essa feature sem problema nenhum, mas só estou usando o wordpress como CMS e acabo nem tendo contato com os funções do php do CMS.
Mas parabéns pelo trabalho!!
Implementação realizada. https://github.com/dadeke/woo-picpay/commit/fd4271752f72aca76a315fe3c3077d097c817db5
Olá, estou fazendo um sistema de um tamanho, mas não consigo encontrar a palavra-chave Picpay Browser para o canal de identificação, posso me dizer?
Estou com uma dúvida estou desenvolvendo um headless que é um projeto pessoal Estou usando o Woocommerce como cms, seria possível eu conseguir integrar esse plugin mesmo eu estando fora da plataforma e só consumindo APIS do woocommerce?