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

PayPal商家入驻后如何获取Merchant ID?技术求助

PayPal商家入驻后无法获取Merchant ID的问题排查与解决

问题背景

我正在实现PayPal商家入驻功能,使用以下代码发起入驻请求:

const data = {
    'tracking_id': 'testenterprices123122',
    'partner_config_override': {
        'return_url': 'https://vtx.uk',
    },
    '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 = {
    url: 'https://api-m.sandbox.paypal.com/v2/customer/partner-referrals',
    method: 'POST',
    headers: {
        'Accept': 'application/json',
        'Accept-Language': 'en_US',
        'Content-Type': 'application/json',
        'Authorization': 'Bearer ' + token
    },
};
axios(options).then(res => console.log(res.data)).catch(err => console.log(err));

遇到以下三个问题:

  1. 配置了return_url,预期从该URL获取merchant ID并存入数据库,但入驻流程结束后仅显示邮箱确认页面,确认邮箱后跳转至Sandbox账户仪表盘,未携带任何参数。
  2. 尝试通过tracking_id调用API获取商家信息,返回RESOURCE_NOT_FOUND错误,代码如下:
const options = {
    url: 'https://api-m.sandbox.paypal.com/v1/customer/partners/partner_id/merchant-integrations?tracking_id={tracking_id}',
    method: 'GET',
    headers: {
        'Accept': 'application/json',
        'Accept-Language': 'en_US',
        'Authorization': 'Bearer ' + token
    },
};
axios(options).then(res => console.log(res.data)).catch(err => console.log(err));
  1. 已配置商家入驻完成的Webhook,但无任何响应。

问题排查与解决方案

1. return_url未携带merchant ID的问题

  • 核心原因:商家入驻流程未完全完成,或PayPal未触发带参数的跳转。
  • 解决步骤:
    • 确保商家在Sandbox环境中完成全部入驻流程:除邮箱验证外,还需完成账户信息填写、业务信息提交、测试银行账户关联,只有账户完全激活后,PayPal才会在return_url后附加merchant_id和partner_referral_id参数。
    • 补充notify_url配置:在partner_config_override中添加该字段,用于接收PayPal异步通知,和Webhook形成互补:
      'partner_config_override': {
          'return_url': 'https://vtx.uk',
          'notify_url': 'https://your-notify-url.com'
      }
      

2. tracking_id查询返回RESOURCE_NOT_FOUND的问题

  • 核心原因:API路径占位符未替换、权限不足或商家记录未生成。
  • 解决步骤:
    • 替换API路径中的占位符:将partner_id替换为你的真实合作伙伴ID(可在PayPal开发者后台获取),{tracking_id}替换为实际的跟踪ID(如testenterprices123122),修正后URL示例:
      https://api-m.sandbox.paypal.com/v1/customer/partners/XXX-XXXX-XXXX-XXX/merchant-integrations?tracking_id=testenterprices123122
      
    • 确保访问令牌包含partner_referral:read权限:获取token时需指定该scope。
    • 确认商家已完成全部入驻流程:只有账户激活后,PayPal才会生成对应merchant记录,此时才能查询到数据。

3. Webhook无响应的问题

  • 核心原因:事件类型配置错误、URL不可访问或签名验证失败。
  • 解决步骤:
    • 确认Webhook订阅事件类型为MERCHANT_ONBOARDING_COMPLETED:这是商家入驻完成时的触发事件。
    • 确保Webhook URL可被PayPal沙箱访问:本地开发需用工具(如ngrok)暴露公网地址。
    • 验证Webhook签名:在PayPal后台配置Webhook时保存签名密钥,接收通知时需验证签名合法性。
    • 测试Webhook:在PayPal开发者后台Webhook管理页,模拟发送MERCHANT_ONBOARDING_COMPLETED事件,检查是否能收到通知。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 06:43:15