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

Paypal IPN正在获得空白确认(应为“已验证”或“无效”)

那宏大
2023-03-14

我只是在测试贝宝IPN。我已经用沙盒装好了。我给它发了假的IPN请求,它却收到了IPN。然后,我让它返回信息进行验证,我将响应写到一个文本文件中,这样我就可以自己检查它了。IPN很好地启动,并且响应被写入文本文件。

$ipn_post_data = $_POST;

$response = "";

    // Choose url
    $url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';

    // Set up request to PayPal
    $request = curl_init();
    curl_setopt_array($request, array
    (
        CURLOPT_URL => $url,
        CURLOPT_POST => TRUE,
        CURLOPT_POSTFIELDS => http_build_query(array('cmd' => '_notify-validate') + $ipn_post_data),
        CURLOPT_RETURNTRANSFER => TRUE,
        CURLOPT_HEADER => FALSE,
        CURLOPT_SSL_VERIFYPEER => TRUE,
        CURLOPT_CAINFO => 'cacert.pem',
    ));

    // Execute request and get response and status code
    $response = curl_exec($request);
    $status   = curl_getinfo($request, CURLINFO_HTTP_CODE);

    // Close connection
    curl_close($request);


$fh = fopen( "ipntest.txt", 'a+' );
$date = date( "Y-M-j H:i" );
fwrite( $fh, $date . " Response: " . $response . "\n" );
fclose( $fh );

if($status == 200 && $response == 'VERIFIED')
{
    // All good! Proceed...
}
else
{
    // Not good. Ignore, or log for investigation...
}
2012-Nov-26 23:24 Response: 
2012-Nov-26 23:25 Response: 

我以前一直在用这个代码,我已经试着让它工作了一个星期,所以它不只是一个暂时的失败或什么的...

干杯伙计们。

共有1个答案

赵选
2023-03-14

我一直使用下面的方法,而且效果很好...

// Validate with curl
$curl_result=$curl_err='';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://'.$ppHost.'/cgi-bin/webscr');
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded", "Content-Length: " . strlen($req)));
curl_setopt($ch, CURLOPT_HEADER , 1);   
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $ssl);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);

$curl_result = curl_exec($ch);
$curl_err = curl_error($ch);
curl_close($ch);

//are we verified? If so, let's process the IPN
if (strpos($curl_result, "VERIFIED")!==false) 
    $valid = true;
else
    $valid = false;

您只需要根据事务来自沙箱还是活动服务器,确保本示例中的$pphost是正确的,然后相应地填写$req和$ssl。

 类似资料:
  • A ) 切换奖杯显示 轻触(PlayStation®Network),即可切换为PlayStation®Network服务器内保存的奖杯信息显示。 B ) 奖杯的获得情况 轻触游戏标题,即可确认选择中游戏的已获得奖杯的详情。 C ) 已获得的奖杯总数 轻触 (选项)>[排列],可依照达成率或等级等顺序排列奖杯。 PS Vita主机内保存的奖杯信息,无法复制或备份至电脑或PS Vita专用存储卡内。

  • 所以我使用了AWS JS SDK的官方repo上的这段代码。它用于对用户进行身份验证。 它返回的是一个空白响应。 因此,对于authenticationData,我使用电话号码作为用户名(电话号码设置为别名)和密码。我也直接尝试了用户名。UserPoolId和ClientId是正确的,因为我在注册和确认电话号码时使用了相同的值。在userData中,我使用正确的myusername设置用户名。 关

  • 我传入以下内容(摘要/哈希是SHA1): 到此功能: 但我无法在OpenSSL中验证签名(verify_success为0),即使完全相同的数据在C#中验证成功。 关于我为什么或做错了什么的任何想法? C#中的公钥是: 我假设4543533120000000是。NET特定的东西,所以我只是把04前置到它的其余部分。 这是用于验证签名的C#代码,它成功地做到了(dataBytes的SHA1在两个程序

  • 我试图建立一个注册表格使用角6反应形式。 } 我如何进行验证,以便允许: < li >数字 < li >大写字母 < li >小写字母 < li >任何特殊字符 < li >最少8个字符 我使用的这个正则表达式工作正常,但是我不能使用任何其他特殊字符,例如我尝试了< code>Demoo123#但是没有工作。然而< code>Demoo123@运行良好。我假设我的正则表达式中的特殊字符部分有问题。

  • 我用的是Spring boot Spring Security和Thymeleaf。目前,身份验证和授权工作良好时访问页面,但我不能使thymeleaf授权工作。流程非常简单:我尝试访问admin.html页面,对于该页面,我需要一个“admin”角色。Spring Security正确地截取了请求,首先将我转发到登录页面,当以管理员身份登录时,它允许我继续。 现在我想根据角色“隐藏”管理页面上的

  • 我已经使用postman用twitter api测试了请求https://api.twitter.com/1.1/statuses/user_timeline.json但它给了我 我的标题是- 授权:OAuth OAuth\u consumer\u key=“MLcGSZNPmn2un5DKbtgnYi8JY”,OAuth\u token=“751004957898342400-yyplg5day