2checkout. Как синхронизировать параметры заказа c URL с моими заказами в базе данных? - PullRequest
0 голосов
/ 28 мая 2020

У меня есть база данных, в которой записываются заказы пользователей. Процесс:

  1. Пользователь переходит на страницу продукта на сайте (я получаю продукты через API админ-панели), выбирает продукт, нажимает на созданную ссылку покупки и переходит на страницу оплаты.
  2. В этот момент этот заказ записан в мою базу данных с деталями заказа со статусом «Неоплачен».
  3. Затем пользователь совершает платеж, а затем нажимает на URL-адрес возврата и перенаправляется на мой сайт.
  4. Далее на своем сайте я получаю данные методом PHP GET. Затем, в случае успешной оплаты, мне нужно изменить статус заказа на «Оплачен» в моей базе данных.

Как я могу определить заказ, который был записан в базе данных до оплаты товара, и данные, которые пришли по URL-адресу возврата после оплаты?

Вот мой код создавая ссылку на покупку и обратный URL, не знаю насчет правильности:

public function generateBuyLink($code, $qty)
    {
        $merchant = 'merchant=' . $this->merchantCode;
        $template = 'tpl=' . $this->template;
        $productCode = 'prod=' . $code;
        $quantity = 'qty=' . $qty;

        $data = strlen($this->redirectUrl) . $this->redirectUrl;
        $signature = 'signature=' . hash_hmac('md5', $data, $this->secretKey);
        $returnUrl = 'return-url=' . urlencode($this->redirectUrl);

        $buyLink = $this->buyLink . $merchant . '&' . $returnUrl . '&' . $template . '&' . $productCode . '&' . $quantity . '&' . $signature;

        // I get this link in the end:
        // https://secure.2checkout.com/checkout/buy?merchant=250366051775&return-url=https%3A%2F%2Fmy-site.loc%2Fuser%2Fcallback&return-type=link&tpl=default&prod=431956EE48&qty=1&signature=f701a8c816b1e880624ab0ea23d4c17bfdf05c5a843db2d3fcf86c57b32a0648
        return $buyLink;
    }
...