• Integration Code to accept manually entered amount from razorpay gateway



    Here is the code developed by me - 
    1)paste below code in pay.php

    <html>
    <head>
    <form method='POST'>
       <h2>Please add amount:</h2>
     <input id = "amt" type="text" name="amt">
     <input type="submit" value="Display Total">
     </form>
    </html>

    <?php
    error_reporting(0);
    {
    $name = $_POST['amt'];
    echo "Total Amount: ₹$name.";
    }
    ?>

    <?php
    error_reporting(0);
    require('config.php');
    require('razorpay-php/Razorpay.php');
    session_start();

    // Create the Razorpay Order


    use Razorpay\Api\Api;

    $api = new Api($keyId, $keySecret);

    //
    // We create an razorpay order using orders api
    // Docs: https://docs.razorpay.com/docs/orders

    //
    $orderData = [
        'receipt'         => 3456,
        'amount'          => $name* 100, // 2000 rupees in paise
        'currency'        => 'INR',
        'payment_capture' => 1 // auto capture
    ];

    $razorpayOrder = $api->order->create($orderData);

    $razorpayOrderId = $razorpayOrder['id'];

    $_SESSION['razorpay_order_id'] = $razorpayOrderId;

    $displayAmount = $amount = $orderData['amount'];

    if ($displayCurrency !== 'INR')
    {
        $url = "https://api.fixer.io/latest?symbols=$displayCurrency&base=INR";
        $exchange = json_decode(file_get_contents($url), true);

        $displayAmount = $exchange['rates'][$displayCurrency] * $amount / 100;
    }

    $checkout = 'automatic';

    if (isset($_GET['checkout']) and in_array($_GET['checkout'], ['automatic', 'manual'], true))
    {
        $checkout = $_GET['checkout'];
    }

    $data = [
        "key"               => $keyId,
        "amount"            => $amount,
        "name"              => "SATVIK MASURKAR",
        "description"       => "SATVIK UNIVERSE",
        "image"             => "SM-Logo.png",
        "prefill"           => [
        "name"              => "",
        "email"             => "",
        "contact"           => "",
        ],
        "notes"             => [
        "address"           => "Hello World",
        "merchant_order_id" => "12312321",
        ],
        "theme"             => [
        "color"             => "#F37254"
        ],
        "order_id"          => $razorpayOrderId,
    ];

    if ($displayCurrency !== 'INR')
    {
        $data['display_currency']  = $displayCurrency;
        $data['display_amount']    = $displayAmount;
    }

    $json = json_encode($data);

    require("checkout/{$checkout}.php");


    2)Here is the verify.php code

    <?php
    error_reporting(0);
    require('config.php');

    session_start();

    require('razorpay-php/Razorpay.php');
    use Razorpay\Api\Api;
    use Razorpay\Api\Errors\SignatureVerificationError;

    $success = true;

    $error = "Payment Failed";

    if (empty($_POST['razorpay_payment_id']) === false)
    {
        $api = new Api($keyId, $keySecret);

        try
        {
            // Please note that the razorpay order ID must
            // come from a trusted source (session here, but
            // could be database or something else)
            $attributes = array(
                'razorpay_order_id' => $_SESSION['razorpay_order_id'],
                'razorpay_payment_id' => $_POST['razorpay_payment_id'],
    'amt' => $_POST['amt'],
                'razorpay_signature' => $_POST['razorpay_signature']
            );

            $api->utility->verifyPaymentSignature($attributes);
        }
        catch(SignatureVerificationError $e)
        {
            $success = false;
            $error = 'Razorpay Error : ' . $e->getMessage();
        }
    }

    if ($success === true)
    {
        $html = "<p>Your payment was successful</p>
                 <p>Payment ID: {$_POST['razorpay_payment_id']}</p>";
    }
    else
    {
        $html = "<p>Your payment failed</p>
                 <p>{$error}</p>";
    }

    echo $html;


  • 0 comments:

    Post a Comment

    GET A FREE QUOTE NOW

    Search This Blog

    Powered by Blogger.
    • ()
    ADDRESS

    Dombivli, Thane, Maharashtra, India

    EMAIL

    gdmasurkar@gmail.com

    TELEPHONE

    +0251 999 9999

    MOBILE

    +91 7700056797