【问题标题】:PayPal Order Summary Using REST API - - cURL or PHP使用 REST API 的 PayPal 订单摘要 - - cURL 或 PHP
【发布时间】:2013-03-05 05:04:52
【问题描述】:

我正在使用 PayPal RESTful API。 https://developer.paypal.com/webapps/developer/docs/api/

我如何将我的消费者订单商品和购买描述传递给 PayPal,所以当我的用户被重定向到 PayPal 以通过登录来批准订单时,他们的订单摘要将显示在左侧。 .

.

左侧的订单摘要

我已尝试传入 transactions.item_list.items,但该信息仍未显示在订单摘要中。

任何帮助如何使用 PayPal RESTful API 让订单摘要显示在 paypal 批准页面上?

我对他们的文档并不满意,因为它缺少一些信息,而且还有一些错误,浪费了我大量的调试时间。

//
// prepare paypal data
$payment = array(
            'intent' => 'sale',
            'redirect_urls' => array(
                'return_url' => $url_success,
                'cancel_url' => $url_cancel,
                ),
            'payer' => array(
                'payment_method' => 'paypal'
                )
          );

//
// prepare basic payment details
$payment['transactions'][0] = array(
                            'amount' => array(
                                'total' => '0.03',
                                'currency' => 'USD',
                                'details' => array(
                                    'subtotal' => '0.02',
                                    'tax' => '0.00',
                                    'shipping' => '0.01'
                                    )
                                ),
                            'description' => 'This is the payment transaction description 1.'
                           );

//
// prepare individual items
$payment['transactions'][0]['item_list']['items'][] = array(
                                        'quantity' => '1',
                                        'name' => 'Womens Large',
                                        'price' => '0.01',
                                        'currency' => 'USD',
                                        'sku' => '31Wf'
                                       );
$payment['transactions'][0]['item_list']['items'][] = array(
                                        'quantity' => '1',
                                        'name' => 'Womens Medium',
                                        'price' => '0.01',
                                        'currency' => 'USD',
                                        'sku' => '31WfW'
                                       );

//
//format payment array to pass to cURL
$CURL_POST = json_encode($payment);

【问题讨论】:

  • 您能否发布一个代码示例,以便我们了解您是如何构建 API 调用的?
  • 有一个简单的例子,我正在使用 cURL 来处理 PayPal 付款。其他一切工作正常,访问令牌、创建/执行付款......我只是无法使用 RESTful API 让我的购物车显示在订单摘要部分

标签: php rest curl paypal


【解决方案1】:

你的代码很好。这实际上是一个很快就会修复的错误。关于文档,您能分享一下我们如何使它变得更好吗?我想确保将您的反馈传递给我们的文档团队。

【讨论】:

  • 首先,我会确保您在文档中指定您需要在每次 cURL 调用时传入您的客户端 ID 和密钥。不仅仅是获取访问令牌的调用。
  • 成功的贝宝重定向...您的文档表明您正在传回“payer_id”...您实际上是在传回“PayerID”
  • 另一个问题... TRANSACTION 对象中的 ITEM 对象表示 SKU 是可选字段,但您的 api 确实需要它。此外,成功返回后,ITEM.SKU 将替换我传递的 ITEM.NAME 值。
  • 你不需要在每次 curl 调用中都设置 client_id 和 secret,只有在你获得访问令牌时才需要。之后,您在教学呼叫中传递访问令牌。你有一个例子说明这不适合你吗?
  • 你能帮我找到我们说我们传回“payer_id”的文档中的哪个位置吗?我找到了这个“client_id string 付款人的 ID,由 PayPal 在 return_url 中传递。必填”。这是你指的吗?确实 PayerID 是我们在 returnURL 中发回的,但在 REST 调用中您需要传递“payer_id”
【解决方案2】:

我今天在尝试时遇到了同样的问题。我所做的是添加如下项目。

$item = new Item();
$item->setQuantity($item_quantity);
$item->setName($item_name);
$item->setPrice($item_price);
$item->setCurrency($item_currency);

$item_list = new ItemList();
$item_list->setItems(array($item));

$item_list 是 transaction 的属性,所以你应该在之后添加它。

$transaction = new Transaction();
$transaction->setItemList($item_list);
....

这应该会显示在 PayPal 页面的订单摘要窗格中。 也可以查看答案here

【讨论】:

  • 如何在计费计划中做同样的事情(定期付款)?
【解决方案3】:

尝试使用此处显示的示例:http://htmlpreview.github.io/?https://raw.githubusercontent.com/paypal/PayPal-PHP-SDK/master/sample/doc/payments/CreatePaymentUsingPayPal.html

它是随 PayPal REST API SDK 一起提供的示例。您可以按照自述文件中的说明自行尝试这些示例。

这是运行该示例时的样子:

【讨论】:

    猜你喜欢
    • 2016-01-20
    • 2015-03-21
    • 2012-07-09
    • 2013-12-05
    • 2015-12-09
    • 2016-09-17
    • 2017-08-12
    • 1970-01-01
    • 2014-11-01
    相关资源
    最近更新 更多