mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-23 14:00:56 +01:00
cc586b0afa
Summary: various stripe stuff, including - external stripe library - payment form - test controller to play with payment form, sample business logic My main questions / discussion topics are... - is the stripe PHP library too big? (ie should I write something more simple just for phabricator?) -- if its cool, what is the best way to include the client? (ie should I make it a submodule rather than the flat copy here?) - is the JS I wrote (too) ridiculous? -- particularly unhappy with the error message stuff being in JS *but* it seemed the best choice given the most juicy error messages come from the stripe JS such that the overall code complexity is lowest this way. - how should the stripe JS be included? -- flat copy like I did here? -- some sort of external? -- can we just load it off stripe servers at request time? (I like that from the "if stripe is down, stripe is down" perspective) - wasn't sure if the date control was too silly and should just be baked into the form? -- for some reason I feel like its good to be prepared to walk away from Stripe / switch providers here, though I think this is on the wrong side of pragmatic Test Plan: - played around with sample client form Reviewers: epriestley Reviewed By: epriestley CC: aran Differential Revision: https://secure.phabricator.com/D2096
66 lines
No EOL
1.9 KiB
PHP
66 lines
No EOL
1.9 KiB
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.');
|
|
}
|
|
|
|
|
|
abstract class Stripe
|
|
{
|
|
public static $apiKey;
|
|
public static $apiBase = 'https://api.stripe.com/v1';
|
|
public static $verifySslCerts = true;
|
|
const VERSION = '1.6.3';
|
|
|
|
public static function getApiKey()
|
|
{
|
|
return self::$apiKey;
|
|
}
|
|
|
|
public static function setApiKey($apiKey)
|
|
{
|
|
self::$apiKey = $apiKey;
|
|
}
|
|
|
|
public static function getVerifySslCerts() {
|
|
return self::$verifySslCerts;
|
|
}
|
|
|
|
public static function setVerifySslCerts($verify) {
|
|
self::$verifySslCerts = $verify;
|
|
}
|
|
}
|
|
|
|
|
|
// 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');
|
|
|
|
// Plumbing
|
|
require(dirname(__FILE__) . '/Stripe/Object.php');
|
|
require(dirname(__FILE__) . '/Stripe/ApiRequestor.php');
|
|
require(dirname(__FILE__) . '/Stripe/ApiResource.php');
|
|
|
|
// Stripe API Resources
|
|
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/Token.php');
|
|
require(dirname(__FILE__) . '/Stripe/Coupon.php');
|
|
require(dirname(__FILE__) . '/Stripe/Event.php'); |