PDA

View Full Version : ارتباط با سیستم شاپرک



mostafa612003
شنبه 17 اسفند 1392, 09:15 صبح
با سلام
قبلا که سیستم شاپرک بانکها فعال نبود مشکلی نداشتم و پرداختها انجام می شد
ولی الان که دو تا آدرس را برای شاپرک تغییر دادم این پیغام خطا نمایش داده میشود
درگاه بانکم هم بان تجارت هستش.
wsdl error: Getting https://kica.shaparak.ir/epay/services/merchant.wsdl - HTTP ERROR: cURL ERROR: 28: connect() timed out!
url: https://kica.shaparak.ir:443/epay/services/merchant.wsdl
http_code: 0
header_size: 0
request_size: 0
filetime: -1
ssl_verify_result: 0
redirect_count: 0
total_time: 0
namelookup_time: 0.020057
connect_time: 0
pretransfer_time: 0
size_upload: 0
size_download: 0
speed_download: 0
speed_upload: 0
download_content_length: 0
upload_content_length: 0
starttransfer_time: 0
redirect_time: 0

us1234
شنبه 17 اسفند 1392, 10:59 صبح
از soap استفاده میکنید یا NuSoap ؟

آدرس وب سرویس را چرا شما داخل Curl قرار داده اید ؟
لطفا کد را بذارید ببنیم چکار کردید.

mostafa612003
شنبه 17 اسفند 1392, 11:41 صبح
سلام
این کد من هستش:
<?php

include_once 'lib/nusoap.php';

$ns = 'http://tejarat/paymentGateway/definitions';

$wsdl = 'https://kica.shaparak.ir/epay/services/merchant.wsdl';

if (isset($_POST['resultCode'])) {

$resultCode = $_POST['resultCode'];
$referenceId = isset($_POST['referenceId']) ? $_POST['referenceId'] : 0;
$paymentId = isset($_POST["paymentId"]) ? $_POST['paymentId'] : 0;

if (($resultCode == 100)) {

try {
$client = new nusoap_client($wsdl, true);
// $client = new SoapClient($wsdl);


$err = $client->getError();
if ($err) {

echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
}

$params = array(
"verifyRequest" => array(
'merchantId' => 'A346', // change with your test code and later with your production code
'referenceNumber' => $referenceId)

);

$client->setUseCurl(0);
$client->soap_defencoding = 'UTF-8';
$client->decode_utf8 = true;

$client->setEndpoint($wsdl);
$result = $client->call("verify", $params);


if ($client->fault) {

echo '<h2>Fault (Expect - The request contains an invalid SOAP body)</h2><pre>';
print_r($result);
echo '</pre>';
} else {
$err = $client->getError();
if ($err) {
{
echo '<h2>Error</h2><pre>' . $err . '</pre>';
}
}
else
if ($result <0)
{
echo '<h2>Error: negative return</h2><pre>' . $result . '</pre>';
}
else {
// this is good return and now the $result has the amount charges
// do what you need to do for a good result
echo '<h2 align="center">درخواست شما با موفقيت به انجام رسيد</h2>';

?>

<script language=javascript>

window.location="?pg=internal2&cn=hazineh/formv&r=<?php echo $referenceId;?>&paymentId=<?php echo $paymentId;?>&amount=<?php echo $amount;?>";
</script>
<?php

}
}
/* Debug code
echo '<h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '</pre>';
*/
} catch (Exception $ex) {

echo '<h2>Error</h2><pre>' . $ex->getMessage() . '</pre>';
}
}
else { // error in transaction
echo "<h2 align=center>";
switch ($resultCode) {
case 110:
echo " انصراف دارنده کارت";
break;
case 120:
echo " موجودی کافی نیست";
break;
case 130:
case 131:
case 160:
echo " اطلاعات کارت اشتباه است";
break;
case 132:
case 133:
echo " کارت مسدود یا منقضی می باشد";
break;
case 140:
echo " زمان مورد نظر به پایان رسیده است";
break;
case 200:
case 201:
case 202:
echo " مبلغ بیش از سقف مجاز";
break;
case 166:
echo " بانک صادر کننده مجوز انجام تراکنش را صادر نکرده";
break;
case 150:
default:
echo " خطا بانک $resultCode";
break;

}
echo "</h2>";

}

}
else
echo " خطا بانک resultCode not returned";

?>

us1234
شنبه 17 اسفند 1392, 17:18 عصر
تمامی قسمت ها بدون مشکل میباشد بجز قسمت پارامتر و صدا زدن تابع وریفای . به این شکل تغییر بدید.



$params = array(
'merchantId' => 'A346',
'referenceNumber' => $referenceId
);
$result = $client->call('verifyRequest', $params);

mostafa612003
شنبه 17 اسفند 1392, 22:11 عصر
ممنون.تغییرات را اعمال کردم ولی این پیغام ظاهر شد:
Error

operation verify not present in WSDL.

mostafa612003
یک شنبه 18 اسفند 1392, 14:58 عصر
کسی نمی دونه مشکل از کجاست؟

us1234
یک شنبه 18 اسفند 1392, 15:25 عصر
ببین وب سرویس متد وریفای نداره من که قبلا گفتم این متد را باید استفاده کنی !



$result = $client->call('verifyRequest', $params);

mostafa612003
یک شنبه 18 اسفند 1392, 20:27 عصر
خب من هم از این متد استفاده کردم
ولی پیغام خطای این ظاهر شد
Error

operation verify not present in WSDL.

من وقتی از آدرس wsdl قبلی استفاده می کنم منظورم وقتی که تحت سیستم شاپرک نبود، مشکلی ندارم و پرداخت انجام میشه
ولی وقتی آدرس wsdl جدید را جایگزین می کنم که مربوط به سیستم شاپرک هست، این پیغام ظاهر میشه

mostafa612003
دوشنبه 19 اسفند 1392, 21:36 عصر
کسی نمی دونه مشکل از کجاست؟

ali2k5
پنج شنبه 22 اسفند 1392, 01:27 صبح
این مشکل ربطی به کد برنامه نداره ، خطای اتصال هاست شما با سرور وب سرویس بانک هست و یک مشکل ارتباطی هست.
راه حلش تغییر هاست به سرور داخل ایران است یا یک سرور دیگر در خارج کشور.

mostafa612003
پنج شنبه 22 اسفند 1392, 10:27 صبح
یعنی هاست من نمی تونه مشکل را حل کنه و فقط با تغییر هاست مشکل حل میشه؟
خب من امکان تغییر هاست ندارم.تازه از کجا معلومه که هاستمو تغییر دادم مشکل حله بشه.
هاست من برای پارس آنلاینه

mostafa612003
جمعه 23 اسفند 1392, 11:28 صبح
کسی نمی دونه مشکل از کجاست؟

mostafa612003
شنبه 24 اسفند 1392, 07:06 صبح
کسی نمی دونه مشکل از کجاست؟

mostafa612003
پنج شنبه 23 مرداد 1393, 10:00 صبح
سلام
تا حالا کسی برای ارتباط با بانک ، از سیستم شاپرک استفاده نکرده ؟

mostafa612003
پنج شنبه 23 مرداد 1393, 10:05 صبح
سلام
تا حالا کسی برای ارتباط با بانک ، از سیستم شاپرک استفاده نکرده ؟