'cookiesession1=678A8C341A085F7AF93FECC7B44ACDFF']) ->asForm() ->post('https://payman2.sandbox.faraboom.co/oauth/token', [ 'Client_id' => 'demopayman', 'Client_secret' => '!8cr?40V', 'Grant_type' => 'client_credentials', ]); $this->accessToken = $response->json()['access_token']; return $response->json(); } /** * Create a Payman account. */ public function create() { $t = Uuid::uuid4()->toString(); $response = Http::withHeaders([ 'app-key' => 'demopayman', 'Client-Ip-Address' => '127.0.0.1', 'Client-Platform-Type' => 'web', 'Client-Device-Id' => '169.254.75.178', 'Client-User-Id' => '09352673656', 'Client-User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', 'Content-Type' => 'application/json', 'Mobile-no' => '09352673656', 'National-code' => '0082205388', 'Authorization' => 'Bearer b71c3737-7b89-4f2c-9301-767439079407', 'Cookie' => 'cookiesession1=678A8C341A085F7AF93FECC7B44ACDFF', ]) ->post('https://payman2.sandbox.faraboom.co/v1/payman/create', [ 'payman' => [ 'bank_code' => 'SINAIR', 'user_id' => 'demopayman', 'permission_ids' => [1], 'contract' => [ 'expiration_date' => '2026-01-15T01:28:09.5662061+04:30', 'max_daily_transaction_count' => 50, 'max_monthly_transaction_count' => 100, 'max_transaction_amount' => 500000, ], ], 'redirect_url' => 'http://localhost', 'trace_id' => $t, ]); // دریافت پاسخ از API $statusCode = $response->status(); // وضعیت HTTP $responseBody = $response->json(); // بدنه پاسخ به صورت JSON $responseHeaders = $response->headers(); // هدرهای پاسخ $responseBodyRaw = $response->body(); // بدنه خام پاسخ (به صورت متن) // برگشت وضعیت و بدنه پاسخ return response()->json([ 'status' => $statusCode, 'json' => $response->json(), 'headers' => $response->headers(), 'body' => $response->body(), ]); $response = Http::timeout(4)->withHeaders([ 'Cookie' => 'cookiesession1=678A8C341A085F7AF93FECC7B44ACDFO', 'app-key' => 'demopayman', 'Client-Ip-Address' => $_SERVER['REMOTE_ADDR'], 'Client-Platform-Type' => 'web', 'Client-Device-Id' => '169.254.75.178', 'Client-User-Id' => '09352673656', 'Client-User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36', 'Content-Type' => 'application/json', 'Mobile-no' => '09352673656', 'National-code' => '0082205388', 'Authorization' => 'Bearer b71c3737-7b89-4f2c-9301-767439079407', ])->post('https://payman2.sandbox.faraboom.co/v1/payman/create', [ 'payman' => [ 'bank_code' => 'SINAIR', 'user_id' => 'demopayman', 'permission_ids' => [1], 'contract' => [ 'expiration_date' => '2026-01-15T01:28:09.5662061+04:30', // Updated expiration date 'max_daily_transaction_count' => 50, 'max_monthly_transaction_count' => 100, 'max_transaction_amount' => 500000, 'start_date' => '2025-01-15T08:28:09.5662061+04:30', 'Daily_max_transaction_amount' => 500000000, ] ], 'redirect_url' => 'https://api.gholaktala.ir/', 'trace_id' => $t, ]); return $response->getStatusCode().$t.$response; /*{ "access_token": "b71c3737-7b89-4f2c-9301-767439079407", "token_type": "bearer", "scope": "all", "expires_in": 28954155 }*/ } /** * Retrieve details for a specific trace ID. */ public function createTrace() { $traceId = Str::uuid()->toString(); $response = Http::timeout(4)->withHeaders([ 'Cookie' => 'cookiesession1=678A8C341A085F7AF93FECC7B44ACDFO', 'Authorization' => 'Bearer ' . $this->accessToken, // Using stored access token ])->get('https://payman2.sandbox.faraboom.co/v1/payman/create/trace', [ 'trace_id' => $traceId, 'redirect_url' => 'https://api.gholaktala.ir/', ]); if ($response->status() === 302) { $location = $response->header('Location'); return redirect()->away($location); } return response()->json([ 'headers' => $response->headers(), 'body' => $response->body(), ]); } /** * Get Payman account ID by payman_code. */ public function getId() { $url = 'https://payman2.sandbox.faraboom.co/v1/payman/getId'; $paymanCode = '2gZ04Yx9iHEP'; // You may want to dynamically set this value return $response = Http::timeout(4) ->withHeaders([ 'Authorization' => 'Bearer ' . $this->accessToken, // Using stored access token 'App-Key' => 'demopayman', 'Cookie' => 'cookiesession1=678A8C341A085F7AF93FECC7B44ACDFF', ]) ->get($url, [ 'payman_code' => $paymanCode // pass the payman_code as a query parameter ])->json(); } }