PayPal订单摘要使用REST API - 使用cURL或PHP

7
我正在使用PayPal RESTful API。 https://developer.paypal.com/webapps/developer/docs/api/ 我该如何将消费者的订单商品和购买描述传递给PayPal,以便当我的用户被重定向到PayPal进行登录批准订单时,他们的订单摘要将显示在左侧。

.

左侧订单摘要 paypal empty order summary

我尝试传递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);

2
你能否提供一段代码示例,以便我们了解你是如何构建 API 调用的? - Dan Reedy
这是一个简单的例子,我正在使用cURL处理PayPal付款。其他一切都正常,访问令牌、创建/执行付款... 我只是无法使用RESTful API在订单摘要部分显示我的购物车。 - bbullis
3个回答

1

你的代码很好。实际上,这是一个很快就会被修复的错误。关于文档,你能分享一下我们如何让它更好吗?我希望确保你的反馈能够传达给我们的文档团队。


首先,我会确保在您的文档中指定需要在每个cURL调用中传递客户端ID和密钥,而不仅仅是获取访问令牌的调用。 - bbullis
你不需要在每个curl调用中都使用client_id和secret,只有在获取访问令牌时才需要。之后,在每个调用中传递访问令牌即可。你有没有遇到过这种方法无法工作的例子? - Dennis
你能帮我找到文档中我们提到过传回“payer_id”的位置吗?我找到了这个“client_id string The ID of the Payer, passed in the return_url by PayPal. Required”。这是你所指的吗?确实,PayerID是我们在returnURL中发送回去的内容,但在REST调用中,你需要传递“payer_id”。 - Dennis
你们的发布周期是什么时候?我觉得我需要使用PayPal,因为它非常流行,但是我不得不在我的代码中进行许多小的更改才能使事情正常运作,现在我需要确保我所做的不会影响未来的销售。我应该什么时候测试PayPal订单呢?每个星期一晚上?每个星期四?你们有发布周期吗? - bbullis
PayPal的漏洞已经修复了吗?商品描述应该出现在订单摘要中吗? - Rob Bowman
显示剩余4条评论

0
今天我在尝试时遇到了同样的问题。我的解决方法是像下面这样添加项目。
$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页面的订单摘要窗格上。 您也可以在此处检查答案。


1
我如何在计费计划(循环付款)中做同样的事情? - totothegreat

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接