Paypal транзакция вставляет '0' в качестве значения - PullRequest
0 голосов
/ 14 июня 2011

есть эта страница PayPal, которая работает нормально только тогда, когда PayPal отправляет обратно, не вставляя мое правильное значение (Под этим я имею в виду его вставку '0'), пожалуйста, посмотрите ...

<?php
require 'config.inc.php';

$p = new Paypal();

if(isset($_GET['period']))
{
  $allowedPeriods = array("1000", "5000", "10000", "20000");

  if(!in_array($_GET['period'], $allowedPeriods))
  {
    die("Allowed periods are '1000', '5000', '10000', '20000'");
  }

  if(!$usersClass->checkLoggedIn())
  {
    die("You must be logged in");
  }

  $prices = array( "1000" => 10, "5000" => 30, "10000" => 50,  "20000" => 85 );

  $this_script = "http://".$_SERVER['HTTP_HOST']."/paypal.php?act=";

  $p->add_field('business', PAYPAL_EMAIL_ADDRESS);
  $p->add_field('return', $this_script.'success');
  $p->add_field('cancel_return', $this_script.'cancel');
  $p->add_field('notify_url', $this_script.'ipn');
  $p->add_field('item_name', 'Credits');
  $p->add_field('cmd', '_xclick');
  $p->add_field('amount', $prices[$_GET['period']]);
  $p->add_field('custom', $usersClass->userID()."||".$_POST['period']);
  $p->add_field('rm', '2'); 
  $p->add_field('currency_code','GBP');

  $p->submit_paypal_post();  
}
if(isset($_GET['act'])) {
  switch ($_GET['act']) {
    case "cancel": print "Order was canceled!";
    break;
    case "success":
    print "If payment was successfully received you should be on the top!"; 
    break;
    case "ipn": if ($p->validate_ipn()) {
      $custom = $_POST['custom'];
      $explode = explode("||", $custom); 
      $userid = (int) $explode[0];
      $days = $explode[1];
      $daysArray = array(10 => 1000, 30 => 5000, 50 => 10000, 85 => 20000 );
      $days = $daysArray[$days];
      $tillDate = $days;
      mysql_query("insert into `featured` values (null, '$userid', '$tillDate')")
    }
    break;
  }
}
?>

1 Ответ

0 голосов
/ 14 июня 2011

Я предлагаю вам установить error_reporting(E_ALL) и сделать пост самостоятельно на скрипте ipn, чтобы проверить это.0 также может означать FALSE перед использованием (int) перед ним, поэтому крайне важно, чтобы вы открыли все ошибки и сами увидели ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...