checkout-payment-sample icon indicating copy to clipboard operation
checkout-payment-sample copied to clipboard

Integración Marketplace

Open agustinzamar opened this issue 1 year ago • 0 comments

Estoy armando una integracion tipo marketplace usando checkout pro

  1. En el frontend inicializo el componente con la Public Key del marketplace initMercadoPago(import.meta.env.VITE_MERCADOPAGO_PUBLIC_KEY);
  2. En el backend creo la preferencia utilizando el Access Token del vendedor
public function setAccessToken(?Event $event): void
    {
        $mpToken = $event->mpToken()->first();

        if (!$mpToken) {
            abort(500, 'Undefined Mercado Pago Token for event');
        }

        SDK::setAccessToken($mpToken->access_token);
    }

    public function savePreference(Collection $items, int $externalReference): MercadoPagoPreference
    {
        $preference = new MercadoPagoPreference();

        $preference->notification_url = url('/api/mercadopago/notifications');
        $preference->external_reference = $externalReference;
        $preference->payer = $this->createPayer();

        $preference->binary_mode = true;
        $preference->marketplace_fee = $items->sum(fn($item) => $item->quantity * $item->unit_price) * 0.1;

        $preference->items = $items->toArray();

        $preference->save();

        return $preference;
    }

Al hacer click sobre el boton de pago obtengo el siguiente error

{
    "code": "unauthorized",
    "message": "Unable to acquire requested preference from the resource."
}

agustinzamar avatar Nov 16 '23 22:11 agustinzamar