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

如何申请PayPal AppID及下载交易发票详情(附PHP示例)

解决PayPal交易详情及发票下载的方案

核心问题对应解决步骤

1. 用现代REST API替代过时的TransactionSearch

旧版NVP/SOAP的TransactionSearch已废弃,改用PayPal REST API的交易查询接口,可直接获取包含invoice_id的完整交易数据,无需旧版AppID,使用OAuth2的Client ID/Secret认证:

  • 获取Access Token(正式环境):
curl -v -X POST "https://api-m.paypal.com/v1/oauth2/token" \
-H "Accept: application/json" \
-H "Accept-Language: en_US" \
-u "你的正式环境Client ID:你的正式环境Client Secret" \
-d "grant_type=client_credentials"
  • 查询指定交易ID的完整数据:
curl -v -X GET "https://api-m.paypal.com/v1/reporting/transactions?transaction_id=目标交易ID&fields=all" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer 上面获取的Access Token"

返回结果中transaction_details[0]->invoice_id就是你需要的发票ID。

2. 下载PDF格式的交易发票

拿到invoice_id后,调用Invoicing API直接导出与PayPal账户预览一致的PDF:

curl -v -X GET "https://api-m.paypal.com/v1/invoicing/invoices/目标Invoice ID/pdf" \
-H "Authorization: Bearer Access Token" \
--output invoice.pdf

若交易无关联发票,可通过交易查询接口拿到的明细,用TCPDF/FPDF等PHP库自行生成符合要求的可打印PDF。

3. 正式环境认证凭证的获取

无需寻找旧版AppID,直接创建REST应用获取Client ID/Secret:

  • 登录PayPal开发者后台,进入「My Apps & Credentials」
  • 切换到「Live」环境,创建新的REST应用,系统自动生成正式环境的Client ID和Secret
  • 该凭证可用于所有REST API调用,包括交易查询与发票下载

4. 替代Angell Eye的PHP实现

Angell Eye库过于老旧,存在大量PHP弃用问题,建议:

  • 使用PayPal官方PHP SDK v2(支持PHP 7.4+),自动处理认证与API调用
  • 或直接封装CURL请求,避免依赖第三方过时库,示例代码:
<?php
use PayPalCheckoutSdk\Core\PayPalHttpClient;
use PayPalCheckoutSdk\Core\ProductionEnvironment;
use PayPalCheckoutSdk\Reports\TransactionsGetRequest;

$clientId = "你的正式环境Client ID";
$clientSecret = "你的正式环境Client Secret";

$environment = new ProductionEnvironment($clientId, $clientSecret);
$client = new PayPalHttpClient($environment);

$request = new TransactionsGetRequest("目标交易ID");
$request->queryParams->set("fields", "all");

try {
    $response = $client->execute($request);
    $invoiceId = $response->result->transaction_details[0]->invoice_id;
    // 此处可添加下载PDF发票的逻辑
} catch (Exception $ex) {
    echo $ex->getMessage();
}

5. 沙箱环境测试的解决办法

沙箱无真实交易数据时,可手动创建测试场景:

  • 在沙箱商家账户中创建测试发票
  • 用沙箱买家账户完成支付,即可获得带invoice_id的测试交易,用于接口调试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:03:38