如何通过PayPal实现无中间账户的多商户并行支付?技术咨询
嘿,我来帮你搞定这个并行支付的需求!你之前考虑的Payouts确实不对路——它是从你的账户打款给收款人,而你要的是买家直接把钱付给多个卖家,完全绕开中间账户对吧?那得用PayPal专门的「并行支付」方案,具体操作步骤我给你理清楚:
首先,你的电商平台的PayPal商家账户必须开启**并行支付(Parallel Payments)**权限,这个默认是没开通的,得联系PayPal客服申请开通。另外,每个参与交易的卖家也得有正常的PayPal账户(个人或商家都可以,不过部分地区的个人账户可能需要升级才能接收商业付款,提前和卖家确认下)。
你需要调用PayPal的v2/checkout/orders接口创建订单,核心是用purchase_units数组来定义每个卖家的收款信息——每个数组元素对应一个卖家,钱会直接打到他们的PayPal账户里。给你个贴合你需求的请求示例:
POST /v2/checkout/orders { "intent": "CAPTURE", "purchase_units": [ { "reference_id": "PU1", "amount": { "currency_code": "USD", "value": "9.87" }, "payee": { "email_address": "receiver2@example.com" }, "description": "Thanks for your patronage!", "custom_id": "201403140001" }, { "reference_id": "PU2", "amount": { "currency_code": "USD", "value": "9.85" }, "payee": { "email_address": "receiver@example.com" }, "description": "Thanks for your patronage!", "custom_id": "201403140001" } ], "application_context": { "return_url": "https://你的网站域名/支付成功页面", "cancel_url": "https://你的网站域名/支付取消页面" } }
这里几个关键字段给你解释下:
purchase_units:每个元素就是一个卖家的收款单元,reference_id用来区分不同单元,后续退款或查询时能精准定位。payee.email_address:直接填卖家的PayPal邮箱,这是实现“直接付款”的核心,钱会直接进入这个账户,完全不经过你的平台账户。custom_id:对应你之前提到的sender_item_id,用来关联你自己系统里的订单标识。
创建订单后,PayPal会返回一个approval_url,你把买家跳转到这个URL就行——买家用自己的PayPal账户登录,确认所有付款项(能看到给每个卖家付多少钱),然后完成支付。支付完成后,PayPal会自动跳转到你指定的return_url,同时带回订单ID。
买家付款后,你得调用v2/checkout/orders/{order_id}/capture接口来捕获所有款项。调用成功后,每个purchase_units对应的金额会直接打到对应的卖家账户里,你可以在返回结果里看到每个收款单元的状态,然后在自己的系统里标记交易完成。
- 权限一定要开:没开通并行支付权限的话,创建多
purchase_units的订单会直接报错,这步别忘! - 退款单独处理:如果需要退款,得针对每个收款单元单独发起请求,调用
v2/payments/captures/{capture_id}/refund接口,退款会直接从卖家账户退给买家(前提是卖家账户有足够余额)。 - 手续费归属:每个卖家需要承担自己的PayPal交易手续费,你的平台不会产生额外费用(除非你和PayPal有特殊协议)。
内容的提问来源于stack exchange,提问作者Екатерина Костина

