no_freedom no_freedom - 4 days ago 4
HTML Question

Integrate paypal

I have successfully integrate paypal account. all is working fine. But I want when the payment successfully transfer then redirect to my site. another question how to get response from paypal?
here is my paypal form. Thanks

`<form action="https://sandbox.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="business" value="savife_1314264698_biz@gmail.com ">
<input type="hidden" name="cmd" value="_xclick-subscriptions">
<input type="hidden" name="item_name" value="Alice's Weekly Digest">
<input type="hidden" name="item_number" value="DIG Weekly">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="notify_url" value="http://localhost/check.php">
<input type="hidden" name="return" value="http://google.co.in">
<input type="hidden" name="a3" value="5.00">
<input type="hidden" name="p3" value="1">
<input type="hidden" name="t3" value="M">

<!-- Display the payment button. -->
<input type="image" name="submit" border="0" src="btn_subscribe_LG.gif" alt="PayPal - The safer, easier way to pay online">
<img alt="" border="0" width="1" height="1" src="https://www.paypal.com/en_US/i/scr/pixel.gif" >
</form>

Answer

Just go through this:

What you want is PAYPAL IPN, INSTANT PAYMENT NOTIFICATION which is sent to user's website after payment is completed.

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_admin_IPNIntro

or you can also set path to IPN in your cart where paypal will send notification like this:

<input type="hidden" name="notify_url" value="site.com/ipn/index.php" />
<input type="hidden" name="return"     value="site.com/ipn/index.php"/>

But you'll need to login to your merchant account on paypal to manually specify the ipn and auto return url. in website payment preferences and instant payment notifications section under profile tab.

Following i've added the sample ipn code which is sent to your website after successfull payment:

// read the post from PayPal system and add 'cmd'
$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}

// post back to PayPal system to validate
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);

// assign posted variables to local variables
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];

if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (strcmp ($res, "VERIFIED") == 0) {
// check the payment_status is Completed
// check that txn_id has not been previously processed
// check that receiver_email is your Primary PayPal email
// check that payment_amount/payment_currency are correct
// process payment
}
else if (strcmp ($res, "INVALID") == 0) {
// log for manual investigation
}
}
fclose ($fp);
}
?>

You need to add this code on your notify url page. the return page you mention in notify url field of shopping cart i.e.

<input type="hidden" name="notify_url" value="site.com/ipn/index.php" />

Put this code in site.com/ipn/index.php

Lets take an example of your shopping cart:

<form action="https://sandbox.paypal.com/cgi-bin/webscr" method="post">  
    <input type="hidden" name="business" value="savife_1314264698_biz@gmail.com ">  
    <input type="hidden" name="cmd" value="_xclick-subscriptions">  
    <input type="hidden" name="item_name" value="Alice's Weekly Digest">  
    <input type="hidden" name="item_number" value="DIG Weekly">  
    <input type="hidden" name="currency_code" value="USD">  
    <input type="hidden" name="notify_url" value="http://localhost/check.php">
    <input type="hidden" name="return" value="http://google.co.in">
    <input type="hidden" name="a3" value="5.00">  
    <input type="hidden" name="p3" value="1">  
    <input type="hidden" name="t3" value="M">  

    <!-- Display the payment button. -->  
    <input type="image" name="submit" border="0" src="btn_subscribe_LG.gif" alt="PayPal - The safer, easier way to pay online">  
    <img alt="" border="0" width="1" height="1" src="https://www.paypal.com/en_US/i/scr/pixel.gif" >  
</form>

In this case your notify url where paypal will send ipn is http://localhost/check.php.

So put that code in check.php page. After recieving the ipn you can further use it to enter in your database etc.

or visit this link to get an overview of paypal ipn listener:

https://cms.paypal.com/uk/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_admin_IPNImplementation

Hope this helps.

Comments