I really need your help on this problem, since I don't understand how to fix it or where to start looking for an answer. Here's the thing:
I'm trying to integrate paypal into Laravel 8 with PHP 8. the package I'm using is the paypal/rest-api-sdk-php v1. I know this is deprecated but I have not found any other solution to get working the v2.
Well, whenever I try to create a payment with the method $payment->create($this->api_context) -by the way, you can check the how-to guiide where I got those examples from below-the process gives me an error saying the following
ErrorException Required parameter $path follows optional parameter $handlers
I know this is because of an optional parameter being called before a required one. but honestly I've been working on this for weeks and I still can't figure it out.
Here some evidence:
error-screen:
class PagoController (where all magic starts to fail)
class PagoController extends Controller
{ private $api_context;
public function __construct(){
$paypal_config = Config::get('paypal');
$this->api_context = new ApiContext(
new OAuthTokenCredential(
$paypal_config['client_id'],
$paypal_config['secret']
)
);
$this->api_context->setConfig($paypal_config['settings']);
//dd($this->api_context);
}
public function pagarConPaypal(Request $request, $id_conciliacion){
//Obtener valores de la conciliación
$registro_pago = Conciliacion::where('id_conciliacion', '=', $id_conciliacion)->first();
//dd($registro_pago);
//--Crea un nuevo pago
$payer = new Payer();
$payer->setPaymentMethod('paypal');
$amount = new Amount();
$amount->setTotal($registro_pago->monto);
$amount->setCurrency('MXN');
$transaction = new Transaction();
$transaction->setAmount($amount);
$transaction->setDescription($registro_pago->concepto);
$callbackURL = url('/paypal/estado');
$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl($callbackURL)
->setCancelUrl($callbackURL);
$payment = new Payment();
$payment->setIntent('Sale')
->setPayer($payer)
->setTransactions(array($transaction))
->setRedirectUrls($redirectUrls);
//dd($payment);
//--Aplica el pago creado
try {
$payment->create($this->api_context, null);
// echo $payment;
return redirect()->away($payment->getApprovalLink());
}
catch (PayPalConnectionException $ex) {
// This will print the detailed information on the exception.
//REALLY HELPFUL FOR DEBUGGING
echo $ex->getData();
}
Any help will be very appreciated. Thanks in advance