首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 購物網站整合 PayPal:動態參數建構、URL 導向與 IPN 驗證核心邏輯

     編輯:PHP 綜合知識

動態建構 PayPal 導向 URL

將所有參數編碼後組合成 GET 請求,適合 API 串接或非表單場景:

const PAYPAL_URL = 'https://www.sandbox.paypal.com/'; // 正式環境改 www.paypal.com

$paypalData = [
    'cmd'           => '_ext-enter',
    'redirect_cmd'  => '_xclick',
    'business'      => 'merchant@example.com',
    'item_name'     => 'MyShop Order',
    'item_number'   => $order->id,
    'amount'        => $order->subtotal,
    'shipping'      => $order->shipping_fee,
    'currency_code' => 'USD',
    'first_name'    => $address->first_name,
    'last_name'     => $address->last_name,
    'address1'      => $address->address1,
    'city'          => $address->city,
    'state'         => $address->state_or_province,
    'zip'           => $address->zip_code,
    'no_note'       => 1,
    'lc'            => 'US',
];

$params = [];
foreach ($paypalData as $k => $v) $params[] = "$k=" . urlencode($v);
$paypalUrl = PAYPAL_URL . '?' . implode('&', $params);
header("Location: $paypalUrl");
exit;

IPN 驗證核心邏輯(簡述)

同前文:cmd=_notify-validate 原樣 POST 回 PayPal → 判斷 VERIFIED → 四檢(Completed、txn_id 唯一、receiver_email 正確、金額幣別匹配)→ 更新訂單。

關鍵差異點

場景表單 POSTURL 導向 (GET)
參數長度限制無實質限制受瀏覽器/伺服器 URL 長度限制 (~2KB)
敏感資料暴露Body 中,較不易見URL 完整顯示於地址列、伺服器日誌
適用場景標準網頁結帳API 串接、AJAX 取得導向連結、行動裝置

上線切換清單

  • PAYPAL_URL 改為 https://www.paypal.com/
  • business 改為正式商家 Email
  • IPN URL 改為正式可公開存取的 HTTPS 端點
  • 關閉 Sandbox 測試帳號的 IPN 設定,啟用正式帳號 IPN
  • 實測小額交易($0.01)驗證完整流程
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved