CodeIgniter - 如何在项目中加载stripe-php库?

gee*_*eek 4 php codeigniter payment-gateway stripe-payments

我正在使用Stripe的php库.DL链接:https: //code.stripe.com/stripe-php-latest.zip

我已经尝试过codeigniters加载库方法,但仍然是服务器错误.我尝试将库放入application/libraries,然后加载我的库$this->load->libraries('Stripe.php');

我已将所有大写字母改为小写字母,但仍然出现错误.

以下是Stripe.php的代码

<?php

// Tested on PHP 5.2, 5.3

// This snippet (and some of the curl code) due to the Facebook SDK.
if (!function_exists('curl_init')) {
  throw new Exception('Stripe needs the CURL PHP extension.');
}
if (!function_exists('json_decode')) {
  throw new Exception('Stripe needs the JSON PHP extension.');
}
if (!function_exists('mb_detect_encoding')) {
  throw new Exception('Stripe needs the Multibyte String PHP extension.');
}

// Stripe singleton
require(dirname(__FILE__) . '/Stripe/Stripe.php');

// Utilities
require(dirname(__FILE__) . '/Stripe/Util.php');
require(dirname(__FILE__) . '/Stripe/Util/Set.php');

// Errors
require(dirname(__FILE__) . '/Stripe/Error.php');
require(dirname(__FILE__) . '/Stripe/ApiError.php');
require(dirname(__FILE__) . '/Stripe/ApiConnectionError.php');
require(dirname(__FILE__) . '/Stripe/AuthenticationError.php');
require(dirname(__FILE__) . '/Stripe/CardError.php');
require(dirname(__FILE__) . '/Stripe/InvalidRequestError.php');
require(dirname(__FILE__) . '/Stripe/RateLimitError.php');

// Plumbing
require(dirname(__FILE__) . '/Stripe/Object.php');
require(dirname(__FILE__) . '/Stripe/ApiRequestor.php');
require(dirname(__FILE__) . '/Stripe/ApiResource.php');
require(dirname(__FILE__) . '/Stripe/SingletonApiResource.php');
require(dirname(__FILE__) . '/Stripe/AttachedObject.php');
require(dirname(__FILE__) . '/Stripe/List.php');

// Stripe API Resources
require(dirname(__FILE__) . '/Stripe/Account.php');
require(dirname(__FILE__) . '/Stripe/Card.php');
require(dirname(__FILE__) . '/Stripe/Balance.php');
require(dirname(__FILE__) . '/Stripe/BalanceTransaction.php');
require(dirname(__FILE__) . '/Stripe/Charge.php');
require(dirname(__FILE__) . '/Stripe/Customer.php');
require(dirname(__FILE__) . '/Stripe/Invoice.php');
require(dirname(__FILE__) . '/Stripe/InvoiceItem.php');
require(dirname(__FILE__) . '/Stripe/Plan.php');
require(dirname(__FILE__) . '/Stripe/Subscription.php');
require(dirname(__FILE__) . '/Stripe/Token.php');
require(dirname(__FILE__) . '/Stripe/Coupon.php');
require(dirname(__FILE__) . '/Stripe/Event.php');
require(dirname(__FILE__) . '/Stripe/Transfer.php');
require(dirname(__FILE__) . '/Stripe/Recipient.php');
require(dirname(__FILE__) . '/Stripe/ApplicationFee.php');
Run Code Online (Sandbox Code Playgroud)

现在如何在codeigniter中添加此文件.此文件中包含的所有其他文件都位于子目录Stripe中

jle*_*eft 6

加载一个库,第一个参数是类的名字,而不是文件名.如果文件包含一个名为的类Stripe,那么您可以通过调用以下方法加载它:

$this->load->libraries('stripe');
Run Code Online (Sandbox Code Playgroud)

请注意,如果文件位于子目录中,则需要包含相对于libraries目录的路径.

如果文件没有类,而是一组函数,那么它被认为是一个帮助者,而不是一个库.您可以通过调用此函数来加载帮助程序,将不带扩展名的文件名作为第一个参数传递:

$this->load->helper('file_name')
Run Code Online (Sandbox Code Playgroud)

查看要使用的库,您可能需要将其调整为CodeIgniter库的形式.

如果你不想让它适应CodeIgniter库的功能,那就没有什么能阻止你使用PHP,而不是把它作为一个库加载:

require_once(APPPATH.'libraries/Stripe/lib/Stripe.php'); // Your path may be different
Run Code Online (Sandbox Code Playgroud)