PDA

View Full Version : نیازمند ماژول بانک پارسیان برای سبد خرید



Mahdic
پنج شنبه 19 اسفند 1389, 19:59 عصر
با سلام و درود خدمت همه برنامه نویسان محترم

ضمن تشکر از انجمن خوبتون به عنوان اولین پست توی انجمن یک سوال از محضر دوستان دارم

من از بانک پارسیان مرچنت کرفتم برای سایتم که سبد خرید هست برای پرداخت آنلاین
خود سبد خرید یک ماژول برای بانک پارسیان داره ولی فکر کنم قدیمی هست و یا .. نمی دونم خلاصه تو مرحله آخر که می خواد بره به بانک صفحه سفید می شه و دیگه کاری نمی کنه

توی ارور لاگ که می ریم از خط 48 ایراد گرفته که مربوط به کلاینت سوآپ است ارورش اینه
PHP Warning: SoapClient::SoapClient() expects parameter 2 to be array, string given in /home/public_html/shop/modules/payment/parsian.php on line 48


خط 48 اینه

$soapclient = new soapclient('https://www.pec24.com/pecpaymentgateway/eshopservice.asmx?wsdl','wsdl');

خود فایل ماژول هم اینه
http://rapidshare.com/files/451908977/parsian.php



دوستان لطف کنید راهنمایی کنید چیکار کنم یا اگه ماژولی که دارم ز کل خرابه از کجا می تونم ماژول سالم را تهیه کنم

Mahdic
پنج شنبه 19 اسفند 1389, 20:11 عصر
این هم ماژول خامی هست که خود بانک داده

http://rapidshare.com/files/451910473/Technical_All.zip

Keramatifar
پنج شنبه 19 اسفند 1389, 22:47 عصر
دوست عزیز
برای راحت تر شدن کارت می تونی از NuSoap Wizard در نرم افزار NuSphere phpED استفاده کنی، خودش به وب سرویس وصل میشه و فانکشن های لازم رو برات می سازه

Mahdic
جمعه 20 اسفند 1389, 11:14 صبح
دوست عزیز
برای راحت تر شدن کارت می تونی از NuSoap Wizard در نرم افزار NuSphere phpED استفاده کنی، خودش به وب سرویس وصل میشه و فانکشن های لازم رو برات می سازه


درود


ممنون از راهنمایی شما

اما متاسفانه بنده تخصصی در این رابطه ندارم ، خود شما یا دیگر دوستان اگه لطف کنند این کار را انجام بدهند از خجالتشون در می یام

با تشکر

hamed-php
شنبه 21 اسفند 1389, 10:44 صبح
سلام

در خصوص پرداخت نقدی از درگاه بانک پارسیان که دوست خوبمون زحمت کشیدند فایلشو قرار دادند ، قدم به قدم باید چه کاری کرد؟

برای زبان PHP :

چه اطلاعاتی از فروشگاه باید به بانک ارسال شود؟

و در ادامه چه چیزهایی لازم است . مثلاٌ :
1- پس از پايان فاز انتخاب کالا، مشتري آمادگي خود را براي پرداخت پول از طريق حساب بانک پارسيان اعلام ميکند، در اين زمان eShop متد زير را از وب سرويس دروازه پرداخت صدا ميزند:

PinPaymentRequest(pin,amount,orderId,callbackUrl,r ef authority,ref status)
Pin (string): پين فروشنده
Amount (integer): رقم پرداخت
OrderId (integer): کد عمليات
CallbackUrl (string): صفحه بازگشت مشتري، پس از انجام عمل پرداخت
Authority (long integer): کد عملياتي دروازه پرداخت که يک کد تصادفي و واحد براي تمامي عمليات آنلاين با
سايتها ميباشد، فروشگاه آنلاين ملزم به ثبت و نگهداري اين کد ميباشد.
Status (byte): کد وضعيت
0: موفق
20, 22: پين فروشنده درست نميباشد
30: عمليات قبلا با موفقيت انجام شده است
34: شماره تراکنش فروشنده درست نميباشد

Mahdic
یک شنبه 22 اسفند 1389, 10:20 صبح
تو این همه برنامه نویس تو این انجمن بعنی کسی نیست بتونه زحمت اصلاح این ماژول آماده را بکشه ، هزینه اش هم تقدیم می شه

Mahdic
دوشنبه 23 اسفند 1389, 15:46 عصر
?.....................?

SilverLearn
شنبه 07 خرداد 1390, 23:15 عصر
سلام دوستان من هم با همین ارور مواجه شدم و نمی دونم چیکار کنم....
بچه ها خیلی بهش نیاز دارم کسی نیست درستش کنه....

SilverLearn
دوشنبه 09 خرداد 1390, 19:38 عصر
آقا یعنی کسی نیست به مشکل ما رسیدگی کنه

آقای Mr.Keramati (http://barnamenevis.org/member.php?3349-Mr.Keramati) شما یکاری کنید !!!!

امیـرحسین
دوشنبه 09 خرداد 1390, 20:57 عصر
اون نمونه‌ای که بانک میده کار نمیکنه. پارامتر دوم تابع رو حذف کنید. به این شکل:

$soapclient = new soapclient('https://www.pec24.com/pecpaymentgateway/eshopservice.asmx?wsdl');
در ادامه‌ی نمونه‌ی بانک دو تابع getError و getProxy هست که اونها دیگه وجود ندارند و باید حذف شه.
و فراخوانی توابع هم دیگه با متد call انجام نمیشه باید از متد call__ استفاده بشه. مثلا:

$soapclient = new soapclient('https://www.pec24.com/pecpaymentgateway/eshopservice.asmx?wsdl');
if($soapcleint) {
$params = array(
'pin' => ... , // this is our PIN NUMBER
'amount' => $amount,
'orderId' => $orderId,
'callbackUrl' => $callbackUrl,
'authority' => $authority,
'status' => $status
);
$res = $soapclient->__call('PinPaymentRequest', array($params));
}
یک نکته‌ی دیگه که باهاش مشکل داشتم این بود که orderID از نوع عددی هست و محدودیت داره. از اعداد کمتر از ۱۰ رقم استفاده کنید.

SilverLearn
دوشنبه 30 خرداد 1390, 14:53 عصر
سلام دوستان من كارهايي كه اقا امير حسين گفته بودن رو انجام دادم ولي هنوز به سايت بانك نميره و ارور unsuccessfull ميده
حالا چيكار كنم
كسي نيست يه كمكي به ما بكنه؟

SilverLearn
سه شنبه 07 تیر 1390, 17:25 عصر
سلام
من فايل رو با موفقيت ويرايش كردم فقط يك مشكل براي فايل وجود داره كسي مي تونه كمك كنه ...
در كد زير خط هاي 72 و 73 مشكل دارند كسي مي تونه درستش كنه....

<?php
/************************************************** ***************************
* *
* *
* Copyright (c) 2008 . All rights reserved. *
* *
************************************************** ***************************/
// Parsian payment module
// http://www.pec.ir

/**
* @connect_module_class_name CPARSIAN
*
*/

class CPARSIAN extends PaymentModule{

function _initVars(){

$this->title = CPARSIAN_TTL;
$this->description = CPARSIAN_DSCR;
$this->sort_order = 1;
$this->Settings = array(
"CONF_PAYMENTMODULE_PARSIAN_MERCHANT_ACCOUNT",
"CONF_PAYMENTMODULE_PARSIAN_RIAL_CURRENCY"
);
}

function after_processing_html( $orderID )
{


$order = ordGetOrder( $orderID );
if ( $this->_getSettingValue('CONF_PAYMENTMODULE_PARSIAN_RIAL_ CURRENCY') > 0 )
{
$PAcurr = currGetCurrencyByID ( $this->_getSettingValue('CONF_PAYMENTMODULE_PARSIAN_RIAL_ CURRENCY') );
$PAcurr_rate = $PAcurr["currency_value"];
}
if (!isset($PAcurr) || !$PAcurr)
{
$PAcurr_rate = 1;
}
$order_amount = round(100*$order["order_amount"] * $PAcurr_rate)/100;
$modID = $this ->get_id();


$soapclient = new soapclient('https://www.pec24.com/pecpaymentgateway/eshopservice.asmx?wsdl');


if (!$soapclient) {
$error .= $err . "<br />" ;
echo $error ;
} else {
$amount = $order_amount; // here is the posted amount
//$orderID = $_POST["ResNum"]; // this function is internal which will get order id
$authority = 0 ; // default authority
$status = 1 ; // default status
$callbackUrl = CONF_FULL_SHOP_URL."?parsian&modID=$modID&pay=1";
$pin = $this->_getSettingValue('CONF_PAYMENTMODULE_PARSIAN_MERCH ANT_ACCOUNT');

$params = array(
'pin' => $pin , // this is our PIN NUMBER
'amount' => $amount,
'orderId' => $orderID,
'callbackUrl' => $callbackUrl,
'authority' => $authority,
'status' => $status
);
$sendParams = array($params) ;
$res = $soapclient->__call('PinPaymentRequest', $sendParams);

$authority = $res['authority'];
$status = $res['status'];

if ( ($authority) and ($status==0) ) {
// this is a succcessfull connection
db_query( "update ".ORDERS_TABLE." set refnum='".$authority."' where orderID=".$orderID);
$parsURL = "https://www.pec24.com/pecpaymentgateway/?au=" . $authority ;
header("Location:". $parsURL) ;
exit() ;
die() ;
return;

} else {
// this is unsucccessfull connection
echo "<p align=center>";
echo "err<br />" ;
echo "$authority <br />" ;
echo "$status <br />" ;
echo "$orderID <br />" ;

echo "</p>";

}

}
echo "UNSUCCSESSFUL!";

}

function _initSettingFields(){

$this->SettingsFields['CONF_PAYMENTMODULE_PARSIAN_MERCHANT_ACCOUNT'] = array(
'settings_value' => '',
'settings_title' => CPARSIAN_CFG_MERCHANT_ACCOUNT_TTL,
'settings_description' => CPARSIAN_CFG_MERCHANT_ACCOUNT_DSCR,
'settings_html_function' => 'setting_TEXT_BOX(0,',
'sort_order' => 1,
);

$this->SettingsFields['CONF_PAYMENTMODULE_PARSIAN_RIAL_CURRENCY'] = array(
'settings_value' => '0',
'settings_title' => CPARSIAN_CFG_RIAL_CURRENCY_TTL,
'settings_description' => CPARSIAN_CFG_RIAL_CURRENCY_DSCR,
'settings_html_function' => 'setting_CURRENCY_SELECT(',
'sort_order' => 1,
);
}
}
?>

hamed-php
چهارشنبه 08 تیر 1390, 11:44 صبح
سلام


من فايل رو با موفقيت ويرايش كردم فقط يك مشكل براي فايل وجود داره كسي مي تونه كمك كنه ...
در كد زير خط هاي 72 و 73 مشكل دارند كسي مي تونه درستش كنه....


آیا نمونه سایتی که به درگاه وصل بشه رو دارید تا ببینیم؟

mehdi4467
دوشنبه 14 شهریور 1390, 17:48 عصر
سلام
من کد ها را اصلاح کردم ولی الان خطای زیر را می دهد:


Fatal error: Cannot use object of type stdClass as array in line 72لطفا راهنمایی کنید.
ممنون

arash_hemmat
دوشنبه 07 آذر 1390, 10:50 صبح
در php5 به بعد بهتره از nusoap استفاده نکنید و از soap client خود php بهره ببرید، به این نمونه کد دقت کنید:


try {
$client = new SoapClient("https://www.pec24.com/pecpaymentgateway/eshopservice.asmx?wsdl");
$result=$client->__soapCall('PinPaymentRequest',array(array(
'pin' => 'xxxxxxxxxxxxxx',
'amount' => 10000,
'orderId' => 123456,
'callbackUrl' => 'http://examlpe.com/callback',
'authority' => 0,
'status' => 1
)));

} catch (Exception $e) {
print_r($e->getMessage());
}

در این روش شما نیازی به کلاسهایی مثل nusoap ندارید.