我正在设置Magento安装(使用bitnami图像1.7.0),无法让PayPal支付工作。我已经设置了这段视频中所示的所有内容,但是在尝试完成订单之后,在payment_payflow_advanced.log中我看到了以下内容:
结果=>阵列 ( response_code => -1 response_reason_code => 0 response_reason_text =>无法读取响应,或响应为空 )
我浏览过论坛并尝试过这样的方法:
1) DNS问题--我尝试过wget https://payflowlink.paypal.com/ --它可以工作。
2) Curl启用了SSL
我还能查到什么?
Update:我向zend添加了url,这会抛出登录日志的消息,因此它尝试访问https://payflowpro.paypal.com:443/transaction。如果我试图在浏览器中打开这个链接,就会得到324net::ERR_EMPTY_RESPONSE。
更新2:我也尝试过PayFlowLink方法,同样的问题。
更新3:我注意到了一些奇怪的事情。
在……里面
\magento\htdocs\app\code\core\Mage\Paypal\Model\Payflowlink.php有一条线:
const TRANSACTION_PAYFLOW_URL = 'https://payflowlink.paypal.com/';我认为这应该告诉magento在哪里发送数据,以便安全地生成id。问题是,这个常量在magento代码中没有使用,这个链接也没有在其他地方使用,这就是为什么我认为它将请求记录到payflowpro,而不是payflowpro链接,我想知道这段代码是否有人测试过。
更新4:
在1.7.0.1版中,与更新3中提到的问题相同
我想知道是否有人成功地在马根托建立了PayPal支付高级,如果是,哪个版本的Magento在那里?





更新6:我做了如下的卷曲测试:
<?php
$ch = curl_init("https://www.google.com/");
$fp = fopen("example_homepage.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>它按预期编写文件,在https上没有问题。
更新7
Request log:
[request] => Array
(
[user] => ****
[vendor] => me****
[partner] => PayPal
[pwd] => ****
[verbosity] => HIGH
[tender] => C
[cancelurl] => http://mydomain.com/index.php/paypal/payflow/cancelPayment
[errorurl] => http://mydomain.com/index.php/paypal/payflow/returnUrl
[silentpost] => TRUE
[silentposturl] => http://mydomain.com/index.php/paypal/payflow/silentPost
[returnurl] => http://mydomain.com/index.php/paypal/payflow/returnUrl
[template] => minLayout
[disablereceipt] => TRUE
[cscrequired] => TRUE
[cscedit] => TRUE
[emailcustomer] => FALSE
[urlmethod] => GET
[createsecuretoken] => Y
[securetokenid] => 7ebabf98872aee2ff84be75d1483e453
[trxtype] => S
[amt] => 150.00
[currency] => USD
[invnum] => 100000006
[custref] => 100000006
[ponum] => 39
[firstname] => Gxxx
[lastname] => Bxxx
[street] => Vxxx
[city] => Kxxx
[state] => Lxxx
[zip] => 4xxx
[country] => LT
[email] => gxxx@xxx.com
[shiptofirstname] => Gxxx
[shiptolastname] => Bxxx
[shiptostreet] => Vxxx
[shiptocity] => Kxxx
[shiptostate] => Lxxx
[shiptozip] => 4xxx
[shiptocountry] => LT
[user1] => 1
[user2] => 48a9896a17493d6b97de838c4b40026d
)
[result] => Array
(
[response_code] => -1
[response_reason_code] => 0
[response_reason_text] => Unable to read response, or response is empty. Uri:https://payflowpro.paypal.com:443/transaction
)
[__pid] => 31628只要没有任何建议,那工作,可能有人可以建议最简单的方式来确保,与贝宝支付预付款帐户是一切都好吗?
发布于 2012-06-29 15:33:13
Magento以设置变量/常量而不使用它们而闻名。
这就是说,查看app/code/core/Mage/Paypal/Model/Payflowpro.php查找_postRequest()方法,我将在$client和$result对象周围添加一些调试。
同样在下面的catch (Exception $e)中,您将注意到原始错误消息的来源,因为这是您的异常在Varien_Http_Client中发生的情况:
try {
/**
* we are sending request to payflow pro without url encoding
* so we set up _urlEncodeBody flag to false
*/
$response = $client->setUrlEncodeBody(false)->request();
}
catch (Exception $e) {
$result->setResponseCode(-1)
->setResponseReasonCode($e->getCode())
->setResponseReasonText($e->getMessage());
$debugData['result'] = $result->getData();
$this->_debug($debugData);
throw $e;
}使用上面的代码,您的问题很可能来自Curl本身,或者是magento或服务器端的错误配置。我将验证Curl是否已安装并通过Magento以外的方法正常工作,例如:
在try块中的$response之前,我将在$client对象上添加一个日志(mage::log)或转储(zend_debug::dump),以获得关于请求是如何形成和发送的更多详细信息。
您应该能够通过转储或日志记录在/lib/Varien/Http/Client.php和Adapter/Curl.php中找到更多的信息。
请随意发布上述调试的结果。
希望这能有所帮助!
发布于 2012-07-02 09:06:19
所以,我从这里取了https://www.x.com/node/2749的Payflow样本,放在magento目录中。
我运行了它,并注意到,虽然它在获得安全令牌时没有失败,但执行请求需要整整1分钟,这带来了想法,也带来了超时,所以我在我的pc上尝试过,这只花了不到1秒钟就生成了安全id。所以问题是,curl.exec超时,问题是为什么?
我已经启动了putty,并在上面的链接中尝试了相同的请求,它给了我
curl:(35)与payflowpro.paypal.com:443相关的未知SSL协议错误
现在是什么东西了!很多年前,我也有过类似的问题,但这太痛苦了,以至于我仍然记得解决方案的帮助--所以我尝试过通过另一个版本的SSL,第3版通过了!
我所要做的就是将SSL版本选项添加到Varien客户端和bum -一切都正常。
https://stackoverflow.com/questions/11208966
复制相似问题