1 <?php
2
3 namespace PayPal\Api;
4
5 use PayPal\Common\PayPalModel;
6
7 /**
8 * Class Payer
9 *
10 * A resource representing a Payer that funds a payment.
11 *
12 * @package PayPal\Api
13 *
14 * @property string payment_method
15 * @property string status
16 * @property \PayPal\Api\FundingInstrument[] funding_instruments
17 * @property string external_selected_funding_instrument_type
18 * @property \PayPal\Api\PayerInfo payer_info
19 */
20 class Payer extends PayPalModel
21 {
22 /**
23 * Payment method being used - PayPal Wallet payment, Bank Direct Debit or Direct Credit card.
24 * Valid Values: ["credit_card", "bank", "paypal", "pay_upon_invoice", "carrier", "alternate_payment"]
25 *
26 * @param string $payment_method
27 *
28 * @return $this
29 */
30 public function setPaymentMethod($payment_method)
31 {
32 $this->payment_method = $payment_method;
33 return $this;
34 }
35
36 /**
37 * Payment method being used - PayPal Wallet payment, Bank Direct Debit or Direct Credit card.
38 *
39 * @return string
40 */
41 public function getPaymentMethod()
42 {
43 return $this->payment_method;
44 }
45
46 /**
47 * Status of payer's PayPal Account.
48 * Valid Values: ["VERIFIED", "UNVERIFIED"]
49 *
50 * @param string $status
51 *
52 * @return $this
53 */
54 public function setStatus($status)
55 {
56 $this->status = $status;
57 return $this;
58 }
59
60 /**
61 * Status of payer's PayPal Account.
62 *
63 * @return string
64 */
65 public function getStatus()
66 {
67 return $this->status;
68 }
69
70 /**
71 * Type of account relationship payer has with PayPal.
72 * Valid Values: ["BUSINESS", "PERSONAL", "PREMIER"]
73 * @deprecated Not publicly available
74 * @param string $account_type
75 *
76 * @return $this
77 */
78 public function setAccountType($account_type)
79 {
80 $this->account_type = $account_type;
81 return $this;
82 }
83
84 /**
85 * Type of account relationship payer has with PayPal.
86 * @deprecated Not publicly available
87 * @return string
88 */
89 public function getAccountType()
90 {
91 return $this->account_type;
92 }
93
94 /**
95 * Duration since the payer established account relationship with PayPal in days.
96 * @deprecated Not publicly available
97 * @param string $account_age
98 *
99 * @return $this
100 */
101 public function setAccountAge($account_age)
102 {
103 $this->account_age = $account_age;
104 return $this;
105 }
106
107 /**
108 * Duration since the payer established account relationship with PayPal in days.
109 * @deprecated Not publicly available
110 * @return string
111 */
112 public function getAccountAge()
113 {
114 return $this->account_age;
115 }
116
117 /**
118 * List of funding instruments to fund the payment. 'OneOf' funding_instruments,funding_option_id to be used to identify the specifics of payment method passed.
119 *
120 * @param \PayPal\Api\FundingInstrument[] $funding_instruments
121 *
122 * @return $this
123 */
124 public function setFundingInstruments($funding_instruments)
125 {
126 $this->funding_instruments = $funding_instruments;
127 return $this;
128 }
129
130 /**
131 * List of funding instruments to fund the payment. 'OneOf' funding_instruments,funding_option_id to be used to identify the specifics of payment method passed.
132 *
133 * @return \PayPal\Api\FundingInstrument[]
134 */
135 public function getFundingInstruments()
136 {
137 return $this->funding_instruments;
138 }
139
140 /**
141 * Append FundingInstruments to the list.
142 *
143 * @param \PayPal\Api\FundingInstrument $fundingInstrument
144 * @return $this
145 */
146 public function addFundingInstrument($fundingInstrument)
147 {
148 if (!$this->getFundingInstruments()) {
149 return $this->setFundingInstruments(array($fundingInstrument));
150 } else {
151 return $this->setFundingInstruments(
152 array_merge($this->getFundingInstruments(), array($fundingInstrument))
153 );
154 }
155 }
156
157 /**
158 * Remove FundingInstruments from the list.
159 *
160 * @param \PayPal\Api\FundingInstrument $fundingInstrument
161 * @return $this
162 */
163 public function removeFundingInstrument($fundingInstrument)
164 {
165 return $this->setFundingInstruments(
166 array_diff($this->getFundingInstruments(), array($fundingInstrument))
167 );
168 }
169
170 /**
171 * Id of user selected funding option for the payment.'OneOf' funding_instruments,funding_option_id to be used to identify the specifics of payment method passed.
172 * @deprecated Not publicly available
173 * @param string $funding_option_id
174 *
175 * @return $this
176 */
177 public function setFundingOptionId($funding_option_id)
178 {
179 $this->funding_option_id = $funding_option_id;
180 return $this;
181 }
182
183 /**
184 * Id of user selected funding option for the payment.'OneOf' funding_instruments,funding_option_id to be used to identify the specifics of payment method passed.
185 * @deprecated Not publicly available
186 * @return string
187 */
188 public function getFundingOptionId()
189 {
190 return $this->funding_option_id;
191 }
192
193 /**
194 * Default funding option available for the payment
195 * @deprecated Not publicly available
196 * @param \PayPal\Api\FundingOption $funding_option
197 *
198 * @return $this
199 */
200 public function setFundingOption($funding_option)
201 {
202 $this->funding_option = $funding_option;
203 return $this;
204 }
205
206 /**
207 * Default funding option available for the payment
208 * @deprecated Not publicly available
209 * @return \PayPal\Api\FundingOption
210 */
211 public function getFundingOption()
212 {
213 return $this->funding_option;
214 }
215
216 /**
217 * Instrument type pre-selected by the user outside of PayPal and passed along the payment creation. This param is used in cases such as PayPal Credit Second Button
218 * Valid Values: ["CREDIT", "PAY_UPON_INVOICE"]
219 *
220 * @param string $external_selected_funding_instrument_type
221 *
222 * @return $this
223 */
224 public function setExternalSelectedFundingInstrumentType($external_selected_funding_instrument_type)
225 {
226 $this->external_selected_funding_instrument_type = $external_selected_funding_instrument_type;
227 return $this;
228 }
229
230 /**
231 * Instrument type pre-selected by the user outside of PayPal and passed along the payment creation. This param is used in cases such as PayPal Credit Second Button
232 *
233 * @return string
234 */
235 public function getExternalSelectedFundingInstrumentType()
236 {
237 return $this->external_selected_funding_instrument_type;
238 }
239
240 /**
241 * Funding option related to default funding option.
242 * @deprecated Not publicly available
243 * @param \PayPal\Api\FundingOption $related_funding_option
244 *
245 * @return $this
246 */
247 public function setRelatedFundingOption($related_funding_option)
248 {
249 $this->related_funding_option = $related_funding_option;
250 return $this;
251 }
252
253 /**
254 * Funding option related to default funding option.
255 * @deprecated Not publicly available
256 * @return \PayPal\Api\FundingOption
257 */
258 public function getRelatedFundingOption()
259 {
260 return $this->related_funding_option;
261 }
262
263 /**
264 * Information related to the Payer.
265 *
266 * @param \PayPal\Api\PayerInfo $payer_info
267 *
268 * @return $this
269 */
270 public function setPayerInfo($payer_info)
271 {
272 $this->payer_info = $payer_info;
273 return $this;
274 }
275
276 /**
277 * Information related to the Payer.
278 *
279 * @return \PayPal\Api\PayerInfo
280 */
281 public function getPayerInfo()
282 {
283 return $this->payer_info;
284 }
285
286 }
287