当前位置: 首页 > 知识库问答 >
问题:

使用cURL和PHP的PayPal IPN无效结果

荣晨朗
2023-03-14

我已经研究了Stackoverflow中的许多问题,如果不是所有问题的话,但我找不到答案。

我有一个问题与贝宝IPN。我正在用sanbox和IPN模拟器测试它。我还使用PHP和cURL来验证来自贝宝的响应。但我得到的只是无效的回应结果。我似乎无法得到证实。

我认为问题是,我没有发回确切的网址到贝宝。您可以看到下面的IPN监听器代码:

<?php

require_once('../includes/main.php');

// Prepare the URL to send via cURL
$req = 'cmd=_notify-validate';
if(function_exists('get_magic_quotes_gpc')) {
    $get_magic_quotes_exists = true;
}
foreach ($_POST as $key => $value) {
    if($get_magic_quotes_exists == true && get_magic_quotes_gpc() == 1) {
        $value = urlencode(stripslashes($value));
    } else {
        $value = urlencode($value);
    }
    $req .= "&$key=$value";
}

// Initial cURL
$ch = curl_init();

// Set opt
curl_setopt($ch,CURLOPT_URL,"https://www.sandbox.paypal.com/cgi-bin/webscr");

//curl_setopt($ch,CURLOPT_URL,"https://www.paypal.com");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);

// Return result
$result = curl_exec($ch);

// Close cURL connection
curl_close($ch);

// If condition
if(strpos($result, "VERIFIED") != false){
    mysql_query("INSERT INTO paypal_ipn (ipn_message, verification) VALUES ('{$request}', '{$result}')");
}else{
    mysql_query("INSERT INTO paypal_ipn (ipn_message, verification) VALUES ('{$request}', '{$result}')");
}?> 

共有1个答案

汪博达
2023-03-14

我终于想通了。问题无效是因为发送的时间等于GMT+3,这使得它无效。在我把它更改为GMT而没有+3后,它工作了,返回验证。

但问题是,为什么当我使用GMT+3时,它返回无效,我如何使它与GMT+3一起工作?

 类似资料:
  • 当我从我之前的文章“使用Oracle将三个表与PIVOT结合起来”中的代码,并在SQL开发人员中点击“运行脚本”时,一切都非常完美,但是当我试图从PHP文件中执行相同的脚本时,我得到了“ORA-00900无效的SQL语句”-错误。SQL开发人员“运行语句”也无法执行代码。我的代码似乎不在“SQL语句”语法中? 用于将sql脚本放入变量的PHP代码: 然后我将$sql变量传递给函数以获得结果: 那么

  • 问题内容: 我发现此功能确实出色(IMHO) 我唯一的问题是它不适用于https://。Anny的想法,我需要做些什么才能使https工作?谢谢! 问题答案: 快速修复,在您的选项中添加: 现在,您不知道您实际上要连接到哪个主机,因为cURL不会以任何方式验证证书。 或只是将其添加到当前函数中:

  • 问题内容: 我对PHP Curl和cookie身份验证有一些问题。 我有一个 Connector.php 文件,该文件对另一台服务器上的用户进行身份验证并返回当前用户的cookie。 问题是我想用curl认证成千上万的用户,但是一次只能认证一个用户并保存COOKIES。 Connector.php的代码是这样的: 这是认证过程: 用户输入用户名和密码: 根据先前使用登录服务保存的cookie返回有

  • 本文向大家介绍PHP curl使用实例,包括了PHP curl使用实例的使用技巧和注意事项,需要的朋友参考一下 概述 本博客的前面两篇文章:curl和libcurl简介以及PHP中使用curl对PHP中curl的使用做了简单介绍,但是PHP中curl的使用却并不简单,尤其是curl的各种配置项,本篇文章会讲解几个PHP的实例,以便大家更好的理解curl。 实例:抓取页面 使用curl抓取页面相对来

  • 问题内容: 我正在提取无效的JSON JSON提要。它完全缺少引号。我尝试了一些操作,例如和,以使该字符串看起来更像有效的JSON,但是在其中包含关联JSON字符串的情况下,通常会弄糟。 这是一个例子: 是否有任何php的JSON解析器可以处理这样的无效JSON? 编辑:我试图在此字符串上使用。它什么也不返回。 问题答案: 所有引号应为双引号而不是单引号。 所有键都应加引号。 整个元素应该是一个对

  • 问题内容: 我想知道如何使用cURL或PHP中的任何其他文件上传文件。我在Google中搜索了很多次,但没有结果。 换句话说,用户看到表单上的文件上传按钮,该表单被发布到我的php脚本中,然后我的php脚本需要将其重新发布到另一个脚本(例如,在另一个服务器上)。 我有此代码来接收文件并上传 代码: 我希望代码将文件发送到接收者文件。 问题答案: 采用: