Services
مستندات فنی IPG های مستقیم
سرویس اتصال به درگاه پرداخت
با استفاده از این سرویس قادر خواهید بود وب سایت و پلتفرم تون رو به شبکه پرداخت آلسات پرداخت وصل کنید. برای این منظور می بایست سه مرحله رو انجام بدید
curl --location --request POST 'https://www.alsatpardakht.com/API_V1/sign.php' \ --header 'Cookie: PHPSESSID=ve3hm9p3e0olopnaddfr2o6tl1' \ --form 'Api="APIKEY"' \ --form 'Amount="50000"' \ --form 'InvoiceNumber="1001"' \ --form 'RedirectAddress="https://www.alsatpardakht.com/API_V1_C/callback.php?Api=APIKEY"'
اتصال با زبان برنامه نویسی PHP
مرحله اول : ارسال دیتا
ابتدا می بایست پارامترهای موجود در جدول زیر رو با متد POST به آدرسی که مشخص شده ارسال کنید. به نوع داده ها و نام فیلد توجه کنید.
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://www.alsatpardakht.com/API_V1/sign.php'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); $post = array( 'Api' => "APIKEY", 'Amount' => "50000", 'InvoiceNumber' => "1001", 'RedirectAddress' => "https://www.alsatpardakht.com/API_V1_C/callback.php?Api=APIKEY" ); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); $headers = array(); $headers[] = 'Cookie: PHPSESSID=ve3hm9p3e0olopnaddfr2o6tl1'; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } print_r($result); curl_close($ch);
نام فیلد | نوع | توضیحات |
---|---|---|
Api | String | API Key دریافتی از پنل کاربری شما که بعد از تایید درخواست درگاه صادر میشه |
Amount | Integer | مبلغ تراکنش به صورت ریال و بدون رقم اعشار. بزرگتر یا مساوی 10,000 ریال |
RedirectAddress | String | آدرس بازگشتی که باید به صورت urlencode ارسال بشه و باید با آدرس درگاه پرداخت تایید شده در شبکه پرداخت آلسات پرداخت در یک ادرس باشه |
InvoiceNumber | String | شماره فاکتور شما |
مرحله دوم : انتقال کاربر به صفحه پرداخت
در صورتی که در مرحله ارسال دیتا ، اطلاعات ارسالی شما درست باشه در پاسخ دو مقدار IsSuccess = 1 و Token رو دریافت میکنید و می بایست خریدار رو به شیوه زیر به درگاه ریدایرکت کنید. برای اینکار باید توکن دریافت شده در مرحله قبل رو Token دریافت کردید رو در اخر ادرس
https://www.alsatpardakht.com/API_V1/Go.php?Token=$Token
قرار بدید و کاربر رو به URL ایجاد شده ریدایرکت کنید. اگر اینکارهارو درست انجام بدید چند ثانیه بعد صفحه پرداخت وجه رو میتونید ببینید.
{
"IsSuccess": 1,
"TimeStamp": "2021/06/20 19:16:16",
"InvoiceDate": "2021/06/20 19:16:16",
"Token": "uUDUT0EBXWA67Hz1Pwpyb8CsrUBj7yOnx5rviSXwrgk=",
"Sign": "A46ZTlf7qmfdbIZIB+4me6hiYJhCs58+fnMNJlfATpaA4Vw+YMB2z7fEHWF359pZOXJGvd5FMAijmkdDFh68V6iOVOLrqWyXVbM1fXKBBl5FC+FeoHnfaccvZ68Eot67OHjyGpCEEZ+h3KEQoEaKem0h+JuHK/pxuTrrU/KWHlI="
}
نکته :
بعد از اینکه توکن رو اخر url قرار دادید و یه لینک ایجاد کردید حتما باید کاربر رو به این ادرس ریدایرکت کنید. اگر کاربر رو Post کنید به خطا میخورید و حتما باید مشتری تون رو به لینک ایجاد شده ریدایرکت کنید
hrader("location:https://www.alsatpardakht.com/API_V1/Go.php?Token=$Token");
مرحله سوم : بازگشت به سایت پذیرنده
$Api = $_GET['Api']; $tref = $_GET['tref']; $iN = $_GET['iN']; $iD = $_GET['iD']; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://www.alsatpardakht.com/API_V1/callback.php'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); $post = array( 'Api' => "APIKEY", 'tref' => "$tref", 'iN' => "$iN", 'iD' => "$iD" ); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); $headers = array(); $headers[] = 'Cookie: PHPSESSID=ve3hm9p3e0olopnaddfr2o6tl1'; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } print_r($result); curl_close($ch);
نام فیلد | نوع | توضیحات |
---|---|---|
Api | String | API Key دریافتی از پنل کاربری شما که بعد از تایید درخواست درگاه صادر میشه |
tref | Integer | |
iN | String | |
iD | String |
اتصال با زبان برنامه نویسی C# - RestSharp
var client = new RestClient("https://www.alsatpardakht.com/API_V1/sign.php"); client.Timeout = -1; var request = new RestRequest(Method.POST); request.AddHeader("Cookie", "PHPSESSID=ve3hm9p3e0olopnaddfr2o6tl1"); request.AlwaysMultipartFormData = true; request.AddParameter("Api", "APIKEY"); request.AddParameter("Amount", "50000"); request.AddParameter("InvoiceNumber", "1001"); request.AddParameter("RedirectAddress", "https://www.alsatpardakht.com/API_V1_C/callback.php?Api=123456"); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content);
اتصال با زبان برنامه نویسی Go - Native
package main import ( "fmt" "bytes" "mime/multipart" "net/http" "io/ioutil" ) func main() { url := "https://www.alsatpardakht.com/API_V1/sign.php" method := "POST" payload := &bytes.Buffer{} writer := multipart.NewWriter(payload) _ = writer.WriteField("Api", "APIKEY") _ = writer.WriteField("Amount", "50000") _ = writer.WriteField("InvoiceNumber", "1001") _ = writer.WriteField("RedirectAddress", "https://www.alsatpardakht.com/API_V1_C/callback.php?Api=123456") err := writer.Close() if err != nil { fmt.Println(err) return } client := &http.Client { } req, err := http.NewRequest(method, url, payload) if err != nil { fmt.Println(err) return } req.Header.Add("Cookie", "PHPSESSID=ve3hm9p3e0olopnaddfr2o6tl1") req.Header.Set("Content-Type", writer.FormDataContentType()) res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) }
اتصال با زبان برنامه نویسی Swift - URLSession
import Foundation #if canImport(FoundationNetworking) import FoundationNetworking #endif var semaphore = DispatchSemaphore (value: 0) let parameters = [ [ "key": "Api", "value": "APIKEY", "type": "text" ], [ "key": "Amount", "value": "50000", "type": "text" ], [ "key": "InvoiceNumber", "value": "1001", "type": "text" ], [ "key": "RedirectAddress", "value": "https://www.alsatpardakht.com/API_V1_C/callback.php?Api=123456", "type": "text" ]] as [[String : Any]] let boundary = "Boundary-\(UUID().uuidString)" var body = "" var error: Error? = nil for param in parameters { if param["disabled"] == nil { let paramName = param["key"]! body += "--\(boundary)\r\n" body += "Content-Disposition:form-data; name=\"\(paramName)\"" if param["contentType"] != nil { body += "\r\nContent-Type: \(param["contentType"] as! String)" } let paramType = param["type"] as! String if paramType == "text" { let paramValue = param["value"] as! String body += "\r\n\r\n\(paramValue)\r\n" } else { let paramSrc = param["src"] as! String let fileData = try NSData(contentsOfFile:paramSrc, options:[]) as Data let fileContent = String(data: fileData, encoding: .utf8)! body += "; filename=\"\(paramSrc)\"\r\n" + "Content-Type: \"content-type header\"\r\n\r\n\(fileContent)\r\n" } } } body += "--\(boundary)--\r\n"; let postData = body.data(using: .utf8) var request = URLRequest(url: URL(string: "https://www.alsatpardakht.com/API_V1/sign.php")!,timeoutInterval: Double.infinity) request.addValue("PHPSESSID=ve3hm9p3e0olopnaddfr2o6tl1", forHTTPHeaderField: "Cookie") request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type") request.httpMethod = "POST" request.httpBody = postData let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data else { print(String(describing: error)) semaphore.signal() return } print(String(data: data, encoding: .utf8)!) semaphore.signal() } task.resume() semaphore.wait()