YouTube Icon

Code Playground.

How to Integrate Payumoney Payment Gateway in Laravel 5

CFG

How to Integrate Payumoney Payment Gateway in Laravel 5

I'll explain how to incorporate Payumoney Payment Gateway in Laravel 5 in this tutorial. Most of the material is already in the PayU documents, I'm just going to explain it in step so that you can quickly incorporate without reading the entire text. In this example i have all value write static in input box. 

Steps For How to Integrate Payumoney Payment Gateway in Laravel 5

Step 1. Create Payumoney account

Go to http://payumoney.com/ and sign up as a merchant account.

Step 2. At time of sign up use your valid email.

Step 3. Fill all required business details.

Step 4. Add your bank detail.

Step 5. Create route in laravel

We are required only three route to call controller.

Route::get('subscribe-process', [
    'as' => 'subscribe-process',
    'uses' => 'SigninController@SubscribProcess'
]);


Route::get('subscribe-cancel', [
    'as' => 'subscribe-cancel',
    'uses' => 'SigninController@SubscribeCancel'
]);

Route::get('subscribe-response', [
    'as' => 'subscribe-response',
    'uses' => 'SigninController@SubscribeResponse'
]);

Step 6. SigninController with SubscribProcess function

In this step load view page.

public function SubscribProcess()
{
    return view('payumoney');
}

Step 7. View page (payumoney.blade.php)

<?php

    $MERCHANT_KEY = ""; // add your id
    $SALT = ""; // add your id

    //$PAYU_BASE_URL = "https://test.payu.in";
    $PAYU_BASE_URL = "https://secure.payu.in";
    $action = '';
    $txnid = substr(hash('sha256', mt_rand() . microtime()), 0, 20);
    $posted = array();
    $posted = array(
        'key' => $MERCHANT_KEY,
        'txnid' => $txnid,
        'amount' => 1000,
        'firstname' => Auth::user()->name,
        'email' => Auth::user()->email,
        'productinfo' => 'PHP Project Subscribe',
        'surl' => 'http://crowdforgeeks.co/subscribe-response/',
        'furl' => 'http://crowdforgeeks.co/subscribe-cancel/',
        'service_provider' => 'payu_paisa',
    );

    if(empty($posted['txnid'])) {
        $txnid = substr(hash('sha256', mt_rand() . microtime()), 0, 20);
    } 
    else 
    {
        $txnid = $posted['txnid'];
    }
    
    $hash = '';
    $hashSequence = "key|txnid|amount|productinfo|firstname|email|udf1|udf2|udf3|udf4|udf5|udf6|udf7|udf8|udf9|udf10";
    
    if(empty($posted['hash']) && sizeof($posted) > 0) {
        $hashVarsSeq = explode('|', $hashSequence);
        $hash_string = '';	
        foreach($hashVarsSeq as $hash_var) {
            $hash_string .= isset($posted[$hash_var]) ? $posted[$hash_var] : '';
            $hash_string .= '|';
        }
        $hash_string .= $SALT;

        $hash = strtolower(hash('sha512', $hash_string));
        $action = $PAYU_BASE_URL . '/_payment';
    } 
    elseif(!empty($posted['hash'])) 
    {
        $hash = $posted['hash'];
        $action = $PAYU_BASE_URL . '/_payment';
    }

?>
<html>
  <head>
  <script>
    var hash = '<?php echo $hash ?>';
    function submitPayuForm() {
      if(hash == '') {
        return;
      }
      var payuForm = document.forms.payuForm;
           payuForm.submit();
    }
  </script>
  </head>
  <body onload="submitPayuForm()">
    Processing.....
        <form action="<?php echo $action; ?>" method="post" name="payuForm"><br />
            <input type="hidden" name="key" value="<?php echo $MERCHANT_KEY ?>" /><br />
            <input type="hidden" name="hash" value="<?php echo $hash ?>"/><br />
            <input type="hidden" name="txnid" value="<?php echo $txnid ?>" /><br />
            <input type="hidden" name="amount" value="1000" /><br />
            <input type="hidden" name="firstname" id="firstname" value="<?=Auth::user()->name?>" /><br />
            <input type="hidden" name="email" id="email" value="<?=Auth::user()->email?>" /><br />
            <input type="hidden" name="productinfo" value="PHP Project Subscribe"><br />
            <input type="hidden" name="surl" value="http://crowdforgeeks.co/subscribe-response/" /><br />
            <input type="hidden" name="furl" value="http://crowdforgeeks.co/subscribe-cancel/" /><br />
            <input type="hidden" name="service_provider" value="payu_paisa"  /><br />
            <?php
            if(!$hash) { ?>
                <input type="submit" value="Submit" />
            <?php } ?>
        </form>
  </body>
</html>

Step 8. SigninController with SubscribeResponse function

public function Response(Request $request)
{
    dd('Payment Successfully done!');
}

Step 9. SigninController with SubscribeCancel function

public function SubscribeCancel()
{
     dd('Payment Cancel!');
}

And if you like this tutorials please share it with your friends via Email or Social Media.




CFG