101 lines
2.9 KiB
PHP
101 lines
2.9 KiB
PHP
|
|
<?php
|
|
include "../../jwtconnect.php";
|
|
// 1. احصل على AUTH TOKEN
|
|
$api_key = getenv("payMobApiKey1"); // ضع API Key الخاص بك هنا
|
|
$email= filterRequest("amount");
|
|
$first_name= filterRequest("first_name");
|
|
$last_name= filterRequest("last_name");
|
|
$phone_number= filterRequest("phone_number");
|
|
$amount= filterRequest("amount");
|
|
|
|
$auth_url = "https://accept.paymob.com/api/auth/tokens";
|
|
$auth_data = json_encode(["api_key" => $api_key]);
|
|
|
|
$response = callAPI("POST", $auth_url, $auth_data);
|
|
// printResponse("AUTH TOKEN RESPONSE", $response);
|
|
|
|
$auth_token = $response->token ?? null;
|
|
if (!$auth_token) {
|
|
die("❌ فشل الحصول على AUTH TOKEN!");
|
|
}
|
|
// $amount=$amount*100;
|
|
// 2. أنشئ الطلب ORDER
|
|
$order_url = "https://accept.paymob.com/api/ecommerce/orders";
|
|
$order_data = [
|
|
"auth_token" => $auth_token,
|
|
"delivery_needed" => false,
|
|
"amount_cents" => $amount,
|
|
"currency" => "EGP",
|
|
"merchant_order_id" => uniqid(),
|
|
"items" => []
|
|
];
|
|
|
|
$response = callAPI("POST", $order_url, json_encode($order_data));
|
|
// printResponse("ORDER RESPONSE", $response);
|
|
|
|
$order_id = $response->id ?? null;
|
|
if (!$order_id) {
|
|
die("❌ فشل إنشاء الطلب!");
|
|
}
|
|
$integration_id=getenv("paymobIntegratedIdCard");
|
|
// 3. احصل على Payment Key
|
|
$payment_key_url = "https://accept.paymob.com/api/acceptance/payment_keys";
|
|
$payment_key_data = [
|
|
"auth_token" => $auth_token,
|
|
"amount_cents" => $amount,
|
|
"expiration" => 3600,
|
|
"order_id" => $order_id,
|
|
"billing_data" => [
|
|
"first_name" =>$first_name,
|
|
"last_name" => $last_name,
|
|
"email" => $email,
|
|
"phone_number" => $phone_number,
|
|
"country" => "EG",
|
|
"city" => "Cairo",
|
|
"state" => "shobra",
|
|
"street" => "Test St.",
|
|
"building" => "1",
|
|
"apartment" => "10",
|
|
"floor" => "2",
|
|
"postal_code" => "12345",
|
|
"shipping_method"=> 'card'
|
|
],
|
|
"currency" => "EGP",
|
|
"integration_id" => $integration_id, // ضع الـ Integration ID الصحيح
|
|
];
|
|
|
|
$response = callAPI("POST", $payment_key_url, json_encode($payment_key_data));
|
|
// printResponse("PAYMENT TOKEN RESPONSE", $response);
|
|
|
|
$payment_token = $response->token ?? null;
|
|
if (!$payment_token) {
|
|
die("❌ فشل الحصول على PAYMENT TOKEN!");
|
|
}
|
|
|
|
// 4. إنشاء IFRAME URL
|
|
$iframe_id = "837992"; // ضع الـ Iframe ID الصحيح
|
|
$iframe_url = "https://accept.paymob.com/api/acceptance/iframes/$iframe_id?payment_token=$payment_token";
|
|
if($payment_token){
|
|
|
|
printSuccess($iframe_url);
|
|
}
|
|
// دالة لطلب API عبر CURL
|
|
function callAPI($method, $url, $data)
|
|
{
|
|
$curl = curl_init();
|
|
|
|
curl_setopt_array($curl, [
|
|
CURLOPT_URL => $url,
|
|
CURLOPT_RETURNTRANSFER => true,
|
|
CURLOPT_CUSTOMREQUEST => $method,
|
|
CURLOPT_POSTFIELDS => $data,
|
|
CURLOPT_HTTPHEADER => ["Content-Type: application/json"]
|
|
]);
|
|
|
|
$response = curl_exec($curl);
|
|
curl_close($curl);
|
|
|
|
return json_decode($response);
|
|
}
|