Example 1: payment with stripe in php
<?php
namespace PhpPot\Service;
require_once 'vendor/stripe/autoload.php';
use \Stripe\Stripe;
use \Stripe\Customer;
use \Stripe\ApiOperations\Create;
use \Stripe\Charge;
class StripePayment
{
private $apiKey;
private $stripeService;
public function __construct()
{
require_once "config.php";
$this->apiKey = STRIPE_SECRET_KEY;
$this->stripeService = new \Stripe\Stripe();
$this->stripeService->setVerifySslCerts(false);
$this->stripeService->setApiKey($this->apiKey);
}
public function addCustomer($customerDetailsAry)
{
$customer = new Customer();
$customerDetails = $customer->create($customerDetailsAry);
return $customerDetails;
}
public function chargeAmountFromCard($cardDetails)
{
$customerDetailsAry = array(
'email' => $cardDetails['email'],
'source' => $cardDetails['token']
);
$customerResult = $this->addCustomer($customerDetailsAry);
$charge = new Charge();
$cardDetailsAry = array(
'customer' => $customerResult->id,
'amount' => $cardDetails['amount']*100 ,
'currency' => $cardDetails['currency_code'],
'description' => $cardDetails['item_name'],
'metadata' => array(
'order_id' => $cardDetails['item_number']
)
);
$result = $charge->create($cardDetailsAry);
return $result->jsonSerialize();
}
}
Example 2: cancel stripe subscription php
$stripe = new \Stripe\StripeClient(
'sk_test_4eC39HqLyjWDarjtT1zdp7dc'
);
$stripe->subscriptions->update(
'sub_36VrPHS2vVxJMq',
['metadata' => ['order_id' => '6735']]
);
{
"id": "sub_36VrPHS2vVxJMq",
"object": "subscription",
"application_fee_percent": null,
"billing_cycle_anchor": 1387222772,
"billing_thresholds": null,
"cancel_at": null,
"cancel_at_period_end": false,
"canceled_at": 1445989053,
"collection_method": "charge_automatically",
"created": 1386790772,
"current_period_end": 1447702772,
"current_period_start": 1444678772,
"customer": "cus_36Akh5CetFGg9T",
"days_until_due": null,
"default_payment_method": null,
"default_source": null,
"default_tax_rates": [],
"discount": null,
"ended_at": 1445989053,
"items": {
"object": "list",
"data": [
{
"id": "si_18SfBn2eZvKYlo2C1fwOImYF",
"object": "subscription_item",
"billing_thresholds": null,
"created": 1386790772,
"metadata": {},
"price": {
"id": "40",
"object": "price",
"active": true,
"billing_scheme": "per_unit",
"created": 1386694689,
"currency": "usd",
"livemode": false,
"lookup_key": null,
"metadata": {
"charset": "utf-8",
"content": "40"
},
"nickname": null,
"product": "prod_BTcfj5EqyqxDVn",
"recurring": {
"aggregate_usage": null,
"interval": "week",
"interval_count": 5,
"usage_type": "licensed"
},
"tiers_mode": null,
"transform_quantity": null,
"type": "recurring",
"unit_amount": 5465,
"unit_amount_decimal": "5465"
},
"quantity": 1,
"subscription": "sub_36VrPHS2vVxJMq",
"tax_rates": []
}
],
"has_more": false,
"url": "/v1/subscription_items?subscription=sub_36VrPHS2vVxJMq"
},
"latest_invoice": null,
"livemode": false,
"metadata": {
"order_id": "6735"
},
"next_pending_invoice_item_invoice": null,
"pause_collection": null,
"pending_invoice_item_interval": null,
"pending_setup_intent": null,
"pending_update": null,
"schedule": null,
"start_date": 1386790772,
"status": "canceled",
"transfer_data": null,
"trial_end": 1387222772,
"trial_start": 1386790772
}