php - Use file_get_contents for connet to url with another server -
sorry bad english. website server ip cannot connect payment bank website , script is:
$client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl');
i need connect server, connect bank website.
for server use script proxy:
<?php header('content-type: text/xml'); $file = file_get_contents('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl');echo $file;?>
in seccond server & use second directadmin host domain orginal url in orginal script:
$client = new nusoap_client('http://seccond-host-domain.com');
but gives many errors because script transfer file , think ideas can't this.
the error is:
http error: server failed send headers
some should use curl , 1 use proxy server. have tried , can not resolve problem. i'm out of ideas. please see detailed , clear instructions
my full script is:
<?php if ($_post['payrequestbutton'] == 'settel') { settel_procces();} function settel_procces(){ require_once("./lib/nusoap.php"); $client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl'); $namespace='http://interfaces.core.sw.bps.com/'; $terminalid = $_post['termid']; $username = $_post['username']; $userpassword = $_post['password']; $orderid = $_post['orderid']; $settlesaleorderid = $_post['orderid']; $settlesalereferenceid = $_post['referenceid']; // check error $err = $client->geterror(); if ($err) { echo '<h2>constructor error</h2><pre>' . $err . '</pre>'; die(); } $parameters = array( 'terminalid' => $terminalid, 'username' => $username, 'userpassword' => $userpassword, 'orderid' => $orderid, 'saleorderid' => $settlesaleorderid, 'salereferenceid' => $settlesalereferenceid); // call soap method $result = $client->call('bpsettlerequest', $parameters, $namespace); // check fault if ($client->fault) { echo '<h2>fault05</h2><pre>'; print_r($result); echo '</pre>'; die(); } else { $resultstr = $result; $err = $client->geterror(); if ($err) { // display error echo '<h2>error</h2><pre>' . $err . '</pre>'; die(); } else { // update table, save settle status // note: successful settle means sale settled. //echo "<script>alert('settle response : " . $resultstr . "');</script>"; // echo "settle response : " . $resultstr; }// end display result }// end check errors echo " <br><br><br><br><br><br><br> <center> <table dir=rtl width=400 height=40 cellpadding=2 cellspacing=1 bgcolor='#7c931a'><tr><td bgcolor='#f6fff0' style='font-family:tahoma; font-size:12px; color:#738b3b; ' align=center > <br> <span style='font-size:14px;' >".check_mellat_state_error($resultstr)." <br><br> <a href='default.php'>صفحه اصلي</a> <br><br> </td></tr></table> </center> ";} function check_mellat_state_error($rescode){ switch($rescode){ case '0' : $prompt="تراکنش با موفقيت انجام شد."; break; case '11' : $prompt="شماره کارت نامعتبر است."; break; case '12' : $prompt="موجودي کافي نيست."; break; case '13' : $prompt="رمز نادرست است."; break; case '14' : $prompt="تعداد دفعات وارد کردن رمز پيش از حد مجاز است."; break; case '15' : $prompt="کارت نامعتبراست."; break; case '17' : $prompt="کاربر از انجام تراکنش منصرف شده است."; break; case '18' : $prompt="تاريخ انقضاي کارت گذشته است."; break; case '111' : $prompt="صادرکننده کارت نامعتبر است."; break; case '112' : $prompt="خطاي سوييچ صادرکننده کارت"; break; case '113' : $prompt="پاسخ از صادرکننده کارت دريافت نشد."; break; case '114' : $prompt="دارنده کارت مجاز به انجام اين تراکنش نيست."; break; case '21' : $prompt="پذيرنده نامعتبر است"; break; case '22' : $prompt="ترمينال مجوز ارائه سرويس درخواستي را ندارد."; break; case '23' : $prompt="خطاي امنيتي رخ داده است."; break; case '24' : $prompt="اطلاعات کاربري پذيرنده نامعتبر است.."; break; case '25' : $prompt="مبلغ نامعتبر است."; break; case '31' : $prompt="پاسخ نامعتبر است."; break; case '32' : $prompt="فرمت اطلاعات وارد شده صحيح نيست."; break; case '33' : $prompt="حساب نامعتبر است."; break; case '34' : $prompt="خطاي سيستمي"; break; case '35' : $prompt="تاريخ نامعتبر است."; break; case '41' : $prompt="شماره درخواست تکراري است."; break; case '42' : $prompt="تراکنش sale يافت نشد."; break; case '43' : $prompt="قبلا درخواست verify داده شده است."; break; case '44' : $prompt="درخواست verify يافت نشد."; break; case '45' : $prompt="تراکنش settle شده است."; break; case '46' : $prompt="تراکنش settle نشده است."; break; case '47' : $prompt="تراکنش settle يافت نشد."; break; case '48' : $prompt="تراکنش reverse شده است."; break; case '49' : $prompt="تراکنش refund يافت نشد."; break; case '412' : $prompt="شناسه قبض نادرست است."; break; case '413' : $prompt="شناسه پرداخت نادرست است."; break; case '414' : $prompt="سازمان صادرکننده قبض نامعتبر است."; break; case '415' : $prompt="زمان جلسه کاري به پايان رسيده است."; break; case '416' : $prompt="خطا در ثبت اطلاعات"; break; case '417' : $prompt="شناسه پرداخت کننده نامعتبراست."; break; case '418' : $prompt="اشکال در تعريف اطلاعات مشتري"; break; case '419' : $prompt="تعداد دفعات ورود اطلاعات از حد مجاز گذشته است."; break; case '421' : $prompt="ip نامعتبر است"; break; case '51' : $prompt="تراکنش تکراري است."; break; case '52' : $prompt="سرويس درخواستي موجود نمي باشد."; break; case '54' : $prompt="تراکنش مرجع موجود نيست."; break; case '55' : $prompt="تراکنش نامعتبر است."; break; case '61' : $prompt="خطا در واريز"; break; default : $prompt="خطاي نامشخص"; break; } return 'کد ' . $rescode .' : '. $prompt; }?>
maybe allow-url-fopen disabled?
maybe fetching https via ssl doesnt work right when using file_get_contents()? far know, method simple/dumb url fetcher
you try setting context file_get_contents call, proper headers. see http://php.net/manual/en/function.file-get-contents.php#example-2320 start.
if need more proper url fetching control (and if need fetch https pages), see php manual pages on curl functions. @marc b has link comment above, may not need proxy parts (you might, may depend on webhost's setup)
there more suggest if had more details on happening, or more detail on error.
Comments
Post a Comment