×ðÁú¿­Ê±¹ÙÍøµÇ¼

Laravel¿ª·¢£ºÔõÑùʹÓÃLaravel CashierʵÏÖ¶©ÔÄÖ§¸¶£¿

laravelÊÇÒ»¿îÊ¢ÐеÄphp¿ò¼Ü £¬Äܹ»¼«´óµØ¼ò»¯webÓ¦ÓóÌÐòµÄ¿ª·¢Àú³Ì¡£laravel cashierÊÇÒ»¸ö¸¶¿î´¦Àí¿â £¬ËüÌṩÁË´¦Àí¶©Ôĸ¶¿îµÄ¹¦Ð§¡£Ëü¿ÉÒÔÓëstripe¼¯³É £¬Ê¹Óû§Äܹ»ÔËÐоßÓж©ÔĹ¦Ð§µÄÓ¦ÓóÌÐò¡£±¾ÎĽ«ÏÈÈÝÔõÑùʹÓÃlaravel cashierʵÏÖ¶©Ôĸ¶¿î¡£

½¨ÉèStripeÕÊ»§

ÔÚʹÓÃLaravel CashierÇ° £¬ÐèÒªÏȽ¨ÉèÒ»¸öStripeÕÊ»§¡£StripeÊÇÒ»¸ö´¦ÀíÔÚÏßÖ§¸¶µÄÔÆƽ̨ £¬ËüµÄAPI¿ÉÒÔÇáËɵØÓëLaravel Cashier¼¯³É¡£»á¼ûStripeÍøÕ¾ £¬½¨ÉèÒ»¸öÕÊ»§ £¬È»ºóµÇ¼µ½¿ØÖÆ̨¡£ÔÚ¿ØÖÆ̨ÖÐ £¬¿ÉÒÔÕÒµ½APIÃÜÔ¿ £¬ÕâÊÇÔÚLaravel CashierÖм¯³ÉStripeËùÐèµÄÒªº¦ÐÅÏ¢¡£

×°ÖÃLaravel Cashier

ʹÓÃComposerÔÚLaravelÏîÄ¿ÖÐ×°ÖÃLaravel Cashier¡£ÔÚÖÕ¶ËÖÐ £¬½øÈëLaravelÏîÄ¿µÄ¸ùĿ¼²¢Ö´ÐÐÒÔÏÂÏÂÁ

composer require laravel/cashier

µÇ¼ºó¸´ÖÆ

Ö´ÐÐÉÏÊöÏÂÁîºó £¬Composer½«×Ô¶¯×°ÖÃËùÐèµÄÒÀÀµÏî £¬²¢½«Laravel CashierÌí¼Óµ½ÏîÄ¿ÖС£

ÉèÖÃLaravel Cashier

ÔÚ×°ÖÃLaravel CashierÖ®ºó £¬ÐèÒªÉèÖÃËüÒÔ׼ȷµØʹÓÃStripe API¡£Ê×ÏÈ £¬ÔÚÏîÄ¿Öз­¿ªconfig/services.phpÎļþ £¬È»ºó½«ÒÔÏ´úÂëÌí¼Óµ½ÎļþÖУº

'stripe' => [
    'model' => AppModelsUser::class,
    'key' => env('STRIPE_KEY'),
    'secret' => env('STRIPE_SECRET'),
],

µÇ¼ºó¸´ÖÆ

ÒÔÉÏ´úÂëΪLaravel CashierÌṩÁËÐëÒªµÄÉèÖÃÐÅÏ¢ £¬°üÀ¨Ê¹ÓÃStripeËùÐèµÄAPIÃÜÔ¿ºÍÓû§Ä£×Ó¡£

È»ºó £¬ÔÚ.envÎļþÖÐÉèÖÃStripe APIÃÜÔ¿ºÍStripe Connect¿Í»§¶ËID£º

STRIPE_KEY=your-stripe-key
STRIPE_SECRET=your-stripe-secret
STRIPE_CLIENT_ID=your-stripe-client-id

µÇ¼ºó¸´ÖÆ

½¨É趩ÔÄÍýÏë

ÔÚ¼¯³ÉStripe APIÖ®ºó £¬ÐèÒª½¨ÉèÒ»¸ö¶©ÔÄÍýÏëÒÔÔÚÓ¦ÓóÌÐòÖÐʹÓá£ÔÚStripe¿ØÖÆ̨ÖÐ £¬µ¼º½µ½¡°Products¡±Ñ¡Ï £¬È»ºóµ¥»÷¡°New Product¡±ÒÔ½¨ÉèÒ»¸ö²úÆ·¡£ÔÚ½¨Éè²úÆ·ºó £¬·­¿ª¡°Billing¡±Ñ¡Ï £¬È»ºóµ¥»÷¡°New Plan¡±ÒÔ½¨ÉèÒ»¸öÍýÏ롣ƾ֤ÐèÒªÌîдÍýÏëÃû¡¢¼ÛÇ®ºÍÖÜÆÚ £¬È»ºóµ¥»÷¡°Create Plan¡±¡£

¸üÐÂÓû§Ä£×Ó

