为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 PHP 中创建与此 HTML 表单完全相同的脚本?

如何在 PHP 中创建与此 HTML 表单完全相同的脚本?

PHP
慕丝7291255 2022-05-27 14:58:58
我正在尝试创建一个与下面的 HTML 表单相同的 PHP 脚本。最终目标是我可以使用 PHP 脚本自动化表单。现在,我们必须手动填写表格。一开始没问题,但现在我们每个月都必须填写太多次表格。下面的表格有效(如果我填写了正确的商家和票)。但不知何故,我无法创建一个可以做同样事情的 PHP 脚本。<form method="post" action="https://payment.architrade.com/cgi-ssl/ticket_auth.cgi" accept-charset="ISO-8859-1">    <input type="hidden" name="amount" value="100">    <input type="hidden" name="currency" value="DKK">    <input type="hidden" name="merchant" value="INSERT_YOUR_MERCHANT_ID">    <input type="hidden" name="orderid" value="Order_ID-123">    <input type="hidden" name="textreply" value="true">    <input type="hidden" name="ticket" value="1234567890"></form>这是我尝试过的代码(我知道 URL 是错误的,但我使用的是回显服务,所以我可以看到响应):$postData = array(    'amount' => '100',    'currency' => 'DKK',    'merchant' => 'INSERT_YOUR_MERCHANT_ID',    'orderId' => 'Order_ID-123',    'textreply' => 'true',    'ticket' => '1234567890'    );// Setup cURL$ch = curl_init('https://postman-echo.com/post');curl_setopt_array($ch, array(    CURLOPT_POST => TRUE,    CURLOPT_RETURNTRANSFER => TRUE,    CURLOPT_HTTPHEADER => array(        'content-type: application/x-www-form-data'    ),    CURLOPT_POSTFIELDS => json_encode($postData)));// Send the request$response = curl_exec($ch);echo "<br>";echo 'Response: '. $response;echo "<br>";如果您想了解更多有关 API 的信息,可以在此处找到一些信息: https ://tech.dibspayment.com/D2/API/Payment_functions/ticketauthcgi有人可以告诉我我做错了什么吗?
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

2019 年 11 月 30 日更新:


请试试:


$data = array(

    'amount' => '100',

    'currency' => 'DKK',

    'merchant' => 'INSERT_YOUR_MERCHANT_ID',

    'orderId' => 'Order_ID-123',

    'textreply' => 'true',

    'ticket' => '1234567890'

    );


$curl = curl_init();


curl_setopt_array($curl, array(

  CURLOPT_URL => "https://postman-echo.com/post",

  CURLOPT_RETURNTRANSFER => true,

  CURLOPT_ENCODING => "",

  CURLOPT_MAXREDIRS => 10,

  CURLOPT_TIMEOUT => 0,

  CURLOPT_FOLLOWLOCATION => false,

  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,

  CURLOPT_CUSTOMREQUEST => "POST",

  CURLOPT_POSTFIELDS =>$data,

));


$response = curl_exec($curl);

$err = curl_error($curl);


curl_close($curl);


if ($err) {

  echo "cURL Error #:" . $err;

} else {

  echo $response;

///////////////////////////////////////// /////////////////////////


要调试 PHP curl,请运行并提供反馈:


$headers = array(

"Content-Type: application/x-www-form-urlencoded"

);


$data = array(

    'amount' => '100',

    'currency' => 'DKK',

    'merchant' => 'INSERT_YOUR_MERCHANT_ID',

    'orderId' => 'Order_ID-123',

    'textreply' => 'true',

    'ticket' => '1234567890'

    );


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"https://postman-echo.com/post");

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);

curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1000);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_VERBOSE, TRUE);

curl_setopt($ch, CURLOPT_ENCODING , "gzip");

curl_setopt($ch, CURLOPT_USERAGENT,'php');

curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);

$info = curl_getinfo($ch);

$result = curl_exec($ch);


print_r($info );

echo "</br>"; 

print_r($result );  


查看完整回答
反对 回复 2022-05-27
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

您可以使用Guzzle HTTP Client轻松完成此操作。


$client = new GuzzleHttp\Client();

$response = $client->post('https://postman-echo.com/post', [

    'form_params' => [

        'amount' => '100',

        'currency' => 'DKK',

        'merchant' => 'INSERT_YOUR_MERCHANT_ID',

        'orderId' => 'Order_ID-123',

        'textreply' => 'true',

        'ticket' => '1234567890'

    ]

]);

然后,您可以根据需要使用响应。


查看完整回答
反对 回复 2022-05-27
  • 2 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号