PHP code example of devswert / dolly

1. Go to this page and download the library: Download devswert/dolly library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

devswert / dolly example snippets


// config/app.php
'providers' => [
    ...
    Devswert\Dolly\DollyServiceProvider::class,
];



use Devswert\Dolly\WebPayServicies\WebPayNormal;

...
$total = 12990; // Total a pagar
$session_id = null; // Utilicen el valor que necesiten
$url_return = route('your-webpay-result-route');
$url_final = route('your-webpay-end-route');

$webpay = new WebPayNormal();
$result = $webpay->start($total, $purchase_code, $session_id, $url_return, $url_final);

if (empty($result->token) || !isset($result->token) && true){
	// La autenticacion en WebPay fallo, se recomienda retornar al checkout con un mensaje de error correspondiente
}

// En caso correcto, guardar todos los datos necesarios en session para generar la boleta u orden de compra
session()->put('oc_details', [
    'purchase_code' => $purchase_code,
    'total' => $total,
    // ...
]);

return view('webpay.redirect',[
    'token' => $result->token,
    'url' => $result->url
]);



use Devswert\Dolly\WebPayServicies\WebPayNormal;

...

public function yourResultFunctionName(Request $request){
	$token = $request->get('token_ws');
	$webpay = new WebPayNormal();
	$result = $webpay->result($token);

	if ($result->passes()){
		// Almacenar la OC, pueden usar los datos de session
		
		session()->put('webpay_status', true); // Recomendable para la funcion de end, ya que el token en ese instante ya no existe para WebPay, entonces con esta variable sabemos que el proceso paso correcto

		// Como último pase se redirecciona (si, de nuevo) a WebPay para que genere el boucher de pago
		return view('webpay.redirect',[
            'token' => $token,
            'url' => $result->urlRedirection
        ]);
	}
	else{
		// Algo paso y el resultado no paso, pudo ser rechazo de la transacción o tarjetas sin saldo. Pueden obtener el error con $result->error_message();
		return redirect()->route('your-cart-route');
	}
}

public function youEndFunctionName(Request $request){
        if( session()->has('webpay_status') ){
            session()->forget('webpay_status');
            return view('your.cart.success.payment');
        }

        // Si no pasa, es muy probable que el usuario presiono el boton anular, enviar el mensaje correspondiente y redireccionar al Checkout (o donde sea en su caso)
        return redirect()->route('your.checkout.route');
    }
bash
php artisan vendor:publish --provider="Devswert\Dolly\DollyServiceProvider"