رفتن به مطلب

افزونه درگاه پرداخت بانک تجارت برای پرستاشاپ 1.4 و 1.5


jahromy

پست های پیشنهاد شده

سلام مجدد

با کمک یکی از دوستان یک برنامه برای ارتباط با بانک تجارت - البته چون در مرحله آزمایشی هستیم برای درگاه سباپردازش بانک تجارت نوشتم - حالا مشکلی که هست با ارسال مقادیر، درگاه اعلام خطا می کند

 

ممکنه بررسی بفرمایید مشکل از کجا هست.

امیدوارم به امید خدا و یاری شما اولین ماژول بانک تجارت مختص پرستاشاپ را انتشار بدهم.

 

tb.zip

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

";
$form .= "action\" enctype=\"application/x-www-form-urlencoded\" >\n";
$form .= "mercantId\" />\n";
$form .= "amount\" />\n";
$form .= "paymentId\" />\n";
$form .= "revertURL\" />\n";
$form .= "customerId\" />\n";
$form .= "";
$form .= "

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

شما باید سابمیت فرم رو در انتها قرار بدید و همینطور یک تایم 10 ثانیه ای بذارید تا مطمئن بشید همه پارامترهای فرم لود شدند.

نکته بعدی هم استفاده از / هست که توصیه میکنم استفاده نکنید.

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

برای بستن تگ ها از جمله تگ فرم بایستی باشه جایگزین یا راهی بجز / هست که بشه بکار برد؟

یک سری تغییراتی روی فایل ها مطابق با راهنمای بانک انجام دادم که پیوست پست قبلی را بروز کردم

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

این فایل های:

nusoap.php

 

nusoapmime.php

 

class.soap_transport_http.php

 

 

و غیره که به همراه نمونه بانک وجود داره کاربردشون چی هست ؟ چطور می توانم ازشون استفاده کنم

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

";
$form .= "action\" enctype=\"application/x-www-form-urlencoded\" >\n";
foreach ( $this->style as $key=>$val ) {
if( $val != '' ) {
$form .= "\n";
}
}
$form .= "merchantId\">\n";
$form .= "amount\">\n";
$form .= "paymentId\">\n";
$form .= "revertURL\">\n";
$form .= "\n";
$form .= "";
$form .= "

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

در مورد / بهتره برای تگ ها ابتدا از " و سپس از ' و یا ` استفاده کنید. به این ترتیب تداخلی نخواهید داشت.

متد دیگه ای برای پست نیست. شما باید مقادیر ارسالی رو با استفاده از فایرباگ برای فایرفاکس یا ابزار دیباگ در کروم تست کنید تا ببینید واقعن عبارات معنا داری رو پست میکنید

موفق باشید

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

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

ممکنه کمی راجع به متغییرها راهنمایی بفرمایید:

1) متغییر یا پارامتر مربوط به مبلغ کل در پرستاشاپ چه نام دارد؟

2) شناسه تراکنش paymentId توسط پرستا ایجاد می شود یا در زمان اجرا شدن ماژول تجارت بایستی ساخته بشود؟

3) پارامتر اختیاری customersId هم دارم که شناسه مشتری هست اگر برای مشتریان فروشگاه شناسه از قبل وجود دارد نام متغییر آن چیست؟

 

از توجه شما متشکرم.

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

خیر از اون طریق نمیتونید

شما میتونید با تابع print_r متغیرهایی رو به صورت آرایه چاپ کنید البته فقط برای تست نه برای استفاده در ماژول

برای نسخه ۱.۵ میتونید با دستور زیر یک متغیر بسازید که همه نیازهای شما رو خوهد داشت

$context = Context::getContext()

حالا این متغیر رو با دستوری که گفتم چاپ کنید تا اطلاعات زیادی به دست بیارید

مثال:

$context->cookie->id_customer

در این موارد بیشتر از این نمیشه کمک کرد چون دنیای وسیعی هست و نیاز به زمان زیادی داره

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

  • 2 weeks later...

سلام

 

درگاه تجارت تا حدی آماده شده و روی هاست لوکال تا پرداخت به خوبی پیش می رود.

در هاستینگ سایتم که ماژول را بارگذاری نمودم در قسمت مدیریت ماژول ها با پیغام زیر مواجه می شوم. علت چیست. و چطور می شه این خطا را برطرف کرد؟ (این مشکل در لوکال هاست ویندوز وجود ندارد. چرا؟)

 

 

Fatal error: Cannot redeclare timestamp_to_iso8601() (previously

declared in /shop/modules/buyster/lib/nusoap.php:904) in /shop/modules/tejaratpayment/nusoap.php on line 925

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

بله. برای ذخیره و بازیابی رسید کد تراکنش ها یک جدول در بانک اطلاعاتی ایجاد می نماید.

در صفحه مدیریت ماژول ها قسمت ماژول های پرداخت به بعد بازگذاری نشده و خطای فوق را نمایش ی دهد

در سرور مجازی ویندوز بخوبی عمل می کند و هیچ خطایی تا اتمام پرداخت ندارم

در فروشگاه هاستم هم در پرداخت مشکلی نیست و صرفا مدیریت دچار مشکل هست

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

		$sQuery = "CREATE TABLE `" . _DB_PREFIX_ . "module_tejaratpayment` (

		`id` INT(10) NOT NULL AUTO_INCREMENT,
		`res_num` CHAR(20) NOT NULL,
		`ref_num` CHAR(20) NOT NULL,
		`total_amount` INT NOT NULL,
		`payment` INT NOT NULL DEFAULT 0,
		`time_start` INT(12) NOT NULL,
		`cart_id` INT(10) NULL,
		`customer_id` INT(10) NULL,
		`order_id` INT(10) NULL,
		primary key(id),
		unique(res_num),
		index(ref_num)) ENGINE = MYISAM COLLATE utf8_general_ci";
		$db->Execute($sQuery);

 

شماره خطا تغییر کرده!!


Fatal error: Cannot redeclare timestamp_to_iso8601() (previously declared in /../../public_html/shop/modules/buyster/lib/nusoap.php:904) in/../../public_html/shop/modules/tejaratpayment/nusoap.php on line 934

 

چرا در لوکال هاست همچین خطایی برای جدول دیتابیس نمی دهد؟

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

عملکرد فایل nusoap.php دقیقا چی هست.

الان دستور اینکلود این فایل را در فایل payment ماژول حذف کردم. خواستم بدون چه مشکلاتی ممکنه ایجاد کنه؟

1) البته خطا هم در بخش مدیریت دیگر نمایش نمی یابد و ماژول ها کامل لیست می شوند.

2) پرداخت در سایت هم تقریبا به خوبی صورت می گیرد.

 

 

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

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

از خطایی که داده درسته که داره از Soap موجود استفاده می کند؟ و آیا حذف فایل soap دیگر، ایجاد اشکال نخواهد نمود؟

 

راستی درگاه را تست کردین.

خیلی دوست دارم نظر استادانه شما را بدانم

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

  • 3 weeks later...

با سلام

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

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

اشکالات را لطفا بشکل واضح بیان بفرمایید تا برطرف نمایم.

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

  • 3 months later...

با سلام

به نظر شما نتیجه دریافتی فایل ولیدیشن از طریق فایل پایمنت که در زیر عنوان شده صحیح است؟

نباید نتیجه از هر تابع true یا false باشد ؟

 

- فایل Validation


		$searchRefID = $tejaratpayment->searchRefID($RefID);
		$searchpaymentId = $tejaratpayment->searchpaymentId($paymentId);

 

- فایل Payment


	public function searchpaymentId($paymentId) 
	{
		$db = Db::getInstance();
		$result = $db->ExecuteS("SELECT * FROM `" . _DB_PREFIX_ . "module_tejaratpayment` WHERE `pay_id` = '$paymentId'");
		return $result;
	}

	public function searchRefID($RefID) 
	{
		$db = Db::getInstance();
		$result = $db->ExecuteS("select * FROM `" . _DB_PREFIX_ . "module_tejaratpayment` WHERE ref_id = '$RefID'");
		return $result;
	}


 

- نتیجه :


Array
(
)

Array
(
   [0] => Array
       (
           [id] => 27
           [pay_id] => 777138086564
           [ref_id] => 
           [total_amount] => 462
           [payment] => 0
           [time_start] => 1380865644
           [cart_id] => 0
           [customer_id] => 0
           [order_id] => 
       )

)

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

ممکن است در رابطه با عملکرد این تابع و اینکه چه نتیجه ای را برگشت می دهد کمی توضیح دهید.

 

	protected function verifyTrans() {
		if (empty($this->_RefID) or empty($this->_MerchentID)) {
			return false;
		}

		//die($this->_WebMethodURL."-".'wsdl');  	
		//$soapClient = new soapclient($this->_WebMethodURL,'wsdl');
		$soapclient = new nusoap_client('http://tmerchant.tejaratbank.net:9086/paymentGateway/services/merchant.wsdl','wsdl');

		$soapProxy = $soapclient->getProxy();
		$result = false;

		for ($a = 1; $a < 7; ++$a) 
		{
		$result = $soapProxy->verifyTransaction($this->_RefID, $this->_MerchentID);
			if ($result != false) 
			{
				break;
			}
		}
		return $result;
		}

 

 

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

totalAmount = verifyWebServiceMethod ( merchantId, referenceNumber );

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

من با متدهای این بانک آشنا نیستم

متد search رو برای چی استفاده می کنید؟

الگوریتم به این صورت هست که بعد از برگشت از بانک وریفای انجام بشه و اگر بانک متد ستل داره اون هم انجام بشه و با استفاده از متد validateOrder از ماژول که از والدش به ارث میبره سفارش ثبت بشه

 

Sent from my LT25i using Tapatalk 4

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

مهمان
این موضوع برای عدم ارسال قفل گردیده است.


  • کاربران آنلاین در این صفحه

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • اضافه کردن...