笨和Paypal:它是如何工作
-
22-09-2019 - |
题
两个随机的问题,因为我尝试integerate贝宝IPN到我笨基于Web的应用程序。
1)这两行相同?
$data['pp_info'] = $this->input->post();
$data['pp_info'] = $_POST;
2)用户同意支付每月重复使用费使用贝宝为您服务 - 首付款,你知道,他们已经支付当你从贝宝返回的数据。但你如何跟踪用户是否已支付接下来的几个月?你怎么知道用户还没有从他们的PayPal帐户取消?
感谢所有的任何帮助
解决方案
1)是,但应该使用的第一个,柜面CI使得在将来的方法的变化(安全过滤器等)。
2)的PayPal有你需要每隔几个小时,说:“这个家伙的卡已过期”和“这个其他人定期付款已处理”所说的网址。的URL将在您的PayPal控制面板啄。
其他提示
1)要小心 - 安全要使用CodeIgniter的职位()处理,但要注意的是,虽然CI进行标准化线路返回到\ N,贝宝预计\ r \ n。所以,如果你不小心,PayPal将拒绝多行输入为无效。为了解决这个问题,我贝宝IPN库我这样做:
foreach (array_keys($_POST) as $field)
{
$value = $this->input->post($field);
$ipnData[$field] = str_replace("\n", "\r\n", $value);
}
2)如果你使用的IPN的定期付款,然后PayPal将发送更新通知到用户的订阅级别您的IPN的网址。你想看看txn_type变量 - 有效值包括subscr_signup
,subscr_failed
和subscr_eot
(结束任期)。要检查这些值,并在您的应用程序处理它们。
1)都能跟得上它们是不相同的。
您应该正常使用$这个 - >输入 - >后();因为它是一个短的手,可以帮助你检查是否该POST数组索引isset。
如果没有什么是后您的页面,你调用$ _ POST [“MYDATA”]你会因为数组索引不存在得到一个错误。要克服这一点,你会做一个 “如果(isset($ _ POST [ 'MYDATA']))” 检查,但CI已经不适合您。
和什么样冠斑说你得到了额外的CI好吃的东西。
2)不要叫贝宝每隔几个小时,像什么亚历克斯院长说。使用IPN,因此PayPal会做一个“推”到你的服务器,每当有事情发生。