Bonjour,

Je suis actuellement en train de mettre en place un système de paiement en ligne et j'ai décidé d'utiliser PayMill.

Cependant, je trouve que malheureusement, il n'y a pas vraiment de ligne directrice à suivre selon les guides , j'ai donc entrepris d'imaginer mon concept moi-même.

Pour le moment, je crée un client , je crée une transaction et j'aimerais faire le paiement de cette transaction.

Voici mon début de code :

    public function index (){
        $this->autoRender = false;
        //Test de requête avec la clé
        $apiKey = '42cc934e3735d27797aea2bb7281a073';
        $request = new \Paymill\Request($apiKey);
        $token = mt_rand(1, 9999999999999) . time();
        $client = new \Paymill\Models\Request\Client();
        $list_clients = $request->getAll($client);
        $client_email = $this->Auth->user()['email'];
        //On parcourt la liste des clients, et si le client existe déjà on fait la transaction
        foreach ($list_clients as $client){
            if ($client['email'] == $client_email){
                //On doit d'abord récupérer quel client est connecté
                $connected_client = $client['id'];
                //On prépare la transaction
                $transaction = new \Paymill\Models\Request\Transaction();
                $transaction->setAmount(4200) // e.g. "4200" for 42.00 EUR
                    ->setCurrency('EUR')
                    ->setClient($connected_client)
                    ->setPayment('pay_2f82a672574647cd911d')
                    ->setDescription('Test Transaction');
                $response = $request->create($transaction);
                var_dump($response);exit;
                //Ensuite on effectue le paiement
                $payment = new \Paymill\Models\Request\Payment();
                $payment->setToken($token)
                    ->setClient($connected_client);
                $response = $request->create($payment);

            }
            //Sinon on crée le client
            else {
                $names_connected = $this->Auth->user()['firstname'] . " " . $this->Auth->user()['lastname'];
                $client->setEmail($client_email)
                    ->setDescription($names_connected);
                $response = $request->create($client);
                var_dump($response);
                exit;
            }

        }

    }
    public function forceSSL(){
        return $this->redirect('https://' . env('SERVER_NAME') . $this->request->here);
    }
}

Mon problème est que je n'arrive pas créer la transaction, cependant , lorsque je la vardump, je la récupère correctement.

Est-ce que des personnes connaissent un peu cette API ?

J'ai essayé de chercher mais franchement, c'est le néant sur le net.

Merci d'avance

Aucune réponse