Oba*_*aid 6 php codeigniter paypal payflowpro
我已经在我的Codeigniter应用程序中集成了快速结账.现在我想整合无缝的paypal,我收集CC信息并将其传递给Paypal(通过后端),一旦一切都被批准,我的应用程序向用户显示.所有这一切都没有进入Paypal的网站.
我知道Paypal提供了大量的示例代码,但他们有很多不同的产品,他们做广告来做同样的事情.
PHP中是否有可用于处理所有这些的包装器库?
迁移到这样的系统涉及什么样的设计决策?我需要SSL证书吗?
我在 CodeIgniter 中构建了一个电子商务网站,还进行了无缝 Paypal 集成。
当我进行狩猎时,似乎没有任何非常漂亮的面向对象的包装器,但我确实注意到了一些好的尝试。
我的解决方案最终有点平淡。我从这里下载了 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文件包含在您的 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'].
}
Run Code Online (Sandbox Code Playgroud)
它不太优雅,但效果绝对很好。
另外,您绝对需要 SSL 证书。单个域名的购买价格约为 30 美元。一开始设置它们有点困难,但是您不能跳过这一步。SSL 保护客户的计算机和您的服务器之间的传输,因此他们的 CC 信息在经过所有服务器和路由器(或通过 WiFi 嗅探)时无法被读取。因此,只需确保在用于获取 CC 信息的表单上,表单提交到 https:// 而不是不安全的 http://。