簡體   English   中英

提交表單后,將貝寶付款確認書添加到mysql

[英]Add paypal payment confirmation to mysql after form is submitted

我有一個非常簡單的在線html表單。 用戶填寫表格,並在提交時將信息插入到MySQL數據庫中,然后將其重定向到PayPal以完成付款。 問題在於數據庫沒有有關他們是否實際完成付款的任何信息。

解決方案是使用IPN。 我已經在網上搜索了內容,並且在教程中找到了管,但是它太復雜了,我無法實現IPN來確認向MySQL付款。

請問是否有人可以幫助我將其組合在一起。

不太復雜。

您已經有一個用於測試的沙箱帳戶了嗎? 如果沒有,請在sandbox.paypal.com上注冊賣方/買方測試帳戶。 不確定兩者可能都需要不同的電子郵件地址。

1.)在提交表單中,輸入IPN腳本的路徑,例如pp.notifiy.php

<input type="hidden" name="notify_url" value="http://my.test/pp.notifiy.php" />

另外,在您的PayPal商家/沙盒帳戶設置中,指定監聽器的URL。 偵聽器腳本不得進行防火牆保護。 它將從PayPal收到$ _POST。

2.)付款成功后,

  • Paypal將發布到您的偵聽器腳本(例如pp.notifiy.php)
  • 偵聽器會將后置內容的副本發回。
  • 您正在檢查正文中的字符串VERIFIED以處理訂單和更新數據庫。

我更喜歡cURL解決方案,因為PayPal最近進行了更改,這引起了一些麻煩,使用cURL解決方案對我來說效果很好,尤其是在沙盒測試時。 需要cURL擴展名才能在PHP中激活

對於cURL解決方案,請閱讀有關PayPal Developer的更多信息: 如何處理即時付款通知(IPN)消息 我不建議使用的其他解決方案使用fsockopen

這是我的工作cURL偵聽器腳本(pp.notify.php)的一部分

#$pp_url = "https://www.paypal.com/cgi-bin/webscr";
$pp_url = "https://www.sandbox.paypal.com/cgi-bin/webscr";

// build the request / postback
$req = 'cmd=_notify-validate';

foreach($_POST AS $k => $v) {
  $v=urlencode(stripslashes($v));
  $req.="&$k=$v";
}

// post back to PayPal system to validate using curl
$ch = curl_init($pp_url);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close'));

if(!($res=curl_exec($ch)))
{
  #error_log("Got " . curl_error($ch) . " when processing IPN data");
  curl_close($ch);
  exit;
}

$res = trim($res);
curl_close($ch);

// inspect IPN validation result and act accordingly
if(strcmp($res,"VERIFIED")==0)
{
  // The IPN is verified
  // update your db/process order...

} else if (strcmp($res,"INVALID")==0)
{
  // IPN invalid, log for manual investigation
}

這也將在沙盒上工作。 所以最好做一些測試。 您應該獲得VERIFIED ,然后處理訂單/更新數據庫。 如果一切正常,請從沙盒切換到真正的PayPal,最好也至少測試一次。

我希望這對入門有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM