64robots/stripe

一个用于将 stripe 集成添加到 64 robots 软件包的包


README

此包使将 stripe 集成添加到 Laravel 应用程序变得更加容易

安装和设置

要获取最新版本,只需使用 Composer 要求此包

$ composer require 64robots/stripe

安装后,此包将自动注册其服务提供者。

要发布配置文件到 config/stripe.php 运行

$ php artisan vendor:publish --provider="R64\Stripe\StripeServiceProvider" --tag="config"

用法

您最可能与之交互的类是 PaymentProcessor 类。处理器类可以注入到其他类或从容器中解析。

use R64\Stripe\PaymentProcessor;
.
.
.

$processor = app(PaymentProcessor::class);

$charge = $processor->createCharge([
    'customer' => 'cus_GVIiC06JWCq1mo',
    'amount' => 100,
    'currency' => 'USD',
    'source' => 'tok_visa'
]);

费用

  • 要向信用卡或借记卡收费,您需要创建一个费用对象。您可以使用 PaymentProcessor 类上的 createCharge 方法创建费用。将返回一个 R64\Stripe\Objects\Charge 对象。
$charge = $processor->createCharge([
    'customer' => 'cus_GVIiC06JWCq1mo',
    'amount' => 100,
    'currency' => 'USD',
    'source' => 'tok_visa'
]);

客户

处理器允许您创建、更新、列出客户和获取单个客户。

  • 要创建客户,请使用处理器上的 createCustomer 方法。将返回一个 R64\Stripe\Objects\Customer 对象。
$customer = $processor->createCustomer([
    'description' => 'Customer for jenny.rosen@example.com',
    'source' => 'tok_visa',
    'email' => jenny.rosen@example.com,
    'metadata' => [
        'first_name' => Rosen,
        'last_name' => Gina,
    ]
]);
  • 要更新客户,请使用处理器上的 updateCustomer 方法。将返回一个 R64\Stripe\Objects\Customer 对象。
$customer = $processor->updateCustomer([
    'id' => 1,
    'email' => jenny.rosen@example.com,
    'description' => Update jenny.rosen@example.com details,
    'source' => 'tok_visa'
]);
  • 要获取单个客户,请使用处理器上的 getCustomer 方法。将返回一个 R64\Stripe\Objects\Customer 对象。
$customer = $processor->getCustomer('cus_GVIiC06JWCq1mo');

您可以使用处理器获取卡、创建和更新卡。

  • 要获取单个卡的详细信息,请使用处理器上的 getCard 方法。将返回一个 R64\Stripe\Objects\Card 对象。
$card = $processor->getCard('cus_GVIiC06JWCq1mo', 'card_1FyI6w2eZvKYlo2COseWzZAo');
  • 要创建卡,请使用处理器上的 createCard 方法。将返回一个 R64\Stripe\Objects\Card 对象。
$card = $processor->createCard([
    'source' => 'tok_visa'
]);
  • 要更新卡,请使用处理器上的 updateCard 方法。将返回一个 R64\Stripe\Objects\Card 对象。
$card = $processor->updateCard(
    'cus_GVIiC06JWCq1mo',
    'card_1FyI6w2eZvKYlo2COseWzZAo',
    [
        'name' => 'Jenny Rosen'
    ]
);

计划和订阅

计划定义了订阅的基础价格、货币和计费周期。

  • 要创建产品,请使用处理器上的 createProduct 方法。将返回一个 R64\Stripe\Objects\Product 对象。
$product = $processor->createProduct([
    'name' => 'Monthly membership base fee',
    'type' => 'service',
]);
  • 要创建计划,请使用处理器上的 createPlan 方法。将返回一个 R64\Stripe\Objects\Plan 对象。
$plan = $processor->createPlan([
    'product' => ['name' => 'Gold special'],
    'nickname' => 'special,
    'interval' => 'month',
    'billing_scheme' => 'per_unit',
    'amount' => 100,
    'currency' => 'usd'
]);
  • 要创建订阅,请使用处理器上的 createSubscription 方法。将返回一个 R64\Stripe\Objects\Subscription 对象。
$subscription = $processor->createSubscription([
    'customer' => 'cus_GVIiC06JWCq1mo',
    'items' => [
        [
            'object' => 'list',
            'plan' => plan_GVIh1z2696UJyR
        ]
    ]
]);
  • 要创建发票,请使用处理器上的 createInvoice 方法。将返回一个 R64\Stripe\Objects\Invoice 对象。
$invoice = $processor->createInvoice([
    'customer' => 'cus_GVIiC06JWCq1mo',
    'subscription' => 'sub_DUVhBH3LKxekhs',
]);
  • 要创建发票项目,请使用处理器上的 createInvoiceItem 方法。将返回一个 R64\Stripe\Objects\InvoiceItem 对象。
$invoiceItem = $processor->createInvoiceItem([
    'customer' => 'cus_GVIiC06JWCq1mo',
    'subscription' => 'sub_DUVhBH3LKxekhs',
    'amount' => 100,
    'currency' => 'usd',
]);
  • 要获取发票详细信息,请使用 getInvoice 方法。将返回一个 R64\Stripe\Objects\Invoice 对象。
$invoice = $this->processor->getInvoice('in_1FJSdj2eZvKYlo2CCyOhyNxj');
  • 要获取订阅详细信息,请使用 getSubscription 方法。将返回一个 R64\Stripe\Objects\Subscription 对象。
$subscription = $this->processor->getSubscription(sub_DUVhBH3LKxekhs);

持卡人

您可以创建、更新和获取持卡人的详细信息。

  • 要创建持卡人,请使用 createCardHolder 方法。将返回一个 R64\Stripe\Objects\CardHolder 对象。
$cardHolder = $processor->createCardHolder([
    'type' => 'individual',
    'name' => 'Jenny Rosen',
    'email' => 'jenny.rosen@example.com',
    'phone_number' => '+18888675309',
    'billing' => [
        'name' => 'Jenny Rosen',
        'address' => [
        'line1' => '1234 Main Street',
        'city' => 'San Francisco',
        'state' => 'CA',
        'country' => 'US',
        'postal_code' => '94111',
        ],
    ],
]);
  • 要更新持卡人的详细信息,请使用 updateCardHolder 方法。将返回一个 R64\Stripe\Objects\CardHolder 对象。
$cardHolder = $processor->updateCardHolder([
    'ich_1Ccy6F2eZvKYlo2ClnIm9bs4',
    [
        'metadata' => [
            'order_id' => '6735'
        ]
    ]
])
  • 要检索持卡人,请使用 getCardHolder 方法。将返回一个 R64\Stripe\Objects\CardHolder 对象。
$cardHolder = $processor->getCardHolder('ich_1Ccy6F2eZvKYlo2ClnIm9bs4');