1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

php paypal ipn sending data to email

Discussion in 'Other Languages' started by blackhatdamo, Mar 7, 2013.

  1. blackhatdamo

    blackhatdamo Registered Member

    Joined:
    Apr 6, 2012
    Messages:
    86
    Likes Received:
    27
    Location:
    A dark place
    Hi I have code that sends form inputs to my email address after successful payment via paypal. It stores the info in a session and then goes to thanks.php after payment. thanks.php sends data to my email.

    The initial values are captured in paypal.php. which is

    Code:
    <?php
    
    if($_POST)
    {
    session_start();
    $_SESSION['FirstName'] = $_POST['FirstName'];
    $_SESSION['LastName'] = $_POST['LastName'];
    $_SESSION['E-mail'] = $_POST['E-mail'];
    $_SESSION['Street'] = $_POST['Street'];
    $_SESSION['HouseNumber'] = $_POST['HouseNumber'];
    $_SESSION['County'] = $_POST['County'];
    $_SESSION['PostCode'] = $_POST['PostCode'];
    $_SESSION['AngelMessage'] = $_POST['AngelMessage'];
    }
    
    
    ?>
    
    
    <body onLoad="document.form.submit();">
                <h2 align="center">Please wait until we forward you to PayPal </h2>
                <form method="post" name="form" action="https://www.paypal.com/cgi-bin/webscr" target="_parent">
      <input type="hidden" name="business" value="address@hotmail.com" />  <!-- Give your Paypal account e-mail, where you want to receive the money -->  
                    <input type="hidden" name="cmd" value="_xclick" /> <!-- The button that the person clicked is a Buy Now button. -->
                    <input type="hidden" name="return" value="http://www.address.com/thankyou.php" /> <!-- The URL that the user is redirected when he completes the order -->
                    <input type="hidden" name="cancel_return" value="http://www.address.com/form.php" /> <!-- The URL that the user is redirected if he cancels the order -->
                    <input type="hidden" name="currency_code" value="GBP" />  
                    <input type="hidden" name="bn" value="toolkit-php" />
                    <input type="hidden" name="cbt" value="Continue" />
                    <input type="hidden" name="item_name" value="Test Item" />  <!-- Here you can change the item name -->  
                    <input type="hidden" name="amount" value="00.01" />   <!-- The amount the user pays in PayPal -->  
                    <input type="hidden" name="item_number" value="1" />    <!-- Hello -->  
    </form>
    
    
    
    could I put this above the paypal ipn code which is
    Code:
    <?php
    // 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.1\r\n";
     
        // If testing on Sandbox use: 
        // $header .= "Host: www.sandbox.paypal.com:443\r\n";
    $header .= "Host: ipnpb.paypal.com:443\r\n";
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
    
    
        // If testing on Sandbox use:
        //$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
    $fp = fsockopen ('ssl://ipnpb.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
    
    
    $mail_From = "From: me@mybiz.com";
    $mail_To = "test@test.com";
    $mail_Subject = "VERIFIED IPN";
    $mail_Body = $req;
    
    
    foreach ($_POST as $key => $value){
    $emailtext .= $key . " = " .$value ."\n\n";
    }
    
    
    mail($mail_To, $mail_Subject, $emailtext . "\n\n" . $mail_Body, $mail_From);
    
    
    }
    else if (strcmp ($res, "INVALID") == 0) {
    // log for manual investigation
    
    
    $mail_From = "From: me@mybiz.com";
    $mail_To = "test@test.com";
    $mail_Subject = "INVALID IPN";
    $mail_Body = $req;
    
    
    foreach ($_POST as $key => $value){
    $emailtext .= $key . " = " .$value ."\n\n";
    }
    
    
    mail($mail_To, $mail_Subject, $emailtext . "\n\n" . $mail_Body, $mail_From);
    
    
    }
    }
    fclose ($fp);
    }
    ?>
    
    
    
    how would i incorporate my form code?

    Many Thanks