<?php
namespace PayPal\Api;
use PayPal\Common\PayPalModel;
use PayPal\Validation\UrlValidator;
/**
* Class MerchantPreferences
*
* Resource representing merchant preferences like max failed attempts, set up fee and others for a plan.
*
* @package PayPal\Api
*
* @property string id
* @property \PayPal\Api\Currency setup_fee
* @property string cancel_url
* @property string return_url
* @property string notify_url
* @property string max_fail_attempts
* @property string auto_bill_amount
* @property string initial_fail_amount_action
* @property string accepted_payment_type
* @property string char_set
*/
class MerchantPreferences extends PayPalModel
{
/**
* Identifier of the merchant_preferences. 128 characters max.
*
* @param string $id
*
* @return $this
*/
public function setId($id)
{
$this->id = $id;
return $this;
}
/**
* Identifier of the merchant_preferences. 128 characters max.
*
* @return string
*/
public function getId()
{
return $this->id;
}
/**
* Setup fee amount. Default is 0.
*
* @param \PayPal\Api\Currency $setup_fee
*
* @return $this
*/
public function setSetupFee($setup_fee)
{
$this->setup_fee = $setup_fee;
return $this;
}
/**
* Setup fee amount. Default is 0.
*
* @return \PayPal\Api\Currency
*/
public function getSetupFee()
{
return $this->setup_fee;
}
/**
* Redirect URL on cancellation of agreement request. 1000 characters max.
*
* @param string $cancel_url
* @throws \InvalidArgumentException
* @return $this
*/
public function setCancelUrl($cancel_url)
{
UrlValidator::validate($cancel_url, "CancelUrl");
$this->cancel_url = $cancel_url;
return $this;
}
/**
* Redirect URL on cancellation of agreement request. 1000 characters max.
*
* @return string
*/
public function getCancelUrl()
{
return $this->cancel_url;
}
/**
* Redirect URL on creation of agreement request. 1000 characters max.
*
* @param string $return_url
* @throws \InvalidArgumentException
* @return $this
*/
public function setReturnUrl($return_url)
{
UrlValidator::validate($return_url, "ReturnUrl");
$this->return_url = $return_url;
return $this;
}
/**
* Redirect URL on creation of agreement request. 1000 characters max.
*
* @return string
*/
public function getReturnUrl()
{
return $this->return_url;
}
/**
* Notify URL on agreement creation. 1000 characters max.
*
* @param string $notify_url
* @throws \InvalidArgumentException
* @return $this
*/
public function setNotifyUrl($notify_url)
{
UrlValidator::validate($notify_url, "NotifyUrl");
$this->notify_url = $notify_url;
return $this;
}
/**
* Notify URL on agreement creation. 1000 characters max.
*
* @return string
*/
public function getNotifyUrl()
{
return $this->notify_url;
}
/**
* Total number of failed attempts allowed. Default is 0, representing an infinite number of failed attempts.
*
* @param string $max_fail_attempts
*
* @return $this
*/
public function setMaxFailAttempts($max_fail_attempts)
{
$this->max_fail_attempts = $max_fail_attempts;
return $this;
}
/**
* Total number of failed attempts allowed. Default is 0, representing an infinite number of failed attempts.
*
* @return string
*/
public function getMaxFailAttempts()
{
return $this->max_fail_attempts;
}
/**
* Allow auto billing for the outstanding amount of the agreement in the next cycle. Allowed values: `YES`, `NO`. Default is `NO`.
*
* @param string $auto_bill_amount
*
* @return $this
*/
public function setAutoBillAmount($auto_bill_amount)
{
$this->auto_bill_amount = $auto_bill_amount;
return $this;
}
/**
* Allow auto billing for the outstanding amount of the agreement in the next cycle. Allowed values: `YES`, `NO`. Default is `NO`.
*
* @return string
*/
public function getAutoBillAmount()
{
return $this->auto_bill_amount;
}
/**
* Action to take if a failure occurs during initial payment. Allowed values: `CONTINUE`, `CANCEL`. Default is continue.
*
* @param string $initial_fail_amount_action
*
* @return $this
*/
public function setInitialFailAmountAction($initial_fail_amount_action)
{
$this->initial_fail_amount_action = $initial_fail_amount_action;
return $this;
}
/**
* Action to take if a failure occurs during initial payment. Allowed values: `CONTINUE`, `CANCEL`. Default is continue.
*
* @return string
*/
public function getInitialFailAmountAction()
{
return $this->initial_fail_amount_action;
}
/**
* Payment types that are accepted for this plan.
*
* @param string $accepted_payment_type
*
* @return $this
*/
public function setAcceptedPaymentType($accepted_payment_type)
{
$this->accepted_payment_type = $accepted_payment_type;
return $this;
}
/**
* Payment types that are accepted for this plan.
*
* @return string
*/
public function getAcceptedPaymentType()
{
return $this->accepted_payment_type;
}
/**
* char_set for this plan.
*
* @param string $char_set
*
* @return $this
*/
public function setCharSet($char_set)
{
$this->char_set = $char_set;
return $this;
}
/**
* char_set for this plan.
*
* @return string
*/
public function getCharSet()
{
return $this->char_set;
}
}