2014-01-27 58 views
0

我需要使用貝寶的IPN在客戶的網站上創建訂單。他爲他的顧客創建kydex皮套,所以我需要在訂單上有多個選項。另外,在交易完成後,我需要發送一封包含發票的電子郵件給客戶以及我的客戶。我的確使用貝寶IPN的ZERO體驗,因此我正在尋找任何人在此提供的建議,指導或示例。我沒有太多的谷歌運氣。需要使用貝寶IPN創建自定義訂單的建議/示例

回答

1

有兩個非常好的選擇,這不包括你手工做。爲什麼重新發明輪子?很多非常好的,免費的例子已經存在。

  1. 使用CMS與電子商務平臺(Drupal的+的Ubercart或其他,WordPress的+ woocommerce或其他,Magento的),其中包括自定義的PayPal排序。

  2. 貝寶建議我們這樣做的方式是在其網站上生成一個非常複雜,完整的按鈕,然後通過php copy - > paste將其捕捉到客戶端網站。這是PayPal直接支付+選項+發票的一種非常確定的(雙關)選項。

除非你快速使用POST,否則你將會在幾周內抨擊一些已被掌握的東西,並多次回饋給社區。

0

如果我是你,我會開始在developer.paypal.com,從那裏你可以設置你的ipn的東西,並通過整合方法。只是一個簡單的運行它是如何工作下來就是:從網站

  1. 客戶訂單
  2. 網站發送產品信息在對重定向的PayPal貝寶確認付款
  3. 貝寶通知您與交易信息一起IPN與所有的東西,你從第2步

打發他們現在是什麼您的IPN會做和應該做的是: 1.檢查「已檢查」狀態,如果這樣繼續下去,如果不是不貸 2 。檢查重複的transac因爲你應該存儲這些信息,因爲人們喜歡嘗試並在你的賬戶上拉一個快速的賬戶 3.檢查正確的貨幣,因爲你只想使用例如美元而不是日元的匯率。

現在,如果一切都在引擎蓋都好,那麼你可以開始貸款,並從他們可以提供電子郵件到管理和買方,即使貝寶這是否以及

0

以下是您可以遵循的步驟。

Step1創建IPN表單。確保將IPN URL(通知URL)傳遞給paypal。

對於表單變量,你可以參考https://developer.paypal.com/webapps/developer/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/

<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> 
    <input type="hidden" name="cmd" value="_cart"> 
    <input type="hidden" name="business" value="[email protected]"> 
    <input type="hidden" name="item_name" value="hat"> 
    <input type="hidden" name="item_number" value="123"> 
    <input type="hidden" name="amount" value="15.00"> 
    <input type="hidden" name="first_name" value="John"> 
    <input type="hidden" name="last_name" value="Doe"> 
    <input type="hidden" name="address1" value="9 Elm Street"> 
    <input type="hidden" name="address2" value="Apt 5"> 
    <input type="hidden" name="city" value="Berwyn"> 
    <input type="hidden" name="state" value="PA"> 
    <input type="hidden" name="zip" value="19312"> 
    <input type="hidden" name="night_phone_a" value="610"> 
    <input type="hidden" name="night_phone_b" value="555"> 
    <input type="hidden" name="night_phone_c" value="1234"> 
    <input type="hidden" name="email" value="[email protected]"> 
    <input type="hidden" name="return" value="https//www.mysite.com/order/return"> 
    <input type="hidden" name="cancel_return" value="https//www.mysite.com/order/cancel" id="cancel_return"> 
    <input type="hidden" name="notify_url" value="https//www.mysite.com/ipn"> 
</form> 

步驟2創建IPN控制器。詳細瞭解審查https://developer.paypal.com/docs/classic/ipn/gs_IPN/

$req = 'cmd=_notify-validate'; 
foreach ($_POST as $key => $value) { $_POST[$key] = mysql_real_escape_string($value); }   

foreach ($_POST as $key => $value) { 
    $value = urlencode(stripslashes($value)); 
    $req .= "&$key=$value"; 
} 

$header = ''; 
$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('www.sandbox.paypal.com', 80, $errno, $errstr, 30); 

// assign posted variables to local variables 

$content['payment_status']  = $_POST['payment_status']; 
$content['payment_amount']  = $_POST['mc_gross']; 
$content['payment_currency'] = $_POST['mc_currency']; 
$content['txn_id']    = $_POST['txn_id']; 
$content['receiver_email']  = $_POST['receiver_email']; 
$content['payer_email']   = $_POST['payer_email'];  
$content['txn_type']   = $_POST['txn_type'];   
$content['paydate']    = date('Y-m-d H:i:s'); 


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

    fputs ($fp, $header . $req); 
    if (!feof($fp)) 
    { 
     $res = fgets ($fp, 1024); 

     if(strcasecmp($content['txn_type'], "subscr_payment") == 0) 
     { 
      //Action    
     } 
     else if(strcasecmp($content['payment_status'], "Completed") == 0) 
     { 
      //Action    
     } 
     else if(strcasecmp($content['txn_type'], "subscr_cancel") == 0) 
     { 
      //Action    
     } 
    } 
    fclose ($fp); 
}