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

更新旧PHP项目遇Composer报错:paypal/paypal-checkout-sdk已废弃

解决paypal/paypal-checkout-sdk废弃问题的方案

paypal/paypal-checkout-sdk已被PayPal官方废弃且不再维护,官方目前推荐直接通过HTTP请求调用PayPal REST API来替代,以下是具体解决步骤:

1. 移除废弃包

在项目的composer.json中删除paypal/paypal-checkout-sdk的依赖条目,然后执行命令移除包:

composer remove paypal/paypal-checkout-sdk

2. 添加HTTP客户端依赖

选择一个常用的HTTP客户端(比如Guzzle)来发起API请求,执行命令安装:

composer require guzzlehttp/guzzle

如果项目已经有其他HTTP客户端(如Symfony HttpClient),可以跳过此步骤。

3. 重构代码调用PayPal API

替换原有SDK调用逻辑,直接通过HTTP请求对接PayPal的REST API,以下是一个简单的示例(以创建订单为例):

<?php
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;

// 初始化客户端,沙箱环境用api-m.sandbox.paypal.com,生产环境用api-m.paypal.com
$client = new Client([
    'base_uri' => 'https://api-m.sandbox.paypal.com/',
    'headers' => ['Content-Type' => 'application/json'],
]);

try {
    // 获取访问令牌
    $authResponse = $client->post('v1/oauth2/token', [
        'auth' => ['你的PayPal客户端ID', '你的PayPal客户端密钥'],
        'form_params' => ['grant_type' => 'client_credentials'],
    ]);
    $authData = json_decode($authResponse->getBody()->getContents(), true);
    $accessToken = $authData['access_token'];

    // 构建订单数据
    $orderPayload = [
        'intent' => 'CAPTURE',
        'purchase_units' => [
            [
                'amount' => [
                    'currency_code' => 'USD',
                    'value' => '19.99'
                ]
            ]
        ]
    ];

    // 创建订单
    $orderResponse = $client->post('v2/checkout/orders', [
        'headers' => ['Authorization' => "Bearer {$accessToken}"],
        'json' => $orderPayload
    ]);
    $orderData = json_decode($orderResponse->getBody()->getContents(), true);

    // 处理订单结果,比如获取订单ID用于前端跳转
    echo "订单ID: " . $orderData['id'];
} catch (GuzzleException $e) {
    // 处理请求异常,比如打印错误信息
    echo "请求错误: " . $e->getMessage();
}

关键注意事项

  • 替换示例中的客户端ID、密钥以及金额、货币代码等参数为实际项目值
  • 沙箱环境和生产环境的API域名不同,上线前务必切换到生产地址
  • 参考PayPal官方API文档,根据原有SDK的功能(如捕获订单、查询订单、退款等),对应调用v2版本的REST API端点
  • 务必处理API请求的异常情况,避免因网络问题或参数错误导致业务逻辑中断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 14:05:20