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

NodeJS环境下如何调用PayPal接口实现支付前卖家入驻

NodeJS实现PayPal卖家入驻注册链接生成方案

实现前置条件

你需要提前获取到PayPal接口的有效访问令牌(Access-Token)和自定义的跟踪ID(Tracking-ID),以下提供两种常见实现方式:

方式1:使用axios实现(推荐,代码更简洁)

首先安装依赖:

npm install axios

对应的实现代码:

const axios = require('axios');

// 配置参数,替换为你自己的实际值
const PAYPAL_BASE_URL = 'https://api-m.sandbox.paypal.com';
const ACCESS_TOKEN = '<你的Access-Token>';
const TRACKING_ID = '<你的自定义Tracking-ID>';

async function generateSellerReferralLink() {
  try {
    const response = await axios.post(
      `${PAYPAL_BASE_URL}/v2/customer/partner-referrals`,
      {
        tracking_id: TRACKING_ID,
        operations: [
          {
            operation: "API_INTEGRATION",
            api_integration_preference: {
              rest_api_integration: {
                integration_method: "PAYPAL",
                integration_type: "THIRD_PARTY",
                third_party_details: {
                  features: ["PAYMENT", "REFUND"]
                }
              }
            }
          }
        ],
        products: ["EXPRESS_CHECKOUT"],
        legal_consents: [
          {
            type: "SHARE_DATA_CONSENT",
            granted: true
          }
        ]
      },
      {
        headers: {
          'Content-Type': 'application/json',
          'Authorization': `Bearer ${ACCESS_TOKEN}`
        }
      }
    );

    // 注册链接在返回体的links数组中,rel为"action_url"的项就是卖家入驻跳转链接
    const referralLink = response.data.links.find(link => link.rel === 'action_url').href;
    console.log('卖家入驻注册链接:', referralLink);
    return referralLink;
  } catch (error) {
    console.error('生成入驻链接失败:', error.response ? error.response.data : error.message);
    throw error;
  }
}

// 调用方法
generateSellerReferralLink();

方式2:使用NodeJS原生https模块实现(无需第三方依赖)

const https = require('https');

// 配置参数,替换为你自己的实际值
const PAYPAL_HOST = 'api-m.sandbox.paypal.com';
const PATH = '/v2/customer/partner-referrals';
const ACCESS_TOKEN = '<你的Access-Token>';
const TRACKING_ID = '<你的自定义Tracking-ID>';

function generateSellerReferralLink() {
  return new Promise((resolve, reject) => {
    const postData = JSON.stringify({
      tracking_id: TRACKING_ID,
      operations: [
        {
          operation: "API_INTEGRATION",
          api_integration_preference: {
            rest_api_integration: {
              integration_method: "PAYPAL",
              integration_type: "THIRD_PARTY",
              third_party_details: {
                features: ["PAYMENT", "REFUND"]
              }
            }
          }
        }
      ],
      products: ["EXPRESS_CHECKOUT"],
      legal_consents: [
        {
          type: "SHARE_DATA_CONSENT",
          granted: true
        }
      ]
    });

    const options = {
      hostname: PAYPAL_HOST,
      port: 443,
      path: PATH,
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Authorization': `Bearer ${ACCESS_TOKEN}`,
        'Content-Length': Buffer.byteLength(postData)
      }
    };

    const req = https.request(options, (res) => {
      let data = '';
      res.on('data', (chunk) => {
        data += chunk;
      });
      res.on('end', () => {
        if (res.statusCode >= 200 && res.statusCode < 300) {
          const result = JSON.parse(data);
          const referralLink = result.links.find(link => link.rel === 'action_url').href;
          resolve(referralLink);
        } else {
          reject(new Error(`请求失败,状态码:${res.statusCode},响应:${data}`));
        }
      });
    });

    req.on('error', (e) => {
      reject(new Error(`请求出错:${e.message}`));
    });

    req.write(postData);
    req.end();
  });
}

// 调用方法
generateSellerReferralLink()
  .then(link => console.log('卖家入驻注册链接:', link))
  .catch(err => console.error('生成入驻链接失败:', err));

注意事项

  • 示例使用的是沙箱环境地址,上线前需要将域名替换为正式环境的api-m.paypal.com
  • Access-Token需要定期刷新,有效期通常为几小时,不要硬编码在代码中长期使用
  • tracking_id可以用你平台内的卖家ID填充,后续可以通过该ID关联PayPal返回的卖家账户信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:39:02