dongxuan8227 2011-08-05 13:06
浏览 34
已采纳

贝宝梦魇

I have included an example I am trying to test here but since I am new to paypal, and I have no idea how to debug the paypal, sandbox is not helping me much either :(

It looks like the payment has been processed and accepted, All I have to do now is update mysql table, on the line marked below just under "if($payment_amount==10.00&&$payment_currency=='GBP'){". I have tested my mysql on phpmyadmin and it works like a charm it's just something else may be wrong up here :(

Paypal Button

<form name="_xclick" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
    <input type="hidden" name="cmd" value="_xclick-subscriptions" />
    <input type="hidden" name="business"  value="[email]" />
    <input type="hidden" name="item_name"  value="New Subscription" />
    <input type="hidden" name="first_name"  value="<?php echo  $arr['user']['fname']; ?>" />
    <input type="hidden" name="last_name"  value="<?php echo  $arr['user']['lname']; ?>" />
    <input type="hidden" name="address1"  value="<?php echo  $arr['user']['add1']; ?>" />
    <input type="hidden" name="address2"  value="<?php echo  $arr['user']['add2']; ?>" />
    <input type="hidden" name="city"  value="<?php echo  $arr['user']['town']; ?>" />
    <input type="hidden" name="zip"  value="<?php echo  $arr['user']['postcode']; ?>" />
    <input type="hidden" name="email"  value="[client_email]" />
    <input type="hidden" name="currency_code"  value="GBP" />
    <input type="hidden" name="no_shipping" value="1" />
    <input type="image" src="http://www.paypal.com/en_US/i/btn/btn_subscribe_LG.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!" />
    <input type="hidden" name="recurring" value="1" />  
    <input type="hidden" name="a3" value="10.00" />  
    <input type="hidden" name="p3" value="1" />
    <input type="hidden" name="t3" value="Y" />
    <input type="hidden" name="src" value="1" />
    <input type="hidden" name="sra" value="1" />
    <input type="hidden" name="item_number" value="<?php echo $arr['user']['id'] ?>" />
    <input type="hidden" name="return"  value="<?php echo site_url.'account/' ?>" />
    <input type="hidden" name="cancel_return"  value="<?php echo site_url.'account/' ?>" />
    <input type="hidden" name="notify_url"  value="<?php echo site_url.'account/ipn.php' ?>" />
</form>

Paypal IPN handler

<?php 
// UPDATED LINE BELOW
mail("[myemail]", "PP",'initiated', "From:support@paypal.com"); 
// 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
";
$header .= "Content-Type: application/x-www-form-urlencoded
";
$header .= "Content-Length: " . strlen($req) . "

";
// $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
// $fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);

$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'];
$business               = $_POST['business'];
$payer_email            = $_POST['payer_email'];
// $payer_email             = $_POST['payer_email'];


if (!$fp) {
    // echo 'Error 101 23';
    // die();
} else {
    fputs ($fp, $header . $req);
    while (!feof($fp)) {
        $res = fgets ($fp, 1024);
        if (strcmp ($res, "VERIFIED") == 0) {
            $data['paypal_receivers_email']     = '[email]';
            if($payment_status=='Completed' && $receiver_email == $data['paypal_receivers_email'] &&$receiver_email){
                if($payment_amount==10.00&&$payment_currency=='GBP'){
                    //successfully// now update db :)// <== this is where im strugling it does not seem to come down here at all.
                }
            }
        // 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);
}

?>
  • 写回答

2条回答 默认 最新

  • dsnhalq37505 2011-08-05 13:08
    关注

    Try to debug, as I did:

    In each step, put email() with details which came from paypal (by post) and others. Log (mail yourself) each success, error and it will give you your problem source. for example, put

     mail("yourmail@mail.com", "PP", $res, "From:support@paypal.com"); 
    

    just after declaring your variable

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探