Php 在发出cURL请求后,在cURL响应中将用户重定向到URL中的URL
我正在尝试添加一个支付平台。我能够成功地提出请求,并且得到了成功的答复。我想从响应中获取URL,并将用户重定向到URL。我的研究表明,我应该在我的代码中添加Php 在发出cURL请求后,在cURL响应中将用户重定向到URL中的URL,php,curl,redirect,Php,Curl,Redirect,我正在尝试添加一个支付平台。我能够成功地提出请求,并且得到了成功的答复。我想从响应中获取URL,并将用户重定向到URL。我的研究表明,我应该在我的代码中添加CURLOPT\u FOLLOWLOCATION=>true,而curl\u getinfo显示了我的php文件路径。以下是初步请求和响应 请求 $payload = json_encode(["merchant_id"=>"Your merchant ID", "transaction
CURLOPT\u FOLLOWLOCATION=>true
,而curl\u getinfo
显示了我的php文件路径。以下是初步请求和响应
请求
$payload = json_encode(["merchant_id"=>"Your merchant ID", "transaction_id"=>"000000000000",
"desc"=>"Payment Using Checkout Page", "amount"=>"000000000100",
"redirect_url"=>"https://yoursite.com", "email"=>"mail@customer.com"]);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://test.theteller.net/checkout/initiate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $payload,
CURLOPT_HTTPHEADER => array(
"Authorization: Basic ".base64_encode('Your API Username:Your API Key')."",
"Cache-Control: no-cache",
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
$status = $data['status'];
$code = $data['code'];
$redirecturl = $data['checkout_url'];
echo $status;
if ($status == 'success' && $code == 200)
{
header('Location: www.google.com');
exit();
}
}
答复
{
"status": "success",
"code": 200,
"reason": "Token successfully generated",
"token": "eU1xSFN5Ky92MUt5dmpnT",
"checkout_url": "https://test.theteller.net/checkout/checkout/eU1xSFN5Ky92MUt5dmpnT"
}
这是我得到的重定向http://localhost:8080/payment/www.google.com
问题:如何在响应中重定向到
checkout\u url
?解析JSON,从中获取值,使用header
函数向客户端发送Location
header…好吧,这很好,唯一的问题是我得到了一个添加到重定向链接的原始文件路径。示例:-{redirect link}我们这里不是千里眼,所以你需要向我们展示你当时到底做了什么。请我添加了一段代码,检查请求是否成功并重定向,出于这个问题的目的,我将重定向到谷歌,当这行得通时,我可以解码json并获得重定向url