两个随机的问题,因为我尝试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_signupsubscr_failedsubscr_eot(结束任期)。要检查这些值,并在您的应用程序处理它们。

1)都能跟得上它们是不相同的。

您应该正常使用$这个 - >输入 - >后();因为它是一个短的手,可以帮助你检查是否该POST数组索引isset。

如果没有什么是后您的页面,你调用$ _ POST [“MYDATA”]你会因为数组索引不存在得到一个错误。要克服这一点,你会做一个 “如果(isset($ _ POST [ 'MYDATA']))” 检查,但CI已经不适合您。

和什么样冠斑说你得到了额外的CI好吃的东西。

2)不要叫贝宝每隔几个小时,像什么亚历克斯院长说。使用IPN,因此PayPal会做一个“推”到你的服务器,每当有事情发生。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top