You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PayPal PHP SDK时,Identity Token应传入哪个类及代码位置?

PayPal PHP SDK中Payment Data Transfer(PDT)身份令牌的传入位置

PDT的身份令牌不需要预先注入到SDK的核心配置类中,而是在处理Return URL的回调逻辑里,向PayPal发送PDT验证请求时直接传入。具体操作如下:

  1. 当用户付款完成从PayPal跳转回你的Return URL时,PayPal会在URL参数里带上tx(交易ID)等关键信息
  2. 你需要构建一个POST请求到PayPal的PDT验证端点,把身份令牌作为at参数传入,同时带上tx参数和固定值cmd=_notify-synch
  3. 用PayPal PHP SDK的HttpClient发送请求并处理响应

示例代码:

// 初始化SDK客户端(根据你的版本调整引入路径)
use PayPal\Core\PayPalHttpClient;
use PayPal\Core\SandboxEnvironment;
use PayPal\Http\HttpRequest;

$clientId = '你的Client ID';
$clientSecret = '你的Client Secret';
$environment = new SandboxEnvironment($clientId, $clientSecret);
$client = new PayPalHttpClient($environment);

// 获取PayPal跳转带来的交易令牌
$txToken = $_GET['tx'] ?? '';
// 你的PDT身份令牌
$identityToken = '你的Identity Token';

// 构建PDT验证请求体
$postData = http_build_query([
    'cmd' => '_notify-synch',
    'tx' => $txToken,
    'at' => $identityToken
]);

// 发送请求到PayPal验证端点
$endpoint = $environment->getBaseUrl() . '/cgi-bin/webscr';
$request = new HttpRequest($endpoint, 'POST');
$request->setBody($postData);
$request->addHeader('Content-Type', 'application/x-www-form-urlencoded');

try {
    $response = $client->execute($request);
    $responseContent = $response->getBody();
    
    // 解析响应:第一行是SUCCESS/FAIL,后续是交易详情
    $lines = explode("\n", trim($responseContent));
    if ($lines[0] === 'SUCCESS') {
        // 处理交易数据,比如提取付款金额、买家信息等
        $transactionData = [];
        foreach (array_slice($lines, 1) as $line) {
            list($key, $value) = explode('=', $line, 2);
            $transactionData[urldecode($key)] = urldecode($value);
        }
        // 这里可以把交易数据存入数据库或做后续处理
    } else {
        echo 'PDT验证失败: ' . $lines[1];
    }
} catch (\Exception $e) {
    echo '请求出错: ' . $e->getMessage();
}

注意事项:

  • 沙箱环境和生产环境的验证端点域名会通过SandboxEnvironment/ProductionEnvironment的getBaseUrl()自动获取,不用手动写死
  • PDT是同步验证机制,和SDK里的REST付款接口逻辑完全独立,所以不需要在初始化SDK全局配置时传入令牌
  • 响应内容是URL编码的文本行,需要用urldecode解析真实数据

内容的提问来源于stack exchange,提问作者user3432056

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 05:20:24