[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Fabio Ribeiro
Criador Fabio Ribeiro 31/01/2023

Carlos, boa tarde. Você onde consigo pegar para fazer um formulário de pagamento via cartão de crédito e pix em Vuejs?

Obrigado

Manager Carlos Ferreira 31/01/2023

Olá, Fabio!
Como vai?

Quer integrar com algum gateway de pagamento, para fazer pagamentos por PIX? Seria isso?

Carlos Ferreira
Criador Fabio Ribeiro 31/01/2023

Sim isso mesmo, seria com PIX e PagSeguro.

Fabio Ribeiro
Manager Carlos Ferreira 31/01/2023

A alternativa mais simples é usar algum gateway de pagamento que faça isso.

Aqui na Academy tem um curso de assinatura, onde ensino a integrar com o Stripe, usando o Laravel Cachier, mas o Stripe é internacional, usa apenas Cartão (e passou a trabalhar com boletos também). Como é um gateway muito avançado, talvez em um futuro próximo também tenha integração com o BC e aceite pagamentos por PIX.

Carlos Ferreira
Criador Fabio Ribeiro 31/01/2023

Carlos, consegui pegar os detalhes da documentação do Mercado Pago, no front está funcionando, meu problema é no back com essa questão aqui:

 

  public function mpPagamento(){
    require_once('vendor/autoload.php');
   
    MercadoPago\SDK::setAccessToken($_ENV("MP_ACCESS_TOKEN"));
 

Como fazer no controller esse require_once funcionar? Já tentei de várias maneiras e não funciona, só falta isso para a efetivação do teste de compra.

 

Abraços

 

 

Fabio Ribeiro
Manager Carlos Ferreira 31/01/2023

Seu backend é Laravel, certo?
Não deve fazer isso:
require_once('vendor/autoload.php');

Porque o framework já faz isso:
https://github.com/laravel/laravel/blob/9.x/public/index.php#L34https://github.com/laravel/laravel/blob/9.x/public/index.php#L34

Como instalou o SDK do Mercado pago, basta importar na namespace, e usar conforme a DOC.
use MercadoPago\SDK as MercadoPago;

MercadoPago::setAccessToken(env("MP_ACCESS_TOKEN"));

Carlos Ferreira
Criador Fabio Ribeiro 31/01/2023

Carlos, arrumei o código e agora está me dando esse erro:
Function name must be a string

Estou procurando como resolver e não achei nada que resolvesse. O meu código está assim:

use MercadoPago\SDK as MercadoPagoSDK;
use MercadoPago\Payer as MercadoPayer;
use MercadoPago\Payment as MercadoPagoPayment;
  public function mpPagamento(){
   
    MercadoPagoSDK::setAccessToken($_ENV("MP_ACCESS_TOKEN"));
   
    $contents = json_decode(file_get_contents('php://input'), true);
   
    //$payment = new MercadoPago\Payment();
    $payment = new MercadoPagoPayment();
    dd($payment);
    $payment->transaction_amount = $contents['transaction_amount'];
    $payment->token = $contents['token'];
    $payment->installments = $contents['installments'];
    $payment->payment_method_id = $contents['payment_method_id'];
    $payment->issuer_id = $contents['issuer_id'];
    //$payer = new MercadoPago\Payer();
    $payer = new MercadoPayer();
    $payer->email = $contents['payer']['email'];
    $payer->identification = array(
      "type" => $contents['payer']['identification']['type'],
      "number" => $contents['payer']['identification']['number']
    );
    $payment->payer = $payer;
    $payment->save();
    $response = array(
      'status' => $payment->status,
      'status_detail' => $payment->status_detail,
      'id' => $payment->id
    );
    echo json_encode($response);

    }

Obrigado

 

 

 

Fabio Ribeiro
Criador Fabio Ribeiro 31/01/2023

Carlos, consegui ajustar, percebi que estava puxando a variável do .env de forma errada no controle. Valeu pela ajuda.

Fabio Ribeiro
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!