У меня есть база данных, в которой записываются заказы пользователей. Процесс:
- Пользователь переходит на страницу продукта на сайте (я получаю продукты через API админ-панели), выбирает продукт, нажимает на созданную ссылку покупки и переходит на страницу оплаты.
- В этот момент этот заказ записан в мою базу данных с деталями заказа со статусом «Неоплачен».
- Затем пользователь совершает платеж, а затем нажимает на URL-адрес возврата и перенаправляется на мой сайт.
- Далее на своем сайте я получаю данные методом 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;
}