我需要将数据发布到支付服务(payment.com),并将数据重定向到payment.com(以填写信用卡号码等)
传统的做法是:
<form id="form" action="payment.com" method="POST">
</form>
<script type="text/javascript">
document.getElementById('form').submit();
</script>
但我想通过控制器
完成,而不是通过表单提交,因此无法更改任何数据。
这是我的控制器方法,我尝试了两种方法:redirect()
和Guzzle
重定向()
到包含post数据的url,但我得到“此路由不支持GET方法。支持的方法:post。”
public function postToPaymentServer(Request $request)
{
$amount=$request['amount'];
$payment=[
'amount'=>$amount,
'auth-id'=>config('auth-id')
];
return redirect(url('api/payment/server'))->with(compact('payment'));
}
ps.这里我做了一个本地路由来模拟路由/api.php中的payment.com
Route::post('payment/server','PaymentController@server');
public function postToPaymentServer(Request $request)
{
$amount=$request['amount'];
$payment=[
'amount'=>$amount,
'auth-id'=>config('auth-id')
];
$client = new Client();
$response = $client->post('payment.com',[
'body'=>[
'payment'=>$payment,
'allow_redirects' => true
],
]);
return $response;
}
如有任何建议,将不胜感激!
您需要从重定向历史中检索最后一个位置并重定向到此位置。
查看track_重定向选项:
use GuzzleHttp\Client;
use GuzzleHttp\RequestOptions;
$httpClient = new Client();
$response = $httpClient->post(
'http://payment.com',
[
RequestOptions::ALLOW_REDIRECTS => [
'max' => 5,
'track_redirects' => true,
],
RequestOptions::FORM_PARAMS => [
'payment' => $payment,
],
]
);
$lastLocation = end($response->getHeaders()['X-Guzzle-Redirect-History']);
return redirect($lastLocation);
问题内容: 我必须承认我有点困惑…我以前从未做过,而且我显然缺少一些东西 当我通过http.post将数据传递到我的php文件时,我似乎无法收集数据… 有人可以告诉我为什么这行不通吗? FormData会显示在控制台日志中,并且可以确定正在写入文件。但是,看起来好像没有数据传递。 这是在我的php文件中。试图将提交表单中的数据写入文件中(只是测试)。 问题答案: 经过大量研究后,我发现这有点像ph
问题内容: 如何将POST数据发送到PHP中的URL(无表单)? 我将使用它来发送变量以完成并提交表单。 问题答案: 如果您希望将数据从PHP代码本身发布到URL(不使用html表单),则可以使用curl来完成。它看起来像这样: 这会将post变量发送到指定的url,页面返回的内容将在$ response中。
我有一个简单的形式,我想转换成一个PHP后端系统。 现在,此表单有一个提交到URL的操作—URL仅在提交了名为的数据以及正确的信息(已编码的xml)时才接受邀请。 作品:-请注意,输入名称被称为和值包含的已经和它完美的工作。 但是,我希望通过在PHP中移动元素来实现以下目标,因为大量信息都是通过这种方式传递的。 请注意:链接是https,但它在本地不起作用,所以我不得不在CURL中禁用它。 我一直
嘿, 我无法通过querystring将数据发布到action方法,action方法位于我的代码下面的控制器类中。 我键入一个url“http://localhost:53459/api/esb/post/test“发布价值,什么都不会发生 任何帮助都将不胜感激。
DaoCloud 文档后台 DaoCloud 文档采用 Grav CMS,内容通过 Markdown 格式写作,并在 GitHub 上完成版本管理、协作开发等工作。 创建本地环境 下载 Grav 主程序 把 ZIP 包解压缩到您的 weboot 目录, (例如 ~/www/grav-core/) 下载 并解压缩,或者直接克隆, 把 daocloud-docs 覆盖 grav-core 的 user
问题内容: 我有一个名称列表和一些带有产品名称的按钮。当单击其中一个按钮时,列表信息将发送到PHP脚本,但是我无法点击“提交”按钮来发送其值。怎么做?我将代码简化为以下内容: 发送页面: 接收页面:buy.php 除了发送提交按钮值外,其他所有东西都可以正常工作。 问题答案: 按钮名称未提交,因此未设置php 值。如in 评估为false。