2013-02-19 70 views
0

在貝寶notify_url頁,當我使用CMD值_cart.How我能得到的交易細節notify_url頁如何獲得notify_url頁的交易細節,貝寶

<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="POST" name="_xclick" id="paypal_form"> 
<input type="hidden" name="upload" value="1" /> 
<input type="hidden" name="cmd" value="_xclick" /> 
<!-- The business email address, where you want to receive the payment --> 
<!--<input type="hidden" name="business" value="[email protected]" />--> 
<input type="hidden" name="business" value="[email protected]" /> 
<!-- The customer email address --> 

<input type="hidden" name="item_name_1" value="<?php echo ucfirst($couponname); ?>" /> 

<input type="hidden" name="amount_1" value="<?php echo $total_payable_amount; ?>" /> 
<!--<input type="hidden" name="currency_code" value="AUD" />--> 
<input type="hidden" name="currency_code" value="USD" /> 

<input type="hidden" name="amount" value="25.58" /> 
<!-- Where you want to return after PayPal Payment --> 
<input type="hidden" name="return" value="http://yes-i-deal.com.au/test/paypal_ipn.php" /> 
<!-- A back-end notification send to the specific page after successful payment --> 
<!--<input type="hidden" name="notify_url" value="http://yes-i-deal.com.au/test/paypal.php" />--> 
<input type="hidden" name="notify_url" value="http://yes-i-deal.com.au/test/paypal_ipn.php" /> 
<!-- Where you want to return after cancel the PayPal Payment --> 
<input type="hidden" name="cancel_return" value="http://yes-i-deal.com.au/" /> 
<input type="hidden" name="custom" value="<?php echo $coupon_id."_".$userid;?>" /> 




      <input type="image" name="submit" src="http://yes-i-deal.com.au/themes/green/images/Buy-Now-Button.png" /> 
</form> 

在我沒有得到任何值,我notify_url頁我得到的價值爲

session_start(); 
require("ipn_cls1.php"); 
$paypal_info = $_POST; 
print_r($paypal_info); 
$paypal_ipn = new paypal_ipn($paypal_info); 
$payment_status = trim($paypal_info['payment_status']); // Si Completed : tout est OK echo 
$payment_amount = trim($paypal_info['mc_gross']); 
+0

你能證明你的notify_url網頁代碼..? notify_url頁面獲取POST數據來自PayPal,所以檢查POST數據.. – 2013-02-19 03:51:27

+1

當我使用CMD值_xclick我收到的細節,但使用時_cart沒有得到。我的notify_url頁面我獲得值爲session_start(); require(「ipn_cls1.php」); $ paypal_info = $ _POST; print_r($ paypal_info); $ paypal_ipn = new paypal_ipn($ paypal_info); /////////////////////////0 echo「status」。$ payment_status = trim($ paypal_info ['payment_status']); //硅已完成:吹捧EST行 回聲 「STATUS1」 $支付金額=修剪($ paypal_info [ 'mc_gross']); – sreelatha 2013-02-19 03:58:22

回答

0

我在我當前的項目中有與貝寶自適應付款相同的問題。我已將

notify_url設爲http://mysite.com/payment-success。在這個頁面中,我簡單地編碼了

$ request = $ _POST;

郵件( '身份識別碼@我的賬戶',$要求提供);

然後我把交易結果到我的郵箱查看。

請注意,在我的郵件中,我可以看到交易結果,如果我插入到數據庫中,它將插入但我無法在我的頁面中看到交易結果。嘗試向您的郵件發送交易結果。

+0

當我用來發送交易細節到我的郵件我得到的錯誤在該頁面作爲警告:郵件()期望參數3是字符串,數組中給出的/home/yesid984/public_html/test/paypal_ipn.php在線16 警告:無效的參數提供的foreach()在第86行的/home/yesid984/public_html/test/paypal_ipn.php 致命錯誤:調用未定義的方法stdClass :: is_verified()在/ home/yesid984/public_html/test /paypal_ipn.php線98和我沒有收到任何郵件 – sreelatha 2013-02-19 04:25:25

+0

是sreelatha郵件需要3個參數。 mail('id @ youaccount','title',$ request) – 2013-02-19 06:05:57

+0

如何獲取自定義值。我將郵件()更改爲喜歡郵件('id @ youaccount','title',$ request)。那麼我也沒有收到任何郵件。我需要自定義的價值,我怎麼才能得到它... – sreelatha 2013-02-19 07:57:21

0

創建paypal_ipn.php文件並在其中放置php代碼。

// Response from Paypal 
    // read the post from PayPal system and add 'cmd' 
    $req = 'cmd=_notify-validate'; 
    foreach ($_POST as $key => $value) { 
     $value = urlencode(stripslashes($value)); 
     $value = preg_replace('/(.*[^%^0^D])(%0A)(.*)/i','${1}%0D%0A${3}',$value);// IPN fix 
     $req .= "&$key=$value"; 
    } 

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

    // 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); 

    if (!$fp) { 
     // HTTP ERROR 
    } else {  


     fputs ($fp, $header . $req); 
     while (!feof($fp)) { 
      ////mail('[email protected]','Step 9','Step 9');   
      $res = fgets ($fp, 1024); 
      if (true || strcmp($res, "VERIFIED") == 0) { 
       ////mail('[email protected]','PAYMENT VALID','PAYMENT VALID'); 

      // Validate payment (Check unique txnid & correct price) 
      $valid_txnid = check_txnid($data['txn_id']); 
      $valid_price = check_price($data['payment_amount'], $data['item_number']); 
      // PAYMENT VALIDATED & VERIFIED! 
      if($valid_txnid && $valid_price){    
      //----------------- INSERT RECORDS TO DATABASE------------------------------------- 
      if ($data['invoice']=='basic') { 
       $price = 39; 
      } else { 
       $price = 159; 
      } 
      $this->user_model->update_user(
       array(
        'id' => $data['custom'], 
        'user_status' => 1, 
        'payment_date' => date("Y-m-d H:i:s",time()), 
        'next_payment_date' => date('Y-m-d', strtotime('+32 days')), 
        'user_package' => $data['invoice'], 
        'package_price' => $price 
       ) 
      ); 
      $data2 = array('id' => '', 
      'txn_id' => $data['txn_id'], 
      'amount' => $data['payment_amount'], 
      'mode ' => $data['payment_status'], 
      'paypal_log' => $data['paypallog'], 
      'user_id' => $data['custom'], 
      'created_at' => date('Y-m-d H:i:s',time()) 

      ); 
      $this->db->insert('tbl_paypal_log', $data2); 
      //----------------- INSERT RECORDS TO DATABASE------------------------------------- 
      }else{     
      // Payment made but data has been changed 
      // E-mail admin or alert user 
      }      

     } elseif ($res=='INVALID') { 

       // PAYMENT INVALID & INVESTIGATE MANUALY! 
       // E-mail admin or alert user 
       ////mail('[email protected]','PAYMENT INVALID AND INVESTIGATE MANUALY','PAYMENT INVALID AND INVESTIGATE MANUALY'); 

     }  
     }  
    fclose ($fp); 
    } 
+0

什麼是check_txnid和check_price? 你在哪裏定義了這些全部? – 2015-11-01 11:59:00

0

有一個really good guide到即時付款通知(IPN),並理解它們是如何工作的。本指南爲您提供了使您的notify_url正常工作所需的步驟。

有貝寶提供的good code samples爲您做驗證回覆,這真的很不錯。你可以使用這些是你自己的起點。