Skip to content

Instantly share code, notes, and snippets.

@dokker
Forked from anonymous/startRP.php
Last active August 26, 2016 12:33
Show Gist options
  • Save dokker/7989d6ae6412bd75a26a284b43ae7cf5 to your computer and use it in GitHub Desktop.
Save dokker/7989d6ae6412bd75a26a284b43ae7cf5 to your computer and use it in GitHub Desktop.
/**
* Set recurring payment for PMGW request
* @param int $amount donation amount
* @return object PMGW request
*/
private function startRP($amount, $provider = 'PayPal')
{
try {
/**
* Initialize new PMGW request
* @var object
*/
$request = new \BigFish\PaymentGateway\Request\Init();
// Set extra Reference for recurring
$extra = [
'REFERENCE' => [
'BILLINGFREQUENCY' => 1,
'BILLINGPERIOD' => 'Month',
'PROFILESTARTDATE' => gmdate('Y-m-d\TH:i:s\Z', time()), // 2016-08-26T08:29:56Z
'DESC' => 'Recurring donation for Transparency International Hungary',
],
];
$request->setProviderName($provider) // Payment method
->setResponseUrl($this->responseURL) // Response URL
->setOneClickPayment(true) // One click payment for recurring payment
->setAmount($amount) // Amount
->setCurrency("HUF") // Currenvy
->setOrderId($this->orderID) // Order ID
->setLanguage($this->language) // Language
->setExtra($extra);
/**
* Init PMGW transaction
* @var object
*/
$response = \BigFish\PaymentGateway::init($request);
if ($response->ResultCode == "SUCCESSFUL" && $response->TransactionId) {
/**
* Start PMGW transaction
*/
$this->storeTransaction($response->TransactionId, 'recurring', $amount, $provider);
$start_response = \BigFish\PaymentGateway::start(new \BigFish\PaymentGateway\Request\Start($response->TransactionId));
return $start_response;
}
return $response;
} catch (\BigFish\PaymentGateway\Exception $e) {
return $e->getMessage();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment