Php Paypal Payflow pro库

Php Paypal Payflow pro库,php,codeigniter,paypal,payflowpro,Php,Codeigniter,Paypal,Payflowpro,我已经有了一个与Codeigniter应用程序集成的express checkout。现在我想集成无缝paypal,在这里我收集CC信息并将其传递给paypal(通过后端),一旦一切都得到批准,我的应用程序就会向用户显示这一点。所有这一切都不需要去贝宝的网站 我知道Paypal提供了很多示例代码,但他们有很多不同的产品做广告来做同样的事情 PHP中是否有任何包装器库可用于处理所有这些问题 迁移到这样的系统涉及到什么样的设计决策?我需要SSL证书吗?我非常确定,无论您的网站是否接收敏感数据(即信用

我已经有了一个与Codeigniter应用程序集成的express checkout。现在我想集成无缝paypal,在这里我收集CC信息并将其传递给paypal(通过后端),一旦一切都得到批准,我的应用程序就会向用户显示这一点。所有这一切都不需要去贝宝的网站

我知道Paypal提供了很多示例代码,但他们有很多不同的产品做广告来做同样的事情

PHP中是否有任何包装器库可用于处理所有这些问题


迁移到这样的系统涉及到什么样的设计决策?我需要SSL证书吗?

我非常确定,无论您的网站是否接收敏感数据(即信用卡号),您都需要SSL证书。除非它们在其他人的服务器(paypal.com)上,否则你需要处理它们。而且,就像你说的,你不想把它们发送到paypal.com,所以是的,你需要一个


另外,如果您已经集成了express checkout,那么无论如何您都应该使用ssl证书,对吗?

我在CodeIgniter中构建了一个电子商务站点,也进行了无缝Paypal集成

在我打猎的时候,似乎没有任何Suuuper漂亮的面向对象包装器,但我确实注意到了一些不错的尝试

我的解决方案最终有点乏味。我从这里下载了PHP API:

我将
CallerService.php
文件保存为
application/helpers/paypal\u helper.php
,并将其添加到
application/config/autoload.php
以将其拉入应用程序

现在,
CallerService.php
需要
constants.php
,因此您需要复制并粘贴它,或者将
constants.php
文件包含在helpers目录中。我只是复制和粘贴。然后,确保为您的帐户配置所有常量

设置好后,我的代码如下所示:

  $nvp_query_string = '&PAYMENTACTION=Sale'
                . '&AMT='.urlencode($order->total)
                . '&CREDITCARDTYPE='.urlencode($this->input->post('credit_card_type'))
                . '&ACCT='.urlencode($this->input->post('acct'))
                . '&EXPDATE='.urlencode(str_pad($this->input->post('exp_date_month'), 2, '0', STR_PAD_LEFT).'20'.$this->input->post('exp_date_year'))
                . '&CVV2='.urlencode($this->input->post('cvv2_number'))
                . '&FIRSTNAME='.urlencode($first_name)
                . '&LASTNAME='.urlencode($last_name)
                . '&STREET='.urlencode($order->billing_address_1)
                . '&CITY='.urlencode($order->billing_city)
                . '&STATE='.urlencode($order->billing_state)
                . '&ZIP='.urlencode($order->billing_zip)
                . '&COUNTRYCODE=US&CURRENCYCODE=USD';

  $response = hash_call('doDirectPayment', $nvp_query_string);
  if (strpos(strtoupper($response['ACK']), 'SUCCESS') !== false) {
    // Product purchase was successful.
  }
  else {
    // Product purchase was unsuccessful.
    // The Paypal response will be in $response['ACK'].
    // The Paypal error message to show the customer will be in $response['L_LONGMESSAGE0'].
  }
它不太优雅,但确实很好用


另外,您肯定需要SSL证书。对于一个域名,可以花30美元左右的价格购买。刚开始设置它们有点困难,但不能跳过这一步。SSL保护客户计算机和您的服务器之间的传输,因此,当客户的CC信息通过所有服务器和路由器(或通过wifi嗅出)时,无法读取这些信息。因此,只要确保在您用来获取CC信息的表单上,表单提交到https://而不是不安全的http://。

谢谢Alan!这就是我要找的。。从这个想法开始,也许可以创建一个很好的包装库,我们也可以在未来的CI项目中使用它,这对我有很大帮助。如果您有任何其他提示/提示/事情不属于请让我知道。您可以请共享php文件作为zip,上面的链接是无效的。