PHP code example of saleemepoch / paypal
1. Go to this page and download the library: Download saleemepoch/paypal library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
saleemepoch / paypal example snippets
php artisan vendor:publish
$data = [];
$data['items'] = [
[
'name' => 'Product 1',
'price' => 9.99
],
[
'name' => 'Product 2',
'price' => 4.99
]
];
$data['invoice_id'] = 1;
$data['invoice_description'] = "Order #$data[invoice_id] Invoice";
$data['return_url'] = url('/payment/success');
$data['cancel_url'] = url('/cart');
$total = 0;
foreach($data['items'] as $item) {
$total += $item['price'];
}
$data['total'] = $total;
$response = PayPal::getProvider()->setExpressCheckout($data);
// Use the following line when creating recurring payment profiles (subscriptions)
$response = PayPal::getProvider()->setExpressCheckout($data, true);
// This will redirect user to PayPal
return redirect($response['paypal_link']);
$response = PayPal::getProvider()->getExpressCheckoutDetails($token);
// The $token is the value returned from SetExpressCheckout API call
$startdate = Carbon::now()->toAtomString();
$profile_desc = !empty($data['subscription_desc']) ?
$data['subscription_desc'] : $data['invoice_description'];
$data = [
'PROFILESTARTDATE' => $startdate,
'DESC' => $profile_desc,
'BILLINGPERIOD' => 'Month', // Can be 'Day', 'Week', 'SemiMonth', 'Month', 'Year'
'BILLINGFREQUENCY' => 12, // set 12 for monthly, 52 for yearly
'AMT' => 10, // Billing amount for each billing cycle
'CURRENCYCODE' => 'USD', // Currency code
'TRIALBILLINGPERIOD' => 'Day', // (Optional) Can be 'Day', 'Week', 'SemiMonth', 'Month', 'Year'
'TRIALBILLINGFREQUENCY' => 10, // (Optional) set 12 for monthly, 52 for yearly
'TRIALTOTALBILLINGCYCLES' => 1, // (Optional) Change it accordingly
'TRIALAMT' => 0, // (Optional) Change it accordingly
];
$response = PayPal::getProvider()->createRecurringPaymentsProfile($data, $token);
$response = PayPal::getProvider()->updateRecurringPaymentsProfile($data, $profileid);
// Cancel recurring payment profile
$response = PayPal::getProvider()->cancelRecurringPaymentsProfile($profileid);
// Suspend recurring payment profile
$response = PayPal::getProvider()->suspendRecurringPaymentsProfile($profileid);
// Reactivate recurring payment profile
$response = PayPal::getProvider()->reactivateRecurringPaymentsProfile($profileid);
/**
* Retrieve IPN Response From PayPal
*
* @param \Illuminate\Http\Request $request
*/
public function postNotify(Request $request)
{
$post = [];
$request_params = $request->all();
foreach ($request_params as $key=>$value)
$post[$key] = $value;
$post['cmd'] = '_notify-validate';
$response = $this->verifyIPN($post);
session([
'ipn' => $response
]);
}