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));
遇到以下三个问题:
- 配置了
return_url,预期从该URL获取merchant ID并存入数据库,但入驻流程结束后仅显示邮箱确认页面,确认邮箱后跳转至Sandbox账户仪表盘,未携带任何参数。 - 尝试通过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));
- 已配置商家入驻完成的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' }
- 确保商家在Sandbox环境中完成全部入驻流程:除邮箱验证外,还需完成账户信息填写、业务信息提交、测试银行账户关联,只有账户完全激活后,PayPal才会在
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记录,此时才能查询到数据。
- 替换API路径中的占位符:将
3. Webhook无响应的问题
- 核心原因:事件类型配置错误、URL不可访问或签名验证失败。
- 解决步骤:
- 确认Webhook订阅事件类型为
MERCHANT_ONBOARDING_COMPLETED:这是商家入驻完成时的触发事件。 - 确保Webhook URL可被PayPal沙箱访问:本地开发需用工具(如ngrok)暴露公网地址。
- 验证Webhook签名:在PayPal后台配置Webhook时保存签名密钥,接收通知时需验证签名合法性。
- 测试Webhook:在PayPal开发者后台Webhook管理页,模拟发送
MERCHANT_ONBOARDING_COMPLETED事件,检查是否能收到通知。
- 确认Webhook订阅事件类型为
内容的提问来源于stack exchange,提问作者Yaroslav Kravchenko
相关产品推荐
相关产品推荐

