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

如何在Android电商App(Node.js后端)实现PayPal买卖双方转账?

实现PayPal用户间交易的方案(Android + Node.js后端)

一、前期准备

  • 注册PayPal商家账号,创建REST应用,获取CLIENT_ID和CLIENT_SECRET(优先用沙箱环境测试,确认流程后切换生产环境)
  • 要求卖家(用户A)在你的App中完成PayPal账号绑定:引导A提供其PayPal收款邮箱/商家ID,或者通过PayPal OAuth授权你的平台获取其收款权限,相关信息存储到后端数据库

二、核心交易流程(后端主导)

1. 创建支付订单(用户B发起购买时)

后端接收前端传来的订单信息(商品金额、卖家A的PayPal收款账户等),调用PayPal的Create Order API,明确指定收款方为用户A的账户,同时配置订单金额、商品描述等参数。
示例Node.js代码(基于paypal-rest-sdk):

const paypal = require('paypal-rest-sdk');

paypal.configure({
  mode: 'sandbox', // 生产环境改为'live'
  client_id: '你的CLIENT_ID',
  client_secret: '你的CLIENT_SECRET'
});

const createOrder = (req, res) => {
  const { amount, sellerPayPalEmail } = req.body;
  const orderData = {
    intent: 'CAPTURE',
    purchase_units: [{
      amount: {
        currency_code: 'USD', // 根据业务调整币种
        value: amount
      },
      payee: {
        email_address: sellerPayPalEmail // 用户A的PayPal收款邮箱
      }
    }]
  };

  paypal.orders.create(orderData, (error, order) => {
    if (error) {
      res.status(500).json({ error: error.message });
    } else {
      res.json({ orderId: order.id }); // 返回订单ID给Android前端
    }
  });
};

2. Android端唤起PayPal支付

前端拿到后端返回的orderId,集成PayPal Android SDK,调用支付接口唤起PayPal登录/支付页面,用户B完成支付授权操作。

3. 捕获并确认资金到账

用户B完成支付后,后端调用Capture Order API确认资金捕获,PayPal会直接将资金打入用户A的账户。同时可以配置PayPal Webhook监听PAYMENT.CAPTURE.COMPLETED事件,确保资金到账后再更新平台订单状态。
示例Node.js捕获代码:

const captureOrder = (req, res) => {
  const { orderId } = req.body;
  paypal.orders.capture(orderId, {}, (error, capture) => {
    if (error) {
      res.status(500).json({ error: error.message });
    } else {
      if (capture.status === 'COMPLETED') {
        // 更新平台订单为已完成状态
        res.json({ success: true, captureDetails: capture });
      } else {
        res.status(400).json({ error: '资金捕获失败' });
      }
    }
  });
};

三、确保资金准确到账的关键措施

  • 明确指定收款方:创建订单时必须通过payee字段指定用户A的PayPal账户,避免资金流入平台账户中转(无抽成需求时)
  • 依赖Webhook验证:配置PayPal Webhook监听支付完成事件,以PayPal官方通知为准更新订单状态,避免前端通知的不可靠性
  • 沙箱全流程测试:用PayPal沙箱账号模拟卖家、买家角色,反复验证资金流向和交易状态
  • 完善错误处理:捕获API调用异常(如支付失败、收款账户无效等),及时反馈用户并留存日志

四、平台抽成场景处理

如果平台需要收取佣金,可使用PayPal的分账功能:在创建订单时设置disbursement_mode: 'INSTANT',并在purchase_units中添加seller_receivable_breakdown字段,指定平台佣金金额和收款账户,资金会同时打入用户A和平台账户。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:45:31