gpt4 book ai didi

php - 如何从 Omnipay/PayPal 调用 GetExpressCheckoutDetails?

转载 作者:太空宇宙 更新时间:2023-11-03 15:55:44 24 4
gpt4 key购买 nike

我需要从 Laravel-4 应用程序接受 PayPal Express 付款,所以我想确定 Omnipay 是否是最佳解决方案。症结在于它似乎没有实现 GetExpressCheckoutDetails,因此无法访问购买者的详细联系信息。我看过这些关于这个问题的讨论:

omnipay paypal express not returning address

receive more response data in ci-merchant library codeigniter

但是,两者都没有给出确定的解决方案。如果我使用 Omnipay,我是否还必须安装 PayPal 的经典 API(在这种情况下,为什么还要使用 Omnipay),或者我是否可以在 Omnipay 中实现 GetExpressCheckoutDetails,如果可以,如何实现?

提前感谢您对此提供的任何帮助。

最佳答案

omnipay\paypal\ProGateway.php 添加新功能

public function fetchExpressCheckoutDetail(array $parameters = array())
{
return $this->createRequest('\Omnipay\PayPal\Message\FetchExpressCheckoutRequest', $parameters);
}

omnipay\paypal\src\Message 添加新文件 FetchExpressCheckoutRequest.php

namespace Omnipay\PayPal\Message;
class FetchExpressCheckoutRequest extends AbstractRequest
{
public function getData()
{
$data = $this->getBaseData('GetExpressCheckoutDetails');

$this->validate('transactionReference');
$data['TOKEN'] = $this->getTransactionReference();
$url = $this->getEndpoint()."?USER={$data['USER']}&PWD={$data['PWD']}&SIGNATURE={$data['SIGNATURE']}&METHOD=GetExpressCheckoutDetails&VERSION={$data['VERSION']}&TOKEN={$data['TOKEN']}";
parse_str (file_get_contents( $url ),$output);
$data = array_merge($data,$output);
return $data;
}
}

用法:

$response = $gateway->completePurchase($params)->send();
$data = $response->getData();
$gateway->fetchExpressCheckoutDetail(array('transactionReference'=>$data['TOKEN']))->getData();

这不会是最好的。但它有效。 :)

关于php - 如何从 Omnipay/PayPal 调用 GetExpressCheckoutDetails?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23993121/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com