Server IP : 66.29.132.124 / Your IP : 18.118.33.130 Web Server : LiteSpeed System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : wavevlvu ( 1524) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/wavevlvu/book24.ng/vendor/omnipay__/stripe/src/ |
Upload File : |
<?php /** * Stripe base gateway. */ namespace Omnipay\Stripe; use Omnipay\Common\AbstractGateway as AbstractOmnipayGateway; /** * Stripe Gateway. * * Example: * * <code> * // Create a gateway for the Stripe Gateway * // (routes to GatewayFactory::create) * $gateway = Omnipay::create('Stripe'); * * // Initialise the gateway * $gateway->initialize(array( * 'apiKey' => 'MyApiKey', * )); * * // Create a credit card object * // This card can be used for testing. * $card = new CreditCard(array( * 'firstName' => 'Example', * 'lastName' => 'Customer', * 'number' => '4242424242424242', * 'expiryMonth' => '01', * 'expiryYear' => '2020', * 'cvv' => '123', * 'email' => 'customer@example.com', * 'billingAddress1' => '1 Scrubby Creek Road', * 'billingCountry' => 'AU', * 'billingCity' => 'Scrubby Creek', * 'billingPostcode' => '4999', * 'billingState' => 'QLD', * )); * * // Do a purchase transaction on the gateway * $transaction = $gateway->purchase(array( * 'amount' => '10.00', * 'currency' => 'USD', * 'card' => $card, * )); * $response = $transaction->send(); * if ($response->isSuccessful()) { * echo "Purchase transaction was successful!\n"; * $sale_id = $response->getTransactionReference(); * echo "Transaction reference = " . $sale_id . "\n"; * * $balance_transaction_id = $response->getBalanceTransactionReference(); * echo "Balance Transaction reference = " . $balance_transaction_id . "\n"; * } * </code> * * Test modes: * * Stripe accounts have test-mode API keys as well as live-mode * API keys. These keys can be active at the same time. Data * created with test-mode credentials will never hit the credit * card networks and will never cost anyone money. * * Unlike some gateways, there is no test mode endpoint separate * to the live mode endpoint, the Stripe API endpoint is the same * for test and for live. * * Setting the testMode flag on this gateway has no effect. To * use test mode just use your test mode API key. * * You can use any of the cards listed at https://stripe.com/docs/testing * for testing. * * Authentication: * * Authentication is by means of a single secret API key set as * the apiKey parameter when creating the gateway object. * * @see \Omnipay\Common\AbstractGateway * @see \Omnipay\Stripe\Message\AbstractRequest * * @link https://stripe.com/docs/api * * @method \Omnipay\Common\Message\RequestInterface completeAuthorize(array $options = array()) * @method \Omnipay\Common\Message\RequestInterface completePurchase(array $options = array()) */ abstract class AbstractGateway extends AbstractOmnipayGateway { const BILLING_PLAN_FREQUENCY_DAY = 'day'; const BILLING_PLAN_FREQUENCY_WEEK = 'week'; const BILLING_PLAN_FREQUENCY_MONTH = 'month'; const BILLING_PLAN_FREQUENCY_YEAR = 'year'; /** * @inheritdoc */ abstract public function getName(); /** * Get the gateway parameters. * * @return array */ public function getDefaultParameters() { return array( 'apiKey' => '', ); } /** * Get the gateway API Key. * * Authentication is by means of a single secret API key set as * the apiKey parameter when creating the gateway object. * * @return string */ public function getApiKey() { return $this->getParameter('apiKey'); } /** * Set the gateway API Key. * * Authentication is by means of a single secret API key set as * the apiKey parameter when creating the gateway object. * * Stripe accounts have test-mode API keys as well as live-mode * API keys. These keys can be active at the same time. Data * created with test-mode credentials will never hit the credit * card networks and will never cost anyone money. * * Unlike some gateways, there is no test mode endpoint separate * to the live mode endpoint, the Stripe API endpoint is the same * for test and for live. * * Setting the testMode flag on this gateway has no effect. To * use test mode just use your test mode API key. * * @param string $value * * @return Gateway provides a fluent interface. */ public function setApiKey($value) { return $this->setParameter('apiKey', $value); } /** * Authorize Request. * * An Authorize request is similar to a purchase request but the * charge issues an authorization (or pre-authorization), and no money * is transferred. The transaction will need to be captured later * in order to effect payment. Uncaptured charges expire in 7 days. * * Either a customerReference or a card is required. If a customerReference * is passed in then the cardReference must be the reference of a card * assigned to the customer. Otherwise, if you do not pass a customer ID, * the card you provide must either be a token, like the ones returned by * Stripe.js, or a dictionary containing a user's credit card details. * * IN OTHER WORDS: You cannot just pass a card reference into this request, * you must also provide a customer reference if you want to use a stored * card. * * @param array $parameters * * @return \Omnipay\Stripe\Message\AbstractRequest */ abstract public function authorize(array $parameters = array()); /** * Capture Request. * * Use this request to capture and process a previously created authorization. * * @param array $parameters * * @return \Omnipay\Stripe\Message\AbstractRequest */ abstract public function capture(array $parameters = array()); /** * Purchase request. * * To charge a credit card, you create a new charge object. If your API key * is in test mode, the supplied card won't actually be charged, though * everything else will occur as if in live mode. (Stripe assumes that the * charge would have completed successfully). * * Either a customerReference or a card is required. If a customerReference * is passed in then the cardReference must be the reference of a card * assigned to the customer. Otherwise, if you do not pass a customer ID, * the card you provide must either be a token, like the ones returned by * Stripe.js, or a dictionary containing a user's credit card details. * * IN OTHER WORDS: You cannot just pass a card reference into this request, * you must also provide a customer reference if you want to use a stored * card. * * @param array $parameters * * @return \Omnipay\Stripe\Message\AbstractRequest */ abstract public function purchase(array $parameters = array()); /** * Refund Request. * * When you create a new refund, you must specify a * charge to create it on. * * Creating a new refund will refund a charge that has * previously been created but not yet refunded. Funds will * be refunded to the credit or debit card that was originally * charged. The fees you were originally charged are also * refunded. * * @param array $parameters * * @return \Omnipay\Stripe\Message\RefundRequest */ public function refund(array $parameters = []) { return $this->createRequest('\Omnipay\Stripe\Message\RefundRequest', $parameters); } /** * Void a transaction. * * @param array $parameters * * @return \Omnipay\Stripe\Message\VoidRequest */ public function void(array $parameters = []) { return $this->createRequest('\Omnipay\Stripe\Message\VoidRequest', $parameters); } /** * Fetch a transaction. * * @param array $parameters * * @return \Omnipay\Stripe\Message\FetchTransactionRequest */ public function fetchTransaction(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\FetchTransactionRequest', $parameters); } /** * @param array $parameters * @return \Omnipay\Stripe\Message\FetchBalanceTransactionRequest */ public function fetchBalanceTransaction(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\FetchBalanceTransactionRequest', $parameters); } // // Transfers // @link https://stripe.com/docs/api#transfers // /** * Transfer Request. * * To send funds from your Stripe account to a connected account, you create * a new transfer object. Your Stripe balance must be able to cover the * transfer amount, or you'll receive an "Insufficient Funds" error. * * @param array $parameters * * @return \Omnipay\Common\Message\AbstractRequest */ public function transfer(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\Transfers\CreateTransferRequest', $parameters); } /** * @param array $parameters * * @return \Omnipay\Common\Message\AbstractRequest */ public function fetchTransfer(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\Transfers\FetchTransferRequest', $parameters); } /** * @param array $parameters * * @return \Omnipay\Common\Message\AbstractRequest */ public function updateTransfer(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\Transfers\UpdateTransferRequest', $parameters); } /** * List Transfers * * @param array $parameters * * @return \Omnipay\Common\Message\AbstractRequest|\Omnipay\Stripe\Message\Transfers\ListTransfersRequest */ public function listTransfers(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\Transfers\ListTransfersRequest', $parameters); } /** * @param array $parameters * * @return \Omnipay\Common\Message\AbstractRequest */ public function reverseTransfer(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\Transfers\CreateTransferReversalRequest', $parameters); } /** * @param array $parameters * * @return \Omnipay\Common\Message\AbstractRequest */ public function fetchTransferReversal(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\Transfers\FetchTransferReversalRequest', $parameters); } /** * @param array $parameters * * @return \Omnipay\Common\Message\AbstractRequest */ public function updateTransferReversal(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\Transfers\UpdateTransferReversalRequest', $parameters); } /** * @param array $parameters * * @return \Omnipay\Common\Message\AbstractRequest */ public function listTransferReversals(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\Transfers\ListTransferReversalsRequest', $parameters); } // // Cards // @link https://stripe.com/docs/api#cards // /** * Create Card. * * This call can be used to create a new customer or add a card * to an existing customer. If a customerReference is passed in then * a card is added to an existing customer. If there is no * customerReference passed in then a new customer is created. The * response in that case will then contain both a customer token * and a card token, and is essentially the same as CreateCustomerRequest * * @param array $parameters * * @return \Omnipay\Stripe\Message\AbstractRequest */ public function createCard(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\CreateCardRequest', $parameters); } /** * Update Card. * * If you need to update only some card details, like the billing * address or expiration date, you can do so without having to re-enter * the full card details. Stripe also works directly with card networks * so that your customers can continue using your service without * interruption. * * When you update a card, Stripe will automatically validate the card. * * This requires both a customerReference and a cardReference. * * @link https://stripe.com/docs/api#update_card * * @param array $parameters * * @return \Omnipay\Stripe\Message\AbstractRequest */ public function updateCard(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\UpdateCardRequest', $parameters); } /** * Delete a card. * * This is normally used to delete a credit card from an existing * customer. * * You can delete cards from a customer or recipient. If you delete a * card that is currently the default card on a customer or recipient, * the most recently added card will be used as the new default. If you * delete the last remaining card on a customer or recipient, the * default_card attribute on the card's owner will become null. * * Note that for cards belonging to customers, you may want to prevent * customers on paid subscriptions from deleting all cards on file so * that there is at least one default card for the next invoice payment * attempt. * * In deference to the previous incarnation of this gateway, where * all CreateCard requests added a new customer and the customer ID * was used as the card ID, if a cardReference is passed in but no * customerReference then we assume that the cardReference is in fact * a customerReference and delete the customer. This might be * dangerous but it's the best way to ensure backwards compatibility. * * @param array $parameters * * @return \Omnipay\Stripe\Message\AbstractRequest */ public function deleteCard(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\DeleteCardRequest', $parameters); } // // Customers // link: https://stripe.com/docs/api#customers // /** * Create Customer. * * Customer objects allow you to perform recurring charges and * track multiple charges that are associated with the same customer. * The API allows you to create, delete, and update your customers. * You can retrieve individual customers as well as a list of all of * your customers. * * @param array $parameters * * @return \Omnipay\Stripe\Message\CreateCustomerRequest */ public function createCustomer(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\CreateCustomerRequest', $parameters); } /** * Fetch Customer. * * Fetches customer by customer reference. * * @param array $parameters * * @return \Omnipay\Stripe\Message\FetchCustomerRequest */ public function fetchCustomer(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\FetchCustomerRequest', $parameters); } /** * Update Customer. * * This request updates the specified customer by setting the values * of the parameters passed. Any parameters not provided will be left * unchanged. For example, if you pass the card parameter, that becomes * the customer's active card to be used for all charges in the future, * and the customer email address is updated to the email address * on the card. When you update a customer to a new valid card: for * each of the customer's current subscriptions, if the subscription * is in the `past_due` state, then the latest unpaid, unclosed * invoice for the subscription will be retried (note that this retry * will not count as an automatic retry, and will not affect the next * regularly scheduled payment for the invoice). (Note also that no * invoices pertaining to subscriptions in the `unpaid` state, or * invoices pertaining to canceled subscriptions, will be retried as * a result of updating the customer's card.) * * This request accepts mostly the same arguments as the customer * creation call. * * @param array $parameters * * @return \Omnipay\Stripe\Message\CreateCustomerRequest */ public function updateCustomer(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\UpdateCustomerRequest', $parameters); } /** * Delete a customer. * * Permanently deletes a customer. It cannot be undone. Also immediately * cancels any active subscriptions on the customer. * * @param array $parameters * * @return \Omnipay\Stripe\Message\DeleteCustomerRequest */ public function deleteCustomer(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\DeleteCustomerRequest', $parameters); } /** * Create Plan * * @param array $parameters * @return \Omnipay\Stripe\Message\CreatePlanRequest */ public function createPlan(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\CreatePlanRequest', $parameters); } /** * Fetch Plan * * @param array $parameters * @return \Omnipay\Stripe\Message\FetchPlanRequest */ public function fetchPlan(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\FetchPlanRequest', $parameters); } /** * Delete Plan * * @param array $parameters * @return \Omnipay\Stripe\Message\DeletePlanRequest */ public function deletePlan(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\DeletePlanRequest', $parameters); } /** * List Plans * * @param array $parameters * @return \Omnipay\Stripe\Message\ListPlansRequest */ public function listPlans(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\ListPlansRequest', $parameters); } /** * Create Subscription * * @param array $parameters * @return \Omnipay\Stripe\Message\CreateSubscriptionRequest */ public function createSubscription(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\CreateSubscriptionRequest', $parameters); } /** * Fetch Subscription * * @param array $parameters * @return \Omnipay\Stripe\Message\FetchSubscriptionRequest */ public function fetchSubscription(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\FetchSubscriptionRequest', $parameters); } /** * Update Subscription * * @param array $parameters * @return \Omnipay\Stripe\Message\UpdateSubscriptionRequest */ public function updateSubscription(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\UpdateSubscriptionRequest', $parameters); } /** * Cancel Subscription * * @param array $parameters * @return \Omnipay\Stripe\Message\CancelSubscriptionRequest */ public function cancelSubscription(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\CancelSubscriptionRequest', $parameters); } /** * Fetch Event * * @param array $parameters * @return \Omnipay\Stripe\Message\FetchEventRequest */ public function fetchEvent(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\FetchEventRequest', $parameters); } /** * Fetch Invoice Lines * * @param array $parameters * @return \Omnipay\Stripe\Message\FetchInvoiceLinesRequest */ public function fetchInvoiceLines(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\FetchInvoiceLinesRequest', $parameters); } /** * Fetch Invoice * * @param array $parameters * @return \Omnipay\Stripe\Message\FetchInvoiceRequest */ public function fetchInvoice(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\FetchInvoiceRequest', $parameters); } /** * List Invoices * * @param array $parameters * @return \Omnipay\Stripe\Message\ListInvoicesRequest */ public function listInvoices(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\ListInvoicesRequest', $parameters); } /** * Create Invoice Item * * @param array $parameters * @return \Omnipay\Stripe\Message\CreateInvoiceItemRequest */ public function createInvoiceItem(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\CreateInvoiceItemRequest', $parameters); } /** * Fetch Invoice Item * * @param array $parameters * @return \Omnipay\Stripe\Message\FetchInvoiceItemRequest */ public function fetchInvoiceItem(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\FetchInvoiceItemRequest', $parameters); } /** * Delete Invoice Item * * @param array $parameters * @return \Omnipay\Stripe\Message\DeleteInvoiceItemRequest */ public function deleteInvoiceItem(array $parameters = array()) { return $this->createRequest('\Omnipay\Stripe\Message\DeleteInvoiceItemRequest', $parameters); } }