Paypal Payflow专业版库

时间:2010-06-08 15:22:36

标签: php codeigniter paypal payflowpro

我已经在我的Codeigniter应用程序中集成了快速结账。现在我想整合无缝的paypal,我收集CC信息并将其传递给Paypal(通过后端),一旦一切都被批准,我的应用程序向用户显示。所有这一切都没有进入Pay​​pal的网站。

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

PHP中是否有可用于处理所有这些的包装器库?

迁移到此类系统涉及哪种设计决策?我需要SSL证书吗?

2 个答案:

答案 0 :(得分:3)

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

当我进行狩猎时,似乎没有任何suuuuuper漂亮的面向对象的包装,但我确实注意到了一些不错的尝试。

我的解决方案最终变得有点乏味。我从这里下载了PHP API: https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_PHP_NVP_Samples.zip

我将CallerService.php文件保存为application/helpers/paypal_helper.php并将其添加到application/config/autoload.php以将其拉入应用。

现在,CallerService.php需要constants.php,因此您需要将其复制并粘贴到其中,或将constants.php文件包含在您的帮助程序目录中。我只是复制和粘贴。然后,请务必配置您帐户的所有常量。

设置完成后,我的代码就像这样:

  $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保护客户计算机和服务器之间的传输,因此在通过所有服务器和路由器(或通过wifi嗅探)时,无法读取其CC信息。因此,只需确保在您用来获取CC信息的表单上,表单提交到https://而不是不安全的http://。

答案 1 :(得分:0)

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

另外,如果您已经集成了快速结账,那么您应该使用ssl证书,对吗?