Advertisement
Viruthagiri

pp mod

Dec 20th, 2011
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. /** PayPal Top-up Module */
  4.  
  5. cp_module_register(__('PayPal Top-up', 'cp') , 'paypal' , '1.0', 'CubePoints', 'http://cubepoints.com', 'http://cubepoints.com' , __('Allow users to buy points using PayPal.', 'cp'), 1);
  6.  
  7. function cp_module_paypal_install(){
  8.         add_option('cp_module_paypal_account', '');
  9.         add_option('cp_module_paypal_sandbox', false);
  10.         add_option('cp_module_paypal_currency', 'USD');
  11.         add_option('cp_module_paypal_item', '%npoints% '.get_bloginfo('name').' '.__('Points', 'cp'));
  12.         add_option('cp_module_paypal_cancel', get_bloginfo('url').'/?cp_module_paypal_return=0');
  13.         add_option('cp_module_paypal_thankyou', get_bloginfo('url').'/?cp_module_paypal_return=1');
  14.         add_option('cp_module_paypal_price', 0.05);
  15.         add_option('cp_module_paypal_min', 1);
  16.         add_option('cp_module_paypal_form',"<form method=\"post\">\n<input type=\"hidden\" name=\"cp_module_paypal_pay\" value=\"1\" />\nNumber of points to purchase:<br />\n<input type=\"text\" name=\"points\" /><br />\n<input type=\"submit\" value=\"Buy!\" />\n</form>");
  17. }
  18. add_action('cp_module_paypal_activate','cp_module_paypal_install');
  19.  
  20. if(cp_module_activated('paypal')){
  21.  
  22. function cp_module_paypal_shortcode( $atts ){
  23.     $r = get_option('cp_module_paypal_form');
  24.     $r = str_replace('%min%',get_option('cp_module_paypal_min'),$r);
  25.     return $r;
  26. }
  27. add_shortcode('cp_paypal','cp_module_paypal_shortcode');
  28.  
  29. /** PayPal top-up logs hook */
  30. add_action('cp_logs_description','cp_module_paypal_logs', 10, 4);
  31. function cp_module_paypal_logs($type,$uid,$points,$data){
  32.     if($type!='paypal') { return; }
  33.     $data = unserialize($data);
  34.     echo '<span title="'.__('Paid by', 'cp').': '.$data['payer_email'].'">'.__('PayPal Points Top-up', 'cp').' (ID: '.$data['txn_id'].')</span>';
  35. }
  36.  
  37. function cp_module_paypal_round_up($value, $precision = 0) {
  38.     $sign = (0 <= $value) ? +1 : -1;
  39.     $amt = explode('.', $value);
  40.     $precision = (int) $precision;
  41.    
  42.     if (strlen($amt[1]) > $precision) {
  43.         $next = (int) substr($amt[1], $precision);
  44.         $amt[1] = (float) (('.'.substr($amt[1], 0, $precision)) * $sign);
  45.        
  46.         if (0 != $next) {
  47.             if (+1 == $sign) {
  48.                 $amt[1] = $amt[1] + (float) (('.'.str_repeat('0', $precision - 1).'1') * $sign);
  49.             }
  50.         }
  51.     }
  52.     else {
  53.         $amt[1] = (float) (('.'.$amt[1]) * $sign);
  54.     }
  55.    
  56.     return $amt[0] + $amt[1];
  57. }
  58.  
  59. function cp_module_paypal_add_admin_page(){
  60.     add_submenu_page('cp_admin_manage', 'CubePoints - ' .__('PayPal Top-up','cp'), __('PayPal Top-up','cp'), 8, 'cp_modules_paypal_admin', 'cp_modules_paypal_admin');
  61. }
  62. add_action('cp_admin_pages','cp_module_paypal_add_admin_page');
  63.  
  64. function cp_modules_paypal_admin(){
  65.  
  66. // handles form submissions
  67. if ($_POST['cp_module_paypal_form_submit'] == 'Y') {
  68.  
  69.     update_option('cp_module_paypal_account', $_POST['cp_module_paypal_account']);
  70.     update_option('cp_module_paypal_sandbox', (bool)$_POST['cp_module_paypal_sandbox']);
  71.     update_option('cp_module_paypal_currency', $_POST['cp_module_paypal_currency']);
  72.     update_option('cp_module_paypal_item', $_POST['cp_module_paypal_item']);
  73.         if(trim($_POST['cp_module_paypal_cancel'])==''){ $_POST['cp_module_paypal_cancel'] = get_bloginfo('url').'/?cp_module_paypal_return=0'; }
  74.     update_option('cp_module_paypal_cancel', $_POST['cp_module_paypal_cancel']);
  75.         if(trim($_POST['cp_module_paypal_thankyou'])==''){ $_POST['cp_module_paypal_thankyou'] = get_bloginfo('url').'/?cp_module_paypal_return=1'; }
  76.     update_option('cp_module_paypal_thankyou', trim($_POST['cp_module_paypal_thankyou']));  
  77.     update_option('cp_module_paypal_price', ((float)$_POST['cp_module_paypal_price']<=0)?1:(float)$_POST['cp_module_paypal_price']);
  78.     update_option('cp_module_paypal_min', ((int)$_POST['cp_module_paypal_min']<=0)?1:(int)$_POST['cp_module_paypal_min']);
  79.     update_option('cp_module_paypal_form', stripslashes($_POST['cp_module_paypal_form']));
  80.    
  81.  
  82.  
  83.     echo '<div class="updated"><p><strong>'.__('Settings Updated','cp').'</strong></p></div>';
  84. }
  85.  
  86. function cp_module_paypal_currSel($curr){
  87.     if($curr == get_option('cp_module_paypal_currency')) { echo 'selected'; }
  88. }
  89. if(get_option('cp_module_paypal_sandbox')){
  90.     $cp_module_paypal_sandbox_checked = 'checked';
  91. }
  92.    
  93. ?>
  94. <script type="text/javascript">
  95. string1 = '<form method="post">'+"\n"+'<input type="hidden" name="cp_module_paypal_pay" value="1" />'+"\n"+'Number of points to purchase:<br />'+"\n"+'<input type="text" name="points" /><br />'+"\n"+'<input type="submit" value="Buy!" />'+"\n"+'</form>';
  96. string2 = '<form method="post">'+"\n"+'<input type="hidden" name="cp_module_paypal_pay" value="1" />'+"\n"+'Number of points to purchase:<br />'+"\n"+'<select name="points">'+"\n"+'<option value="100">100 Points</option>'+"\n"+'<option value="200">200 Points</option>'+"\n"+'<option value="300">300 Points</option>'+"\n"+'<option value="400">400 Points</option>'+"\n"+'<option value="500">500 Points</option>'+"\n"+'</select>'+"\n"+'<br />'+"\n"+'<input type="submit" value="Buy!" />'+"\n"+'</form>';
  97. string3 = '<form method="post">'+"\n"+'<input type="hidden" name="cp_module_paypal_pay" value="1" />'+"\n"+'<input type="hidden" name="points" value="100" />'+"\n"+'<input type="submit" value="Buy 100 Points" />'+"\n"+'</form>';
  98. string4 = '<a href="<?php bloginfo('url'); ?>/?cp_module_paypal_pay=1&points=100">Buy 100 Points</a>';
  99. </script>
  100. <div class="wrap">
  101.     <h2>CubePoints - <?php _e('PayPal Top-up', 'cp'); ?></h2>
  102.     <?php _e('Configure the PayPal Top-up module.', 'cp'); ?><br /><br />
  103.  
  104.     <form name="cp_module_paypal_form" method="post">
  105.         <input type="hidden" name="cp_module_paypal_form_submit" value="Y" />
  106.  
  107.     <h3><?php _e('PayPal Settings','cp'); ?></h3>
  108.     <table class="form-table">
  109.         <tr valign="top">
  110.             <th scope="row"><label for="cp_module_paypal_account"><?php _e('PayPal Username', 'cp'); ?>:</label></th>
  111.             <td valign="middle"><input type="text" id="cp_module_paypal_account" name="cp_module_paypal_account" value="<?php echo get_option('cp_module_paypal_account'); ?>" size="40" /></td>
  112.         </tr>
  113.         <tr valign="top">
  114.             <th scope="row"><label for="cp_module_paypal_sandbox"><?php _e('Sandbox mode', 'cp'); ?>:</label></th>
  115.             <td valign="middle"><input id="cp_module_paypal_sandbox" name="cp_module_paypal_sandbox" type="checkbox" value="1" <?php echo $cp_module_paypal_sandbox_checked; ?> /></td>
  116.         </tr>
  117.         <tr valign="top">
  118.             <th scope="row"><label for="cp_module_paypal_currency"><?php _e('Currency', 'cp'); ?>:</label></th>
  119.             <td valign="middle">
  120.             <select id="cp_module_paypal_currency" name="cp_module_paypal_currency" class="widefat" width="230" style="width:270px;">
  121.                 <option value="AUD" <?php cp_module_paypal_currSel('AUD'); ?>>Australian Dollars</option>
  122.                 <option value="CAD" <?php cp_module_paypal_currSel('CAD'); ?>>Canadian Dollars</option>
  123.                 <option value="EUR" <?php cp_module_paypal_currSel('EUR'); ?>>Euros</option>
  124.                 <option value="GBP" <?php cp_module_paypal_currSel('GBP'); ?>>Pounds Sterling</option>
  125.                 <option value="JPY" <?php cp_module_paypal_currSel('JPY'); ?>>Yen</option>
  126.                 <option value="USD" <?php cp_module_paypal_currSel('USD'); ?>>U.S. Dollars</option>
  127.                 <option value="NZD" <?php cp_module_paypal_currSel('NZD'); ?>>New Zealand Dollar</option>
  128.                 <option value="CHF" <?php cp_module_paypal_currSel('CHF'); ?>>Swiss Franc</option>
  129.                 <option value="HKD" <?php cp_module_paypal_currSel('HKD'); ?>>Hong Kong Dollar</option>
  130.                 <option value="SGD" <?php cp_module_paypal_currSel('SGD'); ?>>Singapore Dollar</option>
  131.                 <option value="SEK" <?php cp_module_paypal_currSel('SEK'); ?>>Swedish Krona</option>
  132.                 <option value="DKK" <?php cp_module_paypal_currSel('DKK'); ?>>Danish Krone</option>
  133.                 <option value="PLN" <?php cp_module_paypal_currSel('PLN'); ?>>Polish Zloty</option>
  134.                 <option value="NOK" <?php cp_module_paypal_currSel('NOK'); ?>>Norwegian Krone</option>
  135.                 <option value="HUF" <?php cp_module_paypal_currSel('HUF'); ?>>Hungarian Forint</option>
  136.                 <option value="CZK" <?php cp_module_paypal_currSel('CZK'); ?>>Czech Koruna</option>
  137.                 <option value="ILS" <?php cp_module_paypal_currSel('ILS'); ?>>Israeli Shekel</option>
  138.                 <option value="MXN" <?php cp_module_paypal_currSel('MXN'); ?>>Mexican Peso</option>
  139.                 <option value="BRL" <?php cp_module_paypal_currSel('BRL'); ?>>Brazilian Real</option>
  140.                 <option value="MYR" <?php cp_module_paypal_currSel('MYR'); ?>>Malaysian Ringgits</option>
  141.                 <option value="PHP" <?php cp_module_paypal_currSel('PHP'); ?>>Philippine Pesos</option>
  142.                 <option value="TWD" <?php cp_module_paypal_currSel('TWD'); ?>>Taiwan New Dollars</option>
  143.                 <option value="THB" <?php cp_module_paypal_currSel('THB'); ?>>Thai Baht</option>
  144.             </select>
  145.             </td>
  146.         </tr>
  147.         <tr valign="top">
  148.             <th scope="row"><label for="cp_module_paypal_item"><?php _e('PayPal item name', 'cp'); ?>:</label></th>
  149.             <td valign="middle"><input type="text" id="cp_module_paypal_item" name="cp_module_paypal_item" value="<?php echo get_option('cp_module_paypal_item'); ?>" size="40" /> <br /><small>Shortcode: %points%, %npoints%</small></td>
  150.         </tr>
  151.         <tr valign="top">
  152.             <th scope="row"><label for="cp_module_paypal_cancel"><?php _e('Cancel URL', 'cp'); ?>:</label></th>
  153.             <td valign="middle"><input type="text" id="cp_module_paypal_cancel" name="cp_module_paypal_cancel" value="<?php echo get_option('cp_module_paypal_cancel'); ?>" size="40" /> <br /><small>URL to direct your users when they cancel the payment.</small></td>
  154.         </tr>
  155.         <tr valign="top">
  156.             <th scope="row"><label for="cp_module_paypal_thankyou"><?php _e('Thank You URL', 'cp'); ?>:</label></th>
  157.             <td valign="middle"><input type="text" id="cp_module_paypal_thankyou" name="cp_module_paypal_thankyou" value="<?php echo get_option('cp_module_paypal_thankyou'); ?>" size="40" /> <br /><small>URL to direct your users when they complete the payment.</small></td>
  158.         </tr>
  159.     </table>
  160.     <br />
  161.     <h3><?php _e('Points Settings','cp'); ?></h3>
  162.     <table class="form-table">
  163.         <tr valign="top">
  164.             <th scope="row"><label for="cp_module_paypal_price"><?php _e('Price per point', 'cp'); ?>:</label></th>
  165.             <td valign="middle"><input type="text" id="cp_module_paypal_price" name="cp_module_paypal_price" value="<?php echo get_option('cp_module_paypal_price'); ?>" size="40" /> <br /><small>Entering 0.05 would mean that $1 buys you 20 points.</small></td>
  166.         </tr>
  167.         <tr valign="top">
  168.             <th scope="row"><label for="cp_module_paypal_min"><?php _e('Minimum points per purchase', 'cp'); ?>:</label></th>
  169.             <td valign="middle"><input type="text" id="cp_module_paypal_min" name="cp_module_paypal_min" value="<?php echo get_option('cp_module_paypal_min'); ?>" size="40" /></td>
  170.         </tr>
  171.     </table>
  172.     <br />
  173.     <h3><?php _e('Form Settings','cp'); ?></h3>
  174.     <label for="cp_module_paypal_form"><?php _e('Purchase Form HTML Code', 'cp'); ?>:</label><br />
  175.     <textarea id="cp_module_paypal_form" name="cp_module_paypal_form" cols="90" rows="13" style="font-size:10px;" /><?php echo get_option('cp_module_paypal_form'); ?></textarea>
  176.     <br />
  177.     <small><?php _e('Choose a preset', 'cp'); ?>:
  178.         <a href="#" onclick="document.getElementById('cp_module_paypal_form').value=string1;return false;"><?php _e('Enter any amount', 'cp'); ?></a> |
  179.         <a href="#" onclick="document.getElementById('cp_module_paypal_form').value=string2;return false;"><?php _e('Select from a list', 'cp'); ?></a> |
  180.         <a href="#" onclick="document.getElementById('cp_module_paypal_form').value=string3;return false;"><?php _e('Single button with fixed points', 'cp'); ?></a> |
  181.         <a href="#" onclick="document.getElementById('cp_module_paypal_form').value=string4;return false;"><?php _e('Link', 'cp'); ?></a>
  182.     </small>
  183.     <p>To insert the points purchase form into a page, use the following shortcode: <i>[cp_paypal]</i></p>
  184.     <br />
  185.     <h3><?php _e('PayPal IPN Configuration','cp'); ?></h3>
  186.     <p><?php _e('To ensure that this module works correctly, Instant Payment Notifications (IPN) has to be turned on from your PayPal account.', 'cp'); ?></p>
  187.     <p><?php _e('IPN Notification URL', 'cp'); ?>: <i><?php bloginfo('url'); ?>/?cp_module_paypal_ipn=1</i></p>
  188.     <p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_profile-ipn-notify" target="_blank"><?php _e('Click here', 'cp'); ?></a> <?php _e('to configure PayPal IPN settings.', 'cp'); ?>
  189.  
  190.     <p class="submit">
  191.         <input type="submit" name="Submit" value="<?php _e('Update Options','cp'); ?>" />
  192.     </p>
  193. </form>
  194. </div>
  195. <?php
  196. }
  197.  
  198. function cp_module_paypal_pay(){
  199.     if($_REQUEST['cp_module_paypal_pay']!=''){
  200.     header("Cache-Control: no-cache, must-revalidate");
  201.     header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
  202.        
  203.     if(get_option('cp_module_paypal_sandbox')){
  204.         $loc = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
  205.     }
  206.     else{
  207.         $loc = 'https://www.paypal.com/cgi-bin/webscr';
  208.     }
  209.     $points = (int) $_REQUEST['points'];
  210.     if(!is_user_logged_in()){
  211.         cp_module_paypal_showMessage(__('You must be logged in to purchase points!', 'cp'));
  212.     }
  213.     if($points<get_option('cp_module_paypal_min')){
  214.         cp_module_paypal_showMessage(__('You must purchase a minimum of', 'cp').' '.get_option('cp_module_paypal_min').' points!');
  215.     }
  216.     $price =  cp_module_paypal_round_up(get_option('cp_module_paypal_price') * $points, 2);
  217. ?>
  218. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  219. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
  220. <head>
  221.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  222.     <title><?php _e('Processing payment...', 'cp'); ?></title>
  223.     <meta name="robots" content="noindex, nofollow" />
  224.     <link rel='stylesheet' id='thickbox-css'  href='<?php echo WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__),"",plugin_basename(__FILE__)). 'style.css' ?>' type='text/css' media='all' />
  225. </head>
  226. <body>
  227.     <form action="<?php echo $loc; ?>" method="post" name="paypal_form">
  228.         <input type="hidden" name="cmd" value="_xclick">
  229.         <input type="hidden" name="business" value="<?php echo get_option('cp_module_paypal_account'); ?>">
  230.         <input type="hidden" name="item_name" value="<?php echo str_replace('%points%',cp_formatPoints($points),str_replace('%npoints%',$points,get_option('cp_module_paypal_item'))); ?>">
  231.         <input type="hidden" name="on1" value="User">
  232.         <input type="hidden" name="os1" value="<?php $user=get_userdata(cp_currentUser()); echo $user->user_login;?>">
  233.         <input type="hidden" name="custom" value="<?php echo $points .'|'. cp_currentUser(); ?>">
  234.         <input type="hidden" name="no_shipping" value="1">
  235.         <input type="hidden" name="return" value="<?php echo get_option('cp_module_paypal_thankyou'); ?>">
  236.         <input type="hidden" name="cbt" value="<?php _e('Return to', 'cp'); echo ' '; bloginfo('name'); ?>">
  237.         <input type="hidden" name="cancel_return" value="<?php echo get_option('cp_module_paypal_cancel'); ?>">
  238.         <input type="hidden" name="notify_url" value="<?php bloginfo('url'); ?>/?cp_module_paypal_ipn=1">
  239.         <input type="hidden" name="rm" value="2">
  240.         <input type="hidden" name="amount" value="<?php echo $price; ?>">
  241.         <input type="hidden" name="currency_code" value="<?php echo get_option('cp_module_paypal_currency'); ?>">
  242.     </form>
  243.     <div id="container">
  244.     <p id="load"><img src="<?php echo WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__),"",plugin_basename(__FILE__)). 'load.gif' ?>" alt="<?php _e('Processing payment...', 'cp'); ?>" /></p>
  245.     <p id="text">Processing payment...</p>
  246.     <p><a href="#" onclick="document.paypal_form.submit();return false;">Click here to continue if you are not automatically redirected &raquo;</a></p>
  247.     </div>
  248.     <script type="text/javascript">
  249.         setTimeout("document.paypal_form.submit()",2000);
  250.     </script>
  251. </body>
  252. </html>
  253. <?php
  254. exit;
  255. }
  256. }
  257.  
  258. add_action('init','cp_module_paypal_pay');
  259.    
  260. function cp_module_paypal_message(){
  261.         if($_REQUEST['cp_module_paypal_return']!=''){
  262.         if($_REQUEST['cp_module_paypal_return']=='1'){
  263.             cp_module_paypal_showMessage(__('Thank you for your purchase!', 'cp'));
  264.         }
  265.         if($_REQUEST['cp_module_paypal_return']=='0'){
  266.             cp_module_paypal_showMessage(__('Your payment did not go through successfully!', 'cp'));
  267.         }
  268.         exit;
  269.     }
  270. }
  271.    
  272. function cp_module_paypal_showMessage($message){
  273. ?>
  274. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  275. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
  276. <head>
  277.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  278.     <title><?php bloginfo('name'); ?></title>
  279.     <meta name="robots" content="noindex, nofollow" />
  280.     <link rel='stylesheet' id='thickbox-css'  href='<?php echo WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__),"",plugin_basename(__FILE__)). 'style.css' ?>' type='text/css' media='all' />
  281. </head>
  282. <body>
  283.     <div id="container">
  284.     <p id="text"><?php echo $message; ?></p>
  285.     <p><a href="<?php bloginfo('url'); ?>">Click here to return to <?php bloginfo('name'); ?> &raquo;</a></p>
  286.     </div>
  287. </body>
  288. </html>
  289. <?php
  290. exit();
  291. }
  292.  
  293. add_action('init','cp_module_paypal_message');
  294.  
  295. function cp_module_paypal_ipn(){
  296.     if($_GET['cp_module_paypal_ipn']!=''){
  297.     // read the post from PayPal system and add 'cmd'
  298.     $req = 'cmd=_notify-validate';
  299.  
  300.     foreach ($_POST as $key => $value) {
  301.     $value = urlencode(stripslashes($value));
  302.     $req .= "&$key=$value";
  303.     }
  304.  
  305.     if(get_option('cp_module_paypal_sandbox')){
  306.         $loc = 'ssl://www.sandbox.paypal.com';
  307.     }
  308.     else{
  309.         $loc = 'ssl://www.paypal.com';
  310.     }
  311.    
  312.     // post back to PayPal system to validate
  313.     $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
  314.     $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
  315.     $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
  316.     $fp = fsockopen ($loc, 443, $errno, $errstr, 30);
  317.  
  318.     // assign posted variables to local variables
  319.     $item_name = $_POST['item_name'];
  320.     $item_number = $_POST['item_number'];
  321.     $payment_status = $_POST['payment_status'];
  322.     $payment_amount = $_POST['mc_gross'];
  323.     $payment_currency = $_POST['mc_currency'];
  324.     $txn_id = $_POST['txn_id'];
  325.     $receiver_email = $_POST['receiver_email'];
  326.     $payer_email = $_POST['payer_email'];
  327.     $custom = $_POST['custom'];
  328.     list($points,$uid)=explode('|',$custom);
  329.  
  330.     if (!$fp) {
  331.     // HTTP ERROR
  332.     } else {
  333.     fputs ($fp, $header . $req);
  334.     while (!feof($fp)) {
  335.     $res = fgets ($fp, 1024);
  336.     if (strcmp ($res, "VERIFIED") == 0) {
  337.     // check the payment_status is Completed
  338.         if($payment_status!='Completed'){ die(); }
  339.     // check that txn_id has not been previously processed
  340.         global $wpdb;
  341.         $results = $wpdb->get_results('SELECT * FROM `'.CP_DB.'` WHERE `tyle`=\'paypal\'');
  342.         foreach($results as $result){
  343.             $data = $result->data;
  344.             if($data['txn_id']==$txn_id){ die(); }
  345.         }
  346.     // check that receiver_email is your Primary PayPal email
  347.         if($receiver_email!=get_option('cp_module_paypal_account')){ die(); }
  348.     // check that payment_amount/payment_currency are correct
  349.         if($payment_currency!=get_option('cp_module_paypal_currency')){ die(); }
  350.         if((float)$payment_amount!=(float)cp_module_paypal_round_up(get_option('cp_module_paypal_price') * (int)$points, 2)){ die(); }
  351.     // process payment
  352.         cp_points('paypal', $uid, (int)$points, serialize(array('txn_id'=>$txn_id,'payer_email'=>$payer_email,'amt'=>$payment_amount)));
  353.     }
  354.     else if (strcmp ($res, "INVALID") == 0) {
  355.     // invalid paypal return
  356.         die();
  357.     }
  358.     }
  359.     fclose ($fp);
  360.     }
  361.     exit();
  362.     }
  363. }
  364.  
  365. add_action('init','cp_module_paypal_ipn');
  366.  
  367. }
  368. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement