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

PayPal JS SDK问题:指定收款方未生效的技术求助

PayPal按钮收款方不符预期的解决方案

问题原因分析

你遇到的核心问题是:在createOrder中指定的payee.merchant_id没有生效,导致付款默认流向了Client ID对应的沙箱账号。主要可能有以下几点原因:

  • loadScript中额外传入了merchantId参数,这个参数会设置默认收款方,直接覆盖你在订单里指定的收款方配置
  • 当前Client ID对应的沙箱账号没有权限向第三方商户转账,或者未将目标艺术家的商户ID添加为授权收款方
  • 目标merchantId不是有效的沙箱环境商户ID

具体修复步骤

1. 修改代码,移除loadScript中的merchantId参数

原来的loadScript调用里传入了merchantId,这会让PayPal默认使用该ID作为收款方,忽略你在订单中设置的payee配置。修改后的代码如下:

<script lang="ts">
  import { loadScript } from "@paypal/paypal-js";
  import { onMount } from "svelte";

  export let merchantId: string;
  export let cartTotal = 1.5;
  const CLIENT_ID = "AcIRN8E_ggIpsFeIMMo7b6ctsLHEjv_GK8sCpKHwI3v2DHpo-_VBf05LtcbdoKv2T_L1l7uTjNGb8lif"; // 替换为你的Client ID

  onMount(() => {
    // 移除loadScript中的merchantId参数
    loadScript({ clientId: CLIENT_ID }).then((paypal) => {
      paypal
        .Buttons({
          style: {
            color: "blue",
            shape: "pill",
          },

          createOrder: function (data, actions) {
            if (!merchantId) {
              return false;
            }
            console.log(merchantId);
            return actions.order.create({
              intent: "CAPTURE",
              purchase_units: [
                {
                  amount: {
                    value: cartTotal.toString(),
                  },
                  payee: {
                    merchant_id: merchantId,
                  },
                },
              ],
            });
          },
          onApprove: function (data, actions) {
            return actions?.order.capture().then(function (details) {
              alert("Payment successful!");
            });
          },
          onError: function (err) {
            alert("Something went wrong");
            console.log("Something went wrong", err);
          },
        })
        .render("#paypal-button-container");
    });
  });
</script>

<div id="paypal-button-container" />

<style>
  #paypal-button-container {
    margin: 30px 0;
  }
</style>

2. 配置沙箱账号权限

  • 登录PayPal沙箱开发者后台,找到你的主账号(对应CLIENT_ID的账号)
  • 确认该账号已开启第三方收款/转账权限,或者将目标艺术家的沙箱商户ID添加为关联的收款账户
  • 检查目标merchantId是否为沙箱环境的有效商户ID,不要使用生产环境的ID

3. 调试验证

  • 在createOrder中打印生成的订单对象,确认payee.merchant_id是否正确包含其中
  • 若仍有问题,查看PayPal返回的错误日志(onError中的err对象),根据具体提示排查权限或配置问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:30:00