You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP调用大通银行API无法触发重定向问题求助

问题分析与解决方案

核心误区:服务器端CURL请求≠客户端浏览器跳转

你当前用PHP CURL在服务器端发起请求,CURL会自动跟随重定向(因为开启了CURLOPT_FOLLOWLOCATION),最终拿到的是重定向后的页面内容,而非触发用户浏览器跳转。API文档中说的“发送GET请求后跳转到官网”,指的是让用户浏览器直接发起该GET请求,不是服务器端用CURL代理请求。

代码问题修复与调试方案

1. 修正redirect_uri参数格式

API要求redirect_uri必须是完整的HTTPS URL,你当前写的developer.chase.com缺少协议头,可能导致API不返回重定向响应:

$url = 'https://apidemo.chase.com/api/v1/solution/accounts-and-data-sharing/aggregator-oauth/v1/mobile/authorize?response_type=code&client-id=XYZAB12321VBF&redirect_uri=https://developer.chase.com&scope=aggregator&state=Union';

2. 移除可能干扰重定向的请求头

你设置了accept: application/json,若API接收到该头时会返回JSON而非重定向响应,建议注释或删除这一行:

$header_auth = array(
    // 'accept: application/json', // 移除该行
    'playground-id-token: ' . $chToken
);

3. 正确触发客户端跳转的方式

如果需求是引导用户跳转到大通银行授权页面,无需用CURL,直接输出HTTP重定向头即可:

<?php
include('global_variables.php');
$authUrl = 'https://apidemo.chase.com/api/v1/solution/accounts-and-data-sharing/aggregator-oauth/v1/mobile/authorize?response_type=code&client-id=XYZAB12321VBF&redirect_uri=https://developer.chase.com&scope=aggregator&state=Union';
header("Location: $authUrl");
exit;
?>

4. 调试CURL重定向响应

若需用CURL排查问题,关闭自动跟随重定向,查看原始响应的状态码和Location头:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); // 关闭自动跟随
$resp = curl_exec($ch);
// 获取响应状态码
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo "状态码: $statusCode\n";
// 打印响应头查看Location字段
echo "响应头:\n$header";

总结

  • 引导用户授权时,直接让浏览器跳转目标URL,无需服务器端CURL代理;
  • 确保redirect_uri是完整的HTTPS URL,符合API要求;
  • 调试时关闭自动跟随重定向,确认API是否返回了重定向指令。

内容的提问来源于stack exchange,提问作者Mauro Ds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 01:55:20