PHP Developer

Tuesday, 3 October 2017

Pay with PayPal and get transaction Detail using simple HTML Form

Pay with PayPal and get transaction Detail using simple HTML Form



<?php

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['invoice_payment']) && !empty($_POST['invoice_payment'])) {
    //$paypal_email = 'sanjay@gmail.com.com';  //DUMMY
    $paypal_email = 'sunil@gmail.com.com';    //LIVE
 
    $return_url = site_url().'/pay-by-paypal/?type=pay_now&invoiceno='.$_GET['invoiceno'].'&paystatus=completed';
    $cancel_url = site_url().'/pay-by-paypal/?type=pay_now&invoiceno='.$_GET['invoiceno'].'&paystatus=canceled';
    $notify_url = '';

    $item_name = 'Pay for Invoice id : '.$_GET['invoiceno'];
    $item_amount = $total_amount;
    $querystring = '';

    // Firstly Append paypal account to querystring
    $querystring .= "?business=".urlencode($paypal_email)."&";

    // Append amount& currency (£) to quersytring so it cannot be edited in html

    //The item name and amount can be brought in dynamically by querying the $_POST['item_number'] variable.
    $querystring .= "item_name=".urlencode($item_name)."&";
    $querystring .= "amount=".urlencode($item_amount)."&";

    //loop for posted values and append to querystring
    foreach($_POST as $key => $value){
            $value = urlencode(stripslashes($value));
            $querystring .= "$key=$value&";
    }

    // Append paypal return addresses
    $querystring .= "return=".urlencode(stripslashes($return_url))."&";
    $querystring .= "cancel_return=".urlencode(stripslashes($cancel_url))."&";
    $querystring .= "notify_url=".urlencode($notify_url);

    // Append querystring with custom field
    //$querystring .= "&custom=".USERID;

    // Redirect to paypal IPN
    //header('location:https://www.sandbox.paypal.com/cgi-bin/webscr'.$querystring);   // Dummy Sandbox paypal Payment
    header('location:https://www.paypal.com/cgi-bin/webscr'.$querystring);  //Live Paypal Payment
    exit();
} ?>
<?php
$item_number = mt_rand(100000000000000,999999999999999);
$invoiceno = 9087786546;
$current_userid = get_current_user_id();
?>
<form class="paypal" action="" method="post" id="paypal_form">
    <input type="hidden" name="cmd" value="_xclick" />
    <input type="hidden" name="no_note" value="1" />
    <input type="hidden" name="lc" value="US" />
    <input type="hidden" name="currency_code" value="USD" />
    <input type="hidden" name="bn" value="PP-BuyNowBF:btn_buynow_LG.gif:NonHostedGuest" />
    <input type="hidden" name="first_name" value="Sunil"  />
    <input type="hidden" name="last_name" value="Sharma"  />
    <input type="hidden" name="payer_email" value="sunil.sharma@gmail.com"  />  <!-- PayPal ID -->
    <input type="hidden" name="paid_by" value="<?php echo $current_userid;?>"  />
    <input type="hidden" name="paid_to" value="<?php echo $writer_id;?>"  />
    <input type="hidden" name="pay_for_invoiceid" value="<?php echo $invoiceno;?>"  />
    <input type="hidden" name="invoice_payment" value="writer_invoice"  />
    <input type="hidden" name="item_number" value="<?php echo $item_number;?>" / >
    <input type='hidden' name='rm' value='2'>
    <input type="submit" name="submit" class="paypal_paynow" value="PAY NOW"/>
</form>


And get response on return URL "$return_url" using $_REQUEST

No comments:

Post a Comment