在 ci-merchant 库 codeigniter 中接收更多响应数据

Posted

技术标签:

【中文标题】在 ci-merchant 库 codeigniter 中接收更多响应数据【英文标题】:receive more response data in ci-merchant library codeigniter 【发布时间】:2013-03-04 07:03:58 【问题描述】:

如何在 ci-merchant codeigniter 库中接收更多响应数据?

我正在使用 Paypal Express 结帐付款方式。

我正在传递以下参数:

$params = 数组( '金额' => 100.00, '货币' => '美元', 'return_url' => 我的返回网址, 'cancel_url' => 我的取消网址);

现在只收到以下回复

Merchant_paypal_api_response 对象 ( [_status:protected] => 完成 [_message:protected] => [_reference:protected] => 1K088384XU0947545 [_data:protected] => [_redirect_url:protected] => [_redirect_method:protected] => 获取 [_redirect_message:protected] => [_redirect_data:protected] => )

我怎样才能获得诸如 paypal id、送货地址、商品名称和 paypal 在 DoExpressCheckoutPayment 响应中返回的其他内容的数据?

【问题讨论】:

【参考方案1】:

实际上,该信息不会在 DECP 响应中返回。它会在 GetExpressCheckoutDetails 中返回。

您的库应提供某种方式来查看 RAW API 请求和响应。如果它没有为您解析出所有详细信息,则需要您自己完成。

【讨论】:

哦,对不起。你说的对。 DECP 没有给出这些数据,我的错。我后来检查了。但我无法在库中的任何地方找到如何检索 GetExpressCheckoutDetails 响应。该库只是进行 SetExpressCheckout 和 DoExpressCheckoutPayment 调用,而不是 GetExpressCheckoutDetails。我找不到它。我想我会继续寻找它,否则我只需要编写我的自定义代码,因为我需要这些细节。我只是想如果它可用,它会更容易一些。 啊,我正确检查了库,它不是调用 GetExpressCheckoutDetails 而是直接调用 DoExpressCheckoutpayment。我想我需要进行自己的自定义调用。感谢您的帮助。【参考方案2】:

这并不完全是您问题的答案,但您应该尝试改用Omnipay。 Omnipay 基本上是 CI-Merchant V2(我是这两个库的作者)。

Omnipay 让您可以直接访问原始响应。例如。你会做这样的事情:

$params = array( 'amount' => 1000, 'currency' => 'USD', 'returnUrl' => 'my return url', 'cancelUrl' => 'my cancel url' );
$response = $gateway->completePurchase($params)->send();

$reference = $response->getTransactionReference(); // paypal transaction id
$data = $response->getData(); // this is the raw response object

【讨论】:

以上是关于在 ci-merchant 库 codeigniter 中接收更多响应数据的主要内容,如果未能解决你的问题,请参考以下文章

CI-Merchant 中的自定义付款值

codeigniter 中是不是有子查询库?或者我如何在codeigniter 3中进行子查询?

如何在 CodeIgniter 中包含外部库?

数据表库在 CodeIgniter 3 中不起作用

CodeIgniter - 如何在项目中加载 stripe-php 库?

在 Codeigniter 3 中扩展会话库