全部
常见问题
产品动态
精选推荐

Java 多商户系统 中接入 PayPal

管理 管理 编辑 删除

要在 Java 多商户系统 中接入 PayPal,核心要解决两个点:

  1. 支付接入(订单收款)
  2. 多商户资金结算(PayPal 支持的分账或多商户账户体系)

下面我给你梳理一个完整方案:

一、PayPal 的多商户支持方式

  1. 普通收款(单商户) 使用一个统一的商户 PayPal 账号收款。 平台收到钱后再通过内部结算(提现、线下转账等)分给各个商户。 缺点:平台承担清算风险 & 税务压力。
  2. PayPal for Marketplaces(多商户/平台模式) PayPal 提供 Commerce Platform API(前称 Adaptive Payments,现已逐步升级)。 支持 分账(Split Payment)、子商户入驻、商户独立收款。 每个商户都需完成 KYC(实名认证/企业认证),PayPal API 会生成子商户账号。 交易时:买家付款 → PayPal 按照规则分账 → 平台与商户同时收钱。


二、Java 接入流程

假设你要做的是 平台 + 多商户入驻 模式:

1. 依赖与 SDK

PayPal 提供官方 Java SDK(支持 REST API)


  com.paypal.sdk
  rest-api-sdk
  1.14.0

⚠️ 注意:PayPal 旧的 Java SDK 已停止维护,推荐直接走 REST API + 自己封装 或用社区 SDK。


2. 商户入驻(Onboarding)

  • 平台通过 PayPal 提供的 Partner Referrals API 引导商户授权。
  • 步骤: 平台调用 POST /v2/customer/partner-referrals 创建邀请链接。 商户点击 → 跳转 PayPal → 登录并授权给平台。 回调返回 merchant_id,保存到数据库。

示例请求(伪代码):

HttpPost post = new HttpPost("https://api-m.sandbox.paypal.com/v2/customer/partner-referrals");
post.setHeader("Authorization", "Bearer " + accessToken);
post.setEntity(new StringEntity(jsonBody, ContentType.APPLICATION_JSON));
HttpResponse response = client.execute(post);


3. 创建订单 & 支付

  • 买家下单时,平台调用: POST /v2/checkout/orders 指定支付金额 指定收款方 payee.merchant_id 支持 payment_instruction 配置分账

示例 JSON:

{
  "intent": "CAPTURE",
  "purchase_units": [
    {
      "amount": {
        "currency_code": "USD",
        "value": "100.00"
      },
      "payee": {
        "merchant_id": "MERCHANT_ID_OF_SELLER"
      },
      "payment_instruction": {
        "platform_fees": [
          {
            "amount": {
              "currency_code": "USD",
              "value": "5.00"
            }
          }
        ]
      }
    }
  ],
  "application_context": {
    "return_url": "https://your-site.com/return",
    "cancel_url": "https://your-site.com/cancel"
  }
}


4. 用户支付 & 回调

  • 返回 approve 链接给前端,买家跳转 PayPal 支付。
  • 支付完成后,PayPal 回调 return_url。
  • 平台调用 POST /v2/checkout/orders/{id}/capture 确认收款。


5. 资金结算

  • 如果使用 普通模式:平台收款 → 内部清算。
  • 如果使用 多商户模式:PayPal 自动将钱打到商户账户,同时分配平台佣金。


三、数据库设计要点

  • merchant 表:保存每个入驻商户的 paypal_merchant_id、授权状态。
  • order 表:保存 PayPal 订单号、支付状态、资金分账信息。
  • settlement 表:记录商户收款/提现流水。


四、测试环境

  • 注册 PayPal Sandbox
  • 创建: 平台账号 子商户账号(sandbox buyer/seller)
  • 在测试环境跑通后,再切换到 live API。


Java 多商户接入 PayPal 的示例代码骨架(含 Spring Boot + PayPal REST API 封装)

请登录后查看

小码二开 最后编辑于2025-08-19 09:11:14

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打赏
已打赏¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打赏
已打赏¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
打赏
已打赏¥{{reward_price}}
99
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定
打赏金额
当前余额:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
请输入 0.1-{{reward_max_price}} 范围内的数值
打赏成功
¥{{price}}
完成 确认打赏

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服