PHP Paypal Checkout SDK V2——“purchase_units”的可能值是啥?

Posted

技术标签:

【中文标题】PHP Paypal Checkout SDK V2——“purchase_units”的可能值是啥?【英文标题】:PHP Paypal Checkout SDK V2 -- what are the possible values for "purchase_units"?PHP Paypal Checkout SDK V2——“purchase_units”的可能值是什么? 【发布时间】:2022-01-17 00:32:13 【问题描述】:

我们正在构建一个 Paypal php V2 结帐,而 github 上的文档没有显示purchase_units 的可能预期数据。 Paypal 在他们的智慧中也关闭了问题跟踪。

Github:https://github.com/paypal/Checkout-PHP-SDK

Paypal 示例代码:

创建订单

// Construct a request object and set desired parameters
// Here, OrdersCreateRequest() creates a POST request to /v2/checkout/orders
use PayPalCheckoutSdk\Orders\OrdersCreateRequest;
$request = new OrdersCreateRequest();
$request->prefer('return=representation');
$request->body = [
                     "intent" => "CAPTURE",
                     "purchase_units" => [[
                         "reference_id" => "test_ref_id1",
                         "amount" => [
                             "value" => "100.00",
                             "currency_code" => "USD"
                         ]
                     ]],
                     "application_context" => [
                          "cancel_url" => "https://example.com/cancel",
                          "return_url" => "https://example.com/return"
                     ] 
                 ];

这很好,但我们找不到任何文档说明可以或应该在 "purchase_units"(或此数据集中的任何其他字段)数组中给出哪些值。

Paypal 自己的“purchase_units”文档链接到此处: https://developer.paypal.com/docs/api/orders/v2/#definition-model-update_purchase_unit_request

其中规定:

model-update_purchase_unit_request

reference_id 需要字符串

API 调用者为购买单位提供的外部 ID。

最小长度:1。 最大长度:256。

payments 需要对象

采购单位付款的综合摘要。

不完整或引用其他内容(示例代码中没有支付对象)。

我们正在寻找可以在 purchase_units 中提供哪些其他字段,以及 reference_id 是否是 Paypal 参考或我们生成的服务器上的某些内容(例如数据库订单行等)。我会假设reference_id 是我们自己生成的,但由于 Paypal 提供的文档很少,这似乎并没有在任何地方得到真正的澄清。

问题:

    我们可以在"purchase_units" 请求正文中使用哪些字段

    我们如何在此订单创建中添加运费?

另外,哪里有关于这方面的可靠且未归档的 Paypal 文档?

谢谢。

【问题讨论】:

developer.paypal.com/docs/api/orders/v2/…: "reference_id - string - API 调用者为采购单元提供的外部 ID。" API 调用者是你,所以 API 调用者提供外部 ID 表示这是必须指定的内容。 @CBroe 谢谢你能把这个作为答案吗,Paypal 有各种链接,他们没有把我指向这个文档。我怀疑参考 ID 是我们的,但我需要看看我们还可以添加什么到您的链接解析的数组中。 【参考方案1】:

我会假设 reference_id 是我们自己生成的东西

是的,看来是这样。

如果您查看https://developer.paypal.com/docs/api/orders/v2/#definition-purchase_unit,那里会显示,

reference_id - 字符串 - API 调用者为采购单元提供的外部 ID。

因此,作为 API 的调用者,您必须提供此 ID。

【讨论】:

关于参考 id 的查询次要于尝试查找有关可以在该数组中放入哪些数据的规范信息 - 但是您链接到的文档也涵盖了这方面的内容 只有在 purchase_units 数组中有 多个 purchase_unit 对象时,reference_id 才有用。如果只有一个 purchase_unit 对象(大小为 1 的数组),它的 reference_id 将默认为“default”,这就是您所需要的。

以上是关于PHP Paypal Checkout SDK V2——“purchase_units”的可能值是啥?的主要内容,如果未能解决你的问题,请参考以下文章

使用 PayPal PHP SDK 在 PayPal Sandbox 上执行支付时,得到 Http 响应代码 400

PayPal PHP SDK - 不返回 GET 变量“成功”

PayPal Checkout 直接使用 Braintree SDK - Swift

我在使用 paypal checkout-sdk 的沙盒中找不到交易历史记录

Paypal-Merchant-SDK:如何使用 SetExpressCheckout.php 仅获取令牌,然后将其传递给 CreateRecurringPaymentsProfile.php?

PAYPAL php SDK v1.0.1, 无法设置收款人邮箱