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

PayPal IPN配置

东方森
2023-03-14

我一直试图为一个网站配置IPN我正试图建立。长话短说,我希望这是对我的数据库条目的控制,其他API在其他地方下订单。

我就是不能让它工作。检查PayPal网站上的IPN历史看起来像是向URL发送ok(我在按钮中指定了,而不是通过PayPal),但绝对没有发生任何事情。从我的脚本,我希望一封电子邮件陈述失败或成功。我还尝试在我的listener.php中设置一个会话变量,我在返回url上检查这个变量(尽管我认为由于IPN和返回页面不一定连续运行,所以没有设置这个变量)...

<?php
// listener.php
$_SESSION['listener'] = 'reached';


// read the post from PayPal
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
   $value = urlencode(stripslashes($value));
   $req .= "&$key=$value";
}

// post back to PayPal
$header = "POST /cgi-bin/webscr HTTP/1.1\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$header .= "Conection: Close";

$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);


if (!$fp) {
   // HTTP ERROR
}
else {
   fputs ($fp, $header . $req);

   $res = stream_get_contents($fp, 1024);
   if (strcmp ($res, "VERIFIED") == 0) {

      $to      = 'myemail@gmail.com';
      $subject = 'IPN VERIFIED';
      $message = $req;
      $headers = 'From:noreply@mydomain.com' . "\r\n";

      mail($to, $subject, $message, $headers); 
   }

   else if (strcmp ($res, "INVALID") == 0) {

      $to      = 'mymail@gmail.com';
      $subject = 'IPN INVALID';
      $message = $req;
      $headers = 'From:noreply@mydomain.com' . "\r\n";

      mail($to, $subject, $message, $headers);

   }

   fclose ($fp);
}
?>

我通过向自己发送电子邮件检查了$res的值,尽管我期望的是“验证”或“无效”,但实际上是这样的:

HTTP/1.1 200 OK
Date: Mon, 11 Aug 2014 09:14:48 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Set-Cookie: c9MWDuvPtT9GIMyPc3jwol1VSlO=3B4lq1GFXyCeV6nNKFDjhiS0CC1T77tsq9IXk6bQiM3OI8T1hI6ih0f7I0FDZQH3e6lqT0RXEH4DqKZUJ9uKzNyIxPANl_6326ntzQsqsVA_2KO7z0wvIKf_T_9BwLagSrsP7r7X5TO3G15FCnUK-PIqOlv16zGTZrmLood4Ezql7U17t2emfzW_CfbgFDDZogUFvIUhjCqzN1pLiejHhgKADJj0jNpmjOeMXdY9XWtytXo9NWUH0OuAlrsoYaU3beBi2MK86WLaZnSNBxbrpVOG9W70_lS8fxJ5QPA1K-jXhBAf3p4eqKXzoKOeEqNOCeKEnemyqxrhkQx8lUBnTWo_BdBfMinfEhqfyisMv13mwLixHKKJ9Kkd3jRQGFwW0139gBT4Hw_hUvbJ2AfLVxKeFrfb64x10B3C8Y8rb8bJ6nrwUm7-DJS-3He; domain=.paypal.com; path=/; Secure; HttpOnly
Set-Cookie: cookie_check=yes; expires=Thu, 08-Aug-2024 09:14:49 GMT; domain=.paypal.com; path=/; Secure; HttpOnly
Set-Cookie: navcmd=_notify-validate; domain=.paypal.com; path=/; Secure; HttpOnly
Set-Cookie: navlns=0.0; expires=Wed, 10-Aug-2016 09:14:49 GMT; domain=.paypal.com; path=/; Secure; HttpOnly
Set-Cookie: Apache=10.72.109.11.1407748488825362; path=/; expires=Wed, 03-Aug-44 09:14:

多谢!李

共有1个答案

万俟飞语
2023-03-14

这个问题现在已经用cURL解决了--实现起来非常简单!https://gist.github.com/codeangry/5957044

 类似资料:
  • exVim 的配色由三部分组成: 你自己的Vim配色, exVim 插件的语法高亮和插件的配色. 你可以按照以下步骤来定制你的配色: 安装你的配色 exVim 提供了三种方法安装你的自定义配色 方法1. 在 ex-colorscheme 中安装(推荐) 首选的方法是在 ex-colorschemes 中安装自己的配色, 这种方法仅仅需要你把自己的配色文件放到 vimfiles/bundle/ex-

  • 目录: 在配置项目yml文件中: 问题: null 客户端YML: 有没有人知道我怎样才能在这两种情况下只带一个配置文件?

  • 丰富的过滤器插件的存在是 logstash 威力如此强大的重要因素。名为过滤器,其实提供的不单单是过滤的功能。在本章我们就会重点介绍几个插件,它们扩展了进入过滤器的原始数据,进行复杂的逻辑处理,甚至可以无中生有的添加新的 logstash 事件到后续的流程中去!

  • Codec 是 logstash 从 1.3.0 版开始新引入的概念(Codec 来自 Coder/decoder 两个单词的首字母缩写)。 在此之前,logstash 只支持纯文本形式输入,然后以过滤器处理它。但现在,我们可以在输入 期处理不同类型的数据,这全是因为有了 codec 设置。 所以,这里需要纠正之前的一个概念。Logstash 不只是一个input | filter | outpu

  • 在 “Hello World” 示例中,我们已经见到并介绍了 logstash 的运行流程和配置的基础语法。从这章开始,我们就要逐一介绍 logstash 流程中比较常用的一些插件,并在介绍中针对其主要适用的场景,推荐的配置,作一些说明。 限于篇幅,接下来内容中,配置示例不一定能贴完整。请记住一个原则:Logstash 配置一定要有一个 input 和一个 output。在演示过程中,如果没有写明

  • 根据文档--不管应用程序名称如何,如果模式与*/development(即localhost:8888/user/development或localhost:8888/demo/development)匹配,配置服务器应该匹配配置文件模式并获取适当的属性。例如:http://localhost:8888/demo/development我应该从ssh://git@xxxgithub.com/dev