Laravel CashierʹÓÃÓû§Ä£×ÓÀ´ÖÎÀí¶©ÔÄ¡£Òò´Ë £¬ÔÚ¼ÌÐø֮ǰ £¬ÐèÒªÔÚÓû§Ä£×ÓÖаüÀ¨Ò»Ð©ÒªÁì¡£·­¿ªÓû§Ä£×Ó²¢½«ÒÔÏ´úÂëÌí¼Óµ½Îļþĩβ£º

use LaravelCashierBillable;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract
{
    use Authenticatable, CanResetPassword, Billable; 
}

µÇ¼ºó¸´ÖÆ

ÒÔÉÏ´úÂëÔÚÓû§Ä£×ÓÖÐʹÓÃÁËLaravel CashierµÄBillable trait¡£ÕâÔÊÐíÔÚÓû§Ä£×ÓÖÐʹÓÃÓëLaravel CashierÏà¹ØµÄÒªÁì¡£

ʵÏÖ¶©ÔĹ¦Ð§

ʹÓÃLaravel CashierʵÏÖ¶©ÔĹ¦Ð§ºÜÊǼòÆÓ¡£ÔÚÊÓͼÖÐ £¬Ö»ÐèÌí¼ÓÒÔÏÂ±íµ¥£º

<form method="POST" action="{{ route('subscribe') }}">
    {{ csrf_field() }}
    <script
        src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="{{ config('services.stripe.key') }}"
        data-amount="999"
        data-name="My Awesome Website"
        data-description="Monthly Subscription"
        data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
        data-locale="auto">
    </script>
</form>

µÇ¼ºó¸´ÖÆ

ÒÔÉÏ´úÂëΪÄúµÄÍøÕ¾Ìí¼ÓÒ»¸öStripe¶©ÔÄ°´Å¥¡£µ±Óû§µ¥»÷¸Ã°´Å¥Ê± £¬½«Ìøתµ½StripeÒ³Ãæ £¬ÒÔÍê³É¶©ÔÄÁ÷³Ì¡£

ÔÚ¿ØÖÆÆ÷ÖÐ £¬Ö»ÐèÌí¼ÓÒÔÏ´úÂë £¬¼´¿É½«¶©ÔÄÐÅÏ¢ÓëÓû§Ä£×Ó¹ØÁªÆðÀ´£º

public function subscribe(Request $request)
{
    $user = $request->user();
    $user->newSubscription('main', 'plan_id')->create($request->stripeToken);
    return redirect()->back();
}

µÇ¼ºó¸´ÖÆ

ÒÔÉÏ´úÂë»á½¨ÉèÒ»¸öеĶ©ÔÄ¡¢½«ÆäÓëÓû§Ä£×Ó¹ØÁª £¬²¢½«¶©Ôĸ¶¿îÐÅÏ¢´æ´¢ÔÚStripeÖС£È»ºó £¬½«Óû§Öض¨Ïò»ØÒ³Ãæ £¬²¢¼ÌÐøÔËÐÐÓ¦ÓóÌÐò¡£

×÷·Ï¶©ÔÄ

ÔÚLaravel CashierÖÐ £¬×÷·Ï¶©ÔĺÜÊǼòÆÓ¡£Ö»ÐèÔÚ¿ØÖÆÆ÷ÖÐÌí¼ÓÒÔÏ´úÂë £¬¼´¿É×÷·ÏÌض¨µÄ¶©ÔÄ£º

public function cancel(Request $request)
{
    $user = $request->user();
    $user->subscription('main')->cancel();
    return redirect()->back();
}

µÇ¼ºó¸´ÖÆ

ÒÔÉÏ´úÂ뽫×÷·ÏÌض¨¶©ÔÄ £¬²¢½«Óû§Öض¨Ïò»ØÒ³Ãæ¡£

½áÂÛ

Laravel CashierÊÇÒ»¸öÇ¿Ê¢µÄ¸¶¿î´¦Àí¿â £¬¿ÉÒÔ¼«´óµØ¼ò»¯¶©Ôĸ¶¿îµÄÁ÷³Ì¡£Í¨¹ýʹÓÃStripe API £¬Laravel CashierÄܹ»ÇáËɵؽ«¶©ÔÄÁ÷³Ì¼¯³Éµ½LaravelÓ¦ÓóÌÐòÖС£Í¨¹ý±¾ÎĵÄÖ¸µ¼ £¬Äú¿ÉÒÔÇáËɵØʹÓÃLaravel CashierʵÏÖ¶©Ôĸ¶¿î¹¦Ð§¡£

ÒÔÉϾÍÊÇLaravel¿ª·¢£ºÔõÑùʹÓÃLaravel CashierʵÏÖ¶©ÔÄÖ§¸¶£¿µÄÏêϸÄÚÈÝ £¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí £¬°æȨÕùÒéÓë±¾Õ¾ÎÞ¹Ø £¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±¹ÙÍøµÇ¼ÂËÓÍ»úÍø¹Ù·½Ì¬¶È £¬Çë¶ÁÕß½ö×ö²Î¿¼¡£±¾ÎĽӴýתÔØ £¬×ªÔØÇë˵Ã÷À´ÓÉ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢ £¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢ £¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼ʵʱÐÞÕý»òɾ³ý¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎå £¬9:30-18:30 £¬½ÚãåÈÕÐÝÏ¢

QR code
ÍøÕ¾µØͼ