pscbonline-php/Src/PayRefundClass/Refund/index.php

91 lines
2.5 KiB
PHP

<?php
class CreatingAndTransmittingParametersForRefund {
private int $marketPlace;
private string $secretKey;
private $items_receipt;
private $items_receipt2;
private $items_receipt3;
private $message;
private $jsonString;
private $request_url;
public function __construct($jsonString)
{
$this->jsonString = $jsonString;
$this->marketPlace = $this->jsonString['marketPlace'] ?? null;;
$this->secretKey = $this->jsonString['secretKey'] ?? null;
$this->request_url = $this->jsonString['domain'] ?? null;
$this->items_receipt = [];
$this->items_receipt2 = [];
$this->message = [];
}
public function addItemToReceipt(string $text, int $quantity, float $price, float $amount)
{
$this->items_receipt[] = [
"text" => $text,
"quantity" => $quantity,
"price" => $price,
"amount" => $amount,
"tax" => "vat110",
"type" => "full_prepayment",
"object" => "commodity",
"unit" => "шт."
];
}
public function processPayment() {
$sum = 0;
foreach ($this->items_receipt as $item)
{
$sum += $item['amount'];
}
$receipt_info = [];
$this->message = [
"marketPlace"=> $this->jsonString['marketPlace'],
"orderId"=> $this->jsonString['orderId'],
"partialRefund"=> $this->jsonString['partialRefund'],
"refundSum"=>$sum
];
$receipt_info["fdReceipt"] = ["taxSystem" => "", "items" => $this->items_receipt];
$receipt_info["data"] = $receipt_info;
// $array1 = $jsonString;
// $this->message = array_merge($this->message + $receipt_info);
// $resultArray = array_merge($array1, $this->message);
// print_r($resultArray);
$messageTxt = json_encode($this->message);
$signature = hash('sha256', $messageTxt.$this->secretKey);
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://" .$this->request_url. "/merchantApi/refundPayment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $messageTxt,
CURLOPT_HTTPHEADER => [
"Signature: $signature",
"Content-Type: application/json"
]
]);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
}
?>