/** * Generating an access token for the user * from the previously stored refresh token * false on no token * * @return String/boolean */ public static function generateAccessTokenFromRefreshToken($refresh_token) { $api_context = PayPalHelper::getApiContext(); try { // getting token info $token_info = new OpenIdTokeninfo(); $token_info = $token_info->createFromRefreshToken(array('refresh_token' => $refresh_token), $api_context); } catch (Exception $ex) { // something went wrong echo '<pre>'; print_r(json_decode($ex->getData())); exit(1); } // everything's fine, returning accessToken return $token_info->getAccessToken(); }
/** * Unify charges from PayPal and Stripe * * @return array of all customers */ public static function getEvents($user) { // return array $allEvents = array(); $stripeEvents = array(); $paypalEvents = array(); // get charges from Stripe if connected if ($user->isStripeConnected()) { $stripeEvents = StripeHelper::getEvents($user); } // get plans from Paypal if connected if ($user->isPayPalConnected()) { // getting api context $apiContext = PayPalHelper::getApiContext(); $paypalPlans = PayPalHelper::getEvents($apiContext); } // merge the 2 arrays $allEvents = array_merge($stripeEvents, $paypalEvents); return $allEvents; }
public function showPaypal() { $api_context = PayPalHelper::getApiContext(); try { $params = array('access_token' => PayPalHelper::generateAccessTokenFromRefreshToken(Auth::user()->paypal_key)); $user = OpenIdUserinfo::getUserinfo($params, $api_context); } catch (Exception $ex) { print "no pp key"; } /* // Create a new instance of Plan object $plan = new Plan(); // # Basic Information // Fill up the basic information that is required for the plan $plan->setName('Welltakeyourmoney') ->setDescription('If you register we can take all your money.') ->setType('fixed'); $paymentDefinition = new PaymentDefinition(); // The possible values for such setters are mentioned in the setter method documentation. // Just open the class file. e.g. lib/PayPal/Api/PaymentDefinition.php and look for setFrequency method. // You should be able to see the acceptable values in the comments. $paymentDefinition->setName('Regular Payments') ->setType('REGULAR') ->setFrequency('Month') ->setFrequencyInterval("5") ->setCycles("12") ->setAmount(new Currency(array('value' => 999, 'currency' => 'USD'))); // ### Create Plan $merchantPreferences = new MerchantPreferences(); $merchantPreferences->setReturnUrl(route('auth.dashboard')) ->setCancelUrl(route('auth.dashboard')) ->setAutoBillAmount("yes") ->setInitialFailAmountAction("CONTINUE") ->setMaxFailAttempts("0") ->setSetupFee(new Currency(array('value' => 9999, 'currency' => 'USD'))); $plan->setPaymentDefinitions(array($paymentDefinition)); $plan->setMerchantPreferences($merchantPreferences); $request = clone $plan; try { $output = $plan->create($api_context); } catch (PayPal\Exception\PPConnectionException $ex) { echo '<pre>';print_r(json_decode($ex->getData())); exit(1); } */ try { $params = array('page_size' => '20'); $planList = Plan::all($params, $api_context); } catch (PayPal\Exception\ConnectionException $ex) { echo '<pre>'; print_r(json_decode($ex->getData())); exit(1); } Log::info($planList); try { $plan = Plan::get("P-0TA38541GG196850X3XYQ2KI", $api_context); } catch (PayPal\Exception\ConnectionException $ex) { echo '<pre>'; print_r(json_decode($ex->getData())); exit(1); } return View::make('dev.paypal', array('output' => $plan)); }