如何使用 paypal 计算税金 api

how to calculate tax using paypal api

我安装了paypal的.net sdk并在沙箱环境中创建了一个应用程序 接下来我选择了 clientId 和 secret 并使用以下示例代码进行支付。

    static void Main(string[] args)
    {
        // Get a reference to the config
        var config = ConfigManager.Instance.GetProperties();

        // Use OAuthTokenCredential to request an access token from PayPal
        var accessToken = new OAuthTokenCredential(config["clientId"], config["clientSecret"]);

        var apiContext = new APIContext(accessToken.GetAccessToken());



        var payment = Payment.Create(apiContext, new Payment
        {
            intent = "sale",
            payer = new Payer
            {
                payment_method = "paypal"
            },
            transactions = new List<Transaction>
        {
            new Transaction
            {
                description = "Test",
                invoice_number = "009",
                amount = new Amount
                {
                    currency = "EUR",
                    total = "41.00",
                    details = new Details
                    {
                        tax = "0",
                        shipping = "0",
                        subtotal = "40",
                        handling_fee = "1"

                    }
                },
                item_list = new ItemList
                {
                    items = new List<Item>
                    {
                        new Item
                        {
                            name = "Room 12",
                            currency = "EUR",
                            price = "10",
                            quantity = "4",
                        }
                    }
                }
            }
        },
            redirect_urls = new RedirectUrls
            {
                return_url = "https://google.de/",
                cancel_url = "https://google.de/"
            }
        });
    }

在交易中我必须传递税务信息。

我是否让 paypal 计算税款,我只是传递金额信息以及地址和一些其他信息(如果需要)?

不行,你必须自己算税。

默认情况下,用户将能够 select 他们在 PayPal 的送货地址,推荐这样做,因为这样他们就不必手动输入。鉴于他们的地址在 PayPal 结帐期间可能会发生变化,您可能希望根据 selected 地址计算新的税额 and/or 运费。您可以使用 JS SDK 的 onShippingChange callback.

执行此操作

不过,首先,您似乎正在使用已弃用的 SDK 和已弃用的 v1/payments API,并且还从您的网站重定向到 PayPal,所有这些都是旧的。不要做任何这些。

改为:遵循你可以使用的PayPal Checkout integration guide and make 2 routes on your server, one for 'Create Order' and one for 'Capture Order' (see the optional step 5 in 'Add and modify the code'). Both of these routes should return only JSON data (no HTML or text). There is a Checkout-Java-SDK,或者与你自己的直接HTTPS API调用集成(先获取一个access_token,它可以被缓存但在9小时后过期).

在您服务器上的第二个捕获路由中,当捕获 API 调用成功时,您应该将其生成的付款详细信息存储在您的数据库中(特别是 purchase_units[0].payments.captures[0].id,这是 PayPal 交易 ID)并立即执行任何必要的业务逻辑(例如发送确认电子邮件或预订产品),然后将您的returnJSON转发给前端调用者。

将这 2 条路线与前端批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server