راهنمای توسعه‌دهندگان

مستندات پیشرفته API

نمونه‌های کامل اتصال برای PHP، Python و Java، ساخت فاکتور، مدیریت Secret، Callback و وضعیت تراکنش.

ایجاد فاکتور

POST https://pay.msersr.ir/api/create-payment.php

هدر: Content-Type: application/json و X-API-Key: SECRET

{"order_id":"order-1001","amount":10000,"description":"سفارش آزمایشی","callback_url":"https://shop.example.com/payment/callback"}

پاسخ شامل payment_url با قالب زیر است:

https://pay.msersr.ir/port/pay.php?tokin=TOKEN

نمونه PHP

$payload = [
  "order_id" => "order-1001",
  "amount" => 10000,
  "description" => "سفارش آزمایشی",
  "callback_url" => "https://shop.example.com/payment/callback"
];
$ch = curl_init("https://pay.msersr.ir/api/create-payment.php");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json",
    "X-API-Key: " . getenv("PAY_SECRET")
  ],
  CURLOPT_POSTFIELDS => json_encode($payload),
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_TIMEOUT => 10
]);
echo curl_exec($ch);
curl_close($ch);

Python

import os, requests
response = requests.post(
    "https://pay.msersr.ir/api/create-payment.php",
    headers={"X-API-Key": os.environ["PAY_SECRET"]},
    json={"order_id":"order-1001","amount":10000,
          "description":"Test order",
          "callback_url":"https://shop.example.com/payment/callback"},
    timeout=10
)
print(response.status_code, response.json())

Java 11+

import java.net.URI;
import java.net.http.*;
import java.nio.charset.StandardCharsets;

public class CreatePayment {
  public static void main(String[] args) throws Exception {
    String key = System.getenv("PAY_SECRET");
    String body = "{\"order_id\":\"order-1001\",\"amount\":10000,\"description\":\"Test order\",\"callback_url\":\"https://shop.example.com/payment/callback\"}";
    HttpRequest req = HttpRequest.newBuilder()
      .uri(URI.create("https://pay.msersr.ir/api/create-payment.php"))
      .header("Content-Type","application/json")
      .header("X-API-Key",key)
      .POST(HttpRequest.BodyPublishers.ofString(body, StandardCharsets.UTF_8))
      .build();
    HttpResponse res = HttpClient.newHttpClient().send(req,HttpResponse.BodyHandlers.ofString());
    System.out.println(res.statusCode()+" "+res.body());
  }
}
نمونه‌ها فقط درخواست فاکتور را می‌سازند. تا وقتی ارائه‌دهنده پرداخت واقعی متصل نشده، پرداخت موفق یا Callback موفق صادر نمی‌شود.