【问题标题】:cannot get full shopping cart detail using GetExpressCheckoutDetails无法使用 GetExpressCheckoutDetails 获取完整的购物车详细信息
【发布时间】:2012-08-30 20:17:31
【问题描述】:

我目前正在使用 paypal 沙箱中的自定义购物车测试在线商店。 我能够正确完成所有交易步骤 setExpressCheckout-> 支付 -> DoExpressCheckout.

在 DoExpressCheckout 步骤中,我认为现在是使用订单更新我的数据库的好时机。为此,我使用 GetExpressCheckoutDetails 函数来检索交易的内容。 可悲的是,此功能返回贝宝必须提供的所有内容,但错过了我购物车的内容。我能得到的只是一件物品的细节。如果交易涉及多个项目,我只会获得第一个项目的详细信息。

这是我的代码(主要取自贝宝示例):

$token =urlencode( $_REQUEST['token']);
$payerId=urlencode(  $_REQUEST['PayerID']);
$getExpressCheckoutDetailsRequest = new GetExpressCheckoutDetailsRequestType($token);

$getExpressCheckoutReq = new GetExpressCheckoutDetailsReq();
$getExpressCheckoutReq->GetExpressCheckoutDetailsRequest = $getExpressCheckoutDetailsRequest;

$paypalService = new PayPalAPIInterfaceServiceService();
$getECResponse = $paypalService->GetExpressCheckoutDetails($getExpressCheckoutReq);

$details = $getECResponse->GetExpressCheckoutDetailsResponseDetails;

// $details->PaymentDetails->PaymentDetailsItem this array should hold all items details
// sadly it always have 1 element instead of the full content of my cart :(

$orderTotal = $details->PaymentDetails->OrderTotal;

$PaymentDetails= new PaymentDetailsType();
$PaymentDetails->OrderTotal = $orderTotal;

 // 
 Some stuff with payment details
 //

$DoECRequestDetails = new DoExpressCheckoutPaymentRequestDetailsType();

$DoECRequest = new DoExpressCheckoutPaymentRequestType();
$DoECRequest->DoExpressCheckoutPaymentRequestDetails = $DoECRequestDetails;


$DoECReq = new DoExpressCheckoutPaymentReq();
$DoECReq->DoExpressCheckoutPaymentRequest = $DoECRequest;

$DoECResponse = $paypalService->DoExpressCheckoutPayment($DoECReq);

我是错过了一步还是调用了错误的函数。因为我试图打印我遇到的每个变量,而我的购物车的全部内容无处可寻。我觉得这很奇怪,因为交易的“orderTotal”与我原来的购物车相匹配。我可以在 SetExpressCheckout 步骤中存储我的原始订单,但由于贝宝已经有了这些值,我发现它是多余的。

作为最后的手段,我确实使用 $paypalService->getLastRequest() 找到了购物车的内容,但严重的是,这是 paypal 返回的原始 XML,api 应该正确解析它:(。

感谢阅读

【问题讨论】:

  • 这样的事情是我很久以前放弃 PayPal 的 SDK 的原因。我开发了自己的PHP class library for PayPal,它比他们的更好用,并且我从使用该类的大量开发人员那里得到了相同的反馈。

标签: paypal paypal-sandbox


【解决方案1】:

我遇到了同样的问题 - 虽然 PayPal 返回的 XML 很好,但他们的 PHP SDK 无法正确解析它,因此您只能在 GetExpressCheckout 中看到最后一项。

我已在 PayPal 的 GitHub 上的问题中发布了针对此问题的修复,请查看:

https://github.com/paypal/SDKs/issues/37

【讨论】:

  • 感谢您的错误票。毕竟我没疯
猜你喜欢
  • 2016-08-15
  • 1970-01-01
  • 2018-09-14
  • 2019-09-23
  • 2020-02-29
  • 2015-04-19
  • 2015-10-01
  • 2014-08-14
  • 1970-01-01
相关资源
最近更新 更多