Closed mmiladkdr closed 1 year ago
مشکل چیه الان ؟
اینجا از
SOAP
استفاده شده
آیا میخواهید با
REST
جایگزین بشه ؟
بله
آیا امکان این رو دارید با REST پیاده سازی کنید؟ من مجبور شدم یه کلاس جدا بنویسم براش دیگه از پکیج استفاده نکنم
خب شما اگه کدش رو نوشتید بفرستید به package اضافه میکنیم
@miladkardgar
یه کلاس ساده واسه گرفتن توکن و ارسال و ولیدیت پرداخت هست. اگه با اون میتونید بنویسید که بزارم اینجا
اره بزارید
public function __construct($localInvoiceId, $amountInRials, $additionalData = '')
{
$this->baseUrl = config('sabin.asanPardakht.baseUrl');
$this->username = config('sabin.asanPardakht.username');
$this->password = config('sabin.asanPardakht.password');
$this->data = [
'merchantConfigurationId' => config('sabin.asanPardakht.merchantConfigurationId'),
'serviceTypeId' => 1,
'localInvoiceId' => $localInvoiceId,
'amountInRials' => $amountInRials,
'localDate' => date("Ymd hms", time()),
'additionalData' => $additionalData,
'callbackURL' => config('sabin.asanPardakht.callbackURL'),
'paymentId' => 0,
'settlementPortions' => [
'settlementPortions' => config('sabin.asanPardakht.settlementPortions'),
'amountInRials' => $amountInRials
],
];
}
public function getToken()
{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $this->baseUrl,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($this->data, JSON_FORCE_OBJECT),
CURLOPT_HTTPHEADER => array(
"Accept: application/json",
"Content-Type: application/json-patch+json",
"usr: $this->username",
"pwd: $this->password"
),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
public function SendToGatewaye()
{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $this->baseUrl,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($this->data, JSON_FORCE_OBJECT),
CURLOPT_HTTPHEADER => array('RefId' => $this->getToken()),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
public function TranResult($merchantConfigurationId, $LocalInvoiceId)
{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://rest.asanpardakht.net/v1/TranResult?" . $merchantConfigurationId . "&" . $LocalInvoiceId,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array('RefId' => $this->getToken()),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
public function Verify($merchantConfigurationId, $payGateTranId)
{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://rest.asanpardakht.net/v1/Verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode(['merchantConfigurationId' => $merchantConfigurationId, 'payGateTranId' => $payGateTranId], JSON_FORCE_OBJECT),
CURLOPT_HTTPHEADER => array(
"Accept: application/json",
"Content-Type: application/json-patch+json",
"usr: $this->username",
"pwd: $this->password"
),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
public function Settlement($merchantConfigurationId, $payGateTranId)
{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://rest.asanpardakht.net/v1/Settlement",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode(['merchantConfigurationId' => $merchantConfigurationId, 'payGateTranId' => $payGateTranId], JSON_FORCE_OBJECT),
CURLOPT_HTTPHEADER => array(
"Accept: application/json",
"Content-Type: application/json-patch+json",
"usr: $this->username",
"pwd: $this->password"
),
));
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
با توجه به تغییرات در ای پی جی اسان پرداخت با متد های قبلی امکان پرداخت وجود ندارد. امان تغییرات با توحه به داکیومنت REST آسان پرداخت امکان پذیر است؟