我正在尝试通过PHP中的$ _POST获取一些信息,基本上我正在使用它:
$item_name1 = $_POST['item_name1'];
$item_name2 = $_POST['item_name2'];
$item_name3 = $_POST['item_name3'];
$item_name4 = $_POST['item_name4'];
Run Code Online (Sandbox Code Playgroud)
我想用mysql在表字段中插入每个项目名称,所以我试图尝试使用while php循环,所以我没有很多$ item_name变量:
$number_of_items = $_POST['num_cart_items'];
$i=1;
while($i<=$number_of_items)
{
$test = $_POST['item_name'. $i''];
$i++;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码失败了,解释起来相当棘手,但是代码应该找到所有的item_name $ _POST,并将其作为mysql插入的变量.
$ _POST ['num_cart_items']是项目总数.
该代码适用于正在进行购物车的PayPal IPN监听器.
帮助赞赏.
编辑:
我进一步了解了我刚才意识到的文件:
$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}
Run Code Online (Sandbox Code Playgroud)
如何插入$ _POST ['item_name1'],$ _POST ['item_name2']作为mysql插入的变量?
我的Paypal IPN监听器脚本问题已经有几天了.对于那些不熟悉Paypal IPN系统的人来说,Paypal基本上会向您的脚本发送一条有关交易的消息,您可以通过添加几个位来发回该消息.如果Paypal收到正确的答复,它将回复'已验证',如果没有,它会说'无效'.
我最初认为我遇到的问题是'fsockopen'命令:$ fp = fsockopen('ssl://sandbox.paypal.com',443,$ errno,$ errstr,30); 但是,将我的所有代码简化为这一行,它似乎连接好了.问题在于'feof'和'fgets'命令.脚本挂断了,我不知道为什么.我基本上复制了Paypal IPN Listener网站上建议的代码,所以我认为它会起作用!如果你能帮助我理解为什么feof或fgets导致它失速,那么你的帮助将非常感激.
这是完整的脚本:
$postback = 'cmd=_notify-validate'; //doesn't matter what these include for now
$header='abc';
//Script has been activated, create debug
$filename = 'debug/debug1_script.txt';
$filehandle=fopen($filename, 'w');
fwrite($filehandle,$postback);
fclose($filehandle);
$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);//open the connection
//no connection, create debug file
if(!$fp){
$filename = 'debug/debug2_fpfail.txt';
$filehandle=fopen($filename, 'w');
fwrite($filehandle, $errstr.'('.$errno.')');
fclose($filehandle);
die();
}
//post data back
fputs($fp, $header . $postback);
//create debug file
$filename = 'debug/debug3_postback.txt';
$filehandle=fopen($filename, 'w');
fwrite($filehandle, $header.$postback); …
Run Code Online (Sandbox Code Playgroud) 我准备在用户从我的网站购买后设置一个IPN脚本,但我只是想一想,如果他们注册到我网站的电子邮件地址与他们注册到PayPal的电子邮件地址有什么不同呢?
即他们使用forename.surname@domain.com注册我的网站,但他们的PayPal帐户登录名为surname.forename@domain.com.
PayPal IPN将发回surname.forename@domain.com,我无法确定谁刚刚购买了该产品.
我意识到在这个简单的情况下,有可能找到一个类似于数据库中的电子邮件地址,但在现实世界中,人们有疯狂的电子邮件地址,并不总是可能的.
有人解决过这个问题吗?
在Sandbox模式下处理多个项目时,我的IPN侦听器出现了一个非常奇怪的问题.
我已经使用IPN模拟器进行了测试,它工作正常,并且还可以使用购物车添加一个产品并且工作正常,但只要我将两个或更多不同的产品添加到购物车和流程中,IPN侦听器在日志中没有任何错误而失败.
Paypal正在接收和发送所有正确的数据,因为我可以看到测试沙箱帐户中的交易详情以及脚本中的调试数据.
它基于官方的IPN Paypal脚本,但添加了发送的电子邮件通知程序.
<?php
// CONFIG: Enable debug mode. This means we'll log requests into 'ipn.log' in the same directory.
// Especially useful if you encounter network errors or other intermittent problems with IPN (validation).
// Set this to 0 once you go live or don't require logging.
define("DEBUG", 1);
// Set to 0 once you're ready to go live
define("USE_SANDBOX", 1);
define("LOG_FILE", "./ipn.log");
$mail = new PHPMailer;
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'localhost'; …
Run Code Online (Sandbox Code Playgroud) 我们是第 3 方在线市场。我们连接买家和卖家。我们的 IPN notify_url 已经运行多年,没有出现任何问题。我们的一位卖家一直收到买家的 PayPal 付款,但我们没有收到 IPN 回电。
我们要求卖家检查他们的 IPN 历史记录,结果显示我们的 notify_url 回调为 Delivery Status= Disabled。
卖家的PayPal账户没问题我们的notify_url没问题
我意识到在https://www.paypal.com/cgi-bin/webscr?cmd=_profile-ipn-notify-edit有 IPN 设置页面,可以在其中设置硬编码 URL,并且可以将 IPN 消息切换为 ON。 ...但是我们的 notify_url 是通过结帐时的表单数据提供的。默认情况下,此选项设置为 OFF 并且我们仍有数以万计的用户使用默认设置 && POSTed notify_url 接收对我们的 notify_url 的 IPN 回调,因此不会出现问题。
知道为什么它们被禁用以及如何为该卖家重新启用它们。
所以我的脚本(IPN侦听器,API调用等)工作正常,但突然开始抛出一个关于无法验证SSL证书的错误.这是我的错误(显示了PHP CURL)
SSL连接错误
它为什么停止工作?