Skip to content

Instantly share code, notes, and snippets.

@82rules
Created November 25, 2015 01:37
Show Gist options
  • Save 82rules/e40fc33d536ce6f41b56 to your computer and use it in GitHub Desktop.
Save 82rules/e40fc33d536ce6f41b56 to your computer and use it in GitHub Desktop.
<?php
namespace App\Handlers;
use App\Http\Requests\Request;
use App\Subscription;
use App\User;
use PagarMe;
use PagarMe_Plan;
use PagarMe_Subscription;
class PagarMeService implements \App\Contracts\Payment{
private $plan_id;
public function __construct(){
Pagarme::setApiKey(env("PAYMENT_PAGARME_AK",false));
$this->plan_id = env("PAYMENT_PAGARME_PLAN",false);
}
public function subscribe(User $user, $card_hash){
$subscription = new PagarMe_Subscription(array(
'plan' => PagarMe_Plan::findById($this->plan_id),
'card_hash' => $card_hash,
'customer' => array(
'email' => $user->email
),
'postback_url' => env("PAYMENT_PAGARME_CALLBACK")
));
$subscription->create();
return $subscription;
}
public function charge(Subscription $subscription){
$subscription = PagarMe_Subscription::findById($subscription->payment_subscription_id);
return $subscription->charge($subscription->amount, 1);
}
public function cancel(Subscription $subscription){
$subscription = PagarMe_Subscription::findById($subscription->payment_subscription_id);
$subscription->cancel();
return $subscription;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment