J'ai mis Sandbox en Clé supplémentaire, de manière à pouvoir avoir 2 configurations selon si tu fais un test ou non.
Par exemple :
Configure::write('Paypal', [
'Sandbox' => [
'sandboxMode' => true,
'nvpUsername' => 'tonUsernameEnModeSandbox',
'nvpPassword' => 'tonPasswordEnModeSandbox',
'nvpSignature' => 'taSignatureEnModeSandbox'
],
'Online' => [
'sandboxMode' => false,
'nvpUsername' => 'tonUsernameEnModeOnline',
'nvpPassword' => 'tonPasswordEnModeOnline',
'nvpSignature' => 'taSignatureEnModeOnline'
]
]);
De cette manière, pendant des tests, tu utilises :
$this->Paypal = new Paypal(Configure::read('Paypal.Sandbox'));
Et lorsque tu passes ton site en ligne et donc fonctionnel pour les utilisateurs :
$this->Paypal = new Paypal(Configure::read('Paypal.Online'));
Comme ça tu bascules rapidement entre les deux identifications : Version test et version finale.
Sinon, si tu préfères, tu n'utilises pas de clé supplémentaire, tu fais deux Configure::write('Paypal') dans ton bootstrap.php et tu fais une condition sur l'environnement.
Par exemple :
if ($_SERVER['SERVER_ADDR'] == '127.0.0.1') {
Configure::write('Paypal', [
'sandboxMode' => true,
'nvpUsername' => 'tonUsernameEnModeSandbox',
'nvpPassword' => 'tonPasswordEnModeSandbox',
'nvpSignature' => 'taSignatureEnModeSandbox'
]);
} else {
Configure::write('Paypal', [
'sandboxMode' => false,
'nvpUsername' => 'tonUsernameEnModeOnline',
'nvpPassword' => 'tonPasswordEnModeOnline',
'nvpSignature' => 'taSignatureEnModeOnline'
]);
}
Et lorsque tu utilises l'API, tu définis :
$this->Paypal = new Paypal(Configure::read('Paypal'));
À toi de voir comment tu veux le faire, dans les deux cas, le compte Paypal de test et le final ne sont pas les mêmes, donc les identifiants pour l'API non plus.