Я написал PHP-класс для подключения к PayPal на основе этого урока — http://www.smashingmagazine.com/2011/09/05/getting-started-with-the-paypal-api/
Он отлично работает при использовании жестко закодированных учетных данных, но мой интерфейс администратора позволяет мне включать или отключать режим песочницы и вводить учетные данные как для песочницы, так и для реальных учетных записей.
Моя проблема в том, что это мой первый набег в ООП, и я борюсь с условными утверждениями в классе. Например, мне нужно сделать это в классе, и в нем должна быть $ endpoint;
if( $sandbox ) {
$endpoint = 'https://api-3t.sandbox.paypal.com/nvp';
} else {
$endpoint = 'https://api-3t.paypal.com/nvp';
}
Вы должны объявить переменные внутри конструктора, чтобы вы могли установить переменную вне области действия класса.
class Paypal(){
protected $sandbox;
public function __construct($sandbox) {
$this->sandbox = $sandbox;
}
....
....
if($this->sandbox) {
//do something
}
else {
//do something else
}
...
}
Затем в вашем скрипте сделайте следующее:
<?php
include('/path/to/Paypal.php');
public function checkSandbox() {
//check if sandbox is enabled or not
if($enabled)
return true;
return false;
}
$sandbox = checkSandbox();
$paypal = new Paypal($sandbox);
...
...
в oop
переменные класса доступны как — $this->sandbox
& $this->endpoint
, и вы должны определить их первыми в классе.
public $sandbox;
public $endpoint;