PDA

View Full Version : سوال: مشکل در اتصال به درگاه زرین پال



mbasirati
دوشنبه 04 آبان 1394, 09:32 صبح
سلام
پروژه من website هستش. وب سرویس زرین پال رو (https://www.zarinpal.com/pg/services/WebGate/wsdl) به پروژه اد میکنم ولی کدهاشو بازم نمیشناسه:

System.Net.ServicePointManager.Expect100Continue = false;
zarinpal.PaymentGatewayImplementationService zp = new zarinpal.PaymentGatewayImplementationService();
string Authority;


int Status = zp.PaymentRequest("YOUR-ZARINPAL-MERCHANT-CODE", int.Parse(txtAmount.Text), txtDescription.Text.ToString(), "you@yoursite.com", "09123456789", "http://localhost/Verify.aspx", out Authority);


if (Status == 100)
{
Response.Redirect("https://www.zarinpal.com/pg/StartPay/" + Authority);
}
else
{
Response.Write("error: " + Status);
}

این کد رو از نمونه ای که تو آزمایشگاه خودش گذاشته بود برداشتم.
کلا عبارت zarinpal رو نمیشناسه. کار دیگه ای هم باید بکنم که نکردم؟ مشکل چیه؟ یا توی اد کردن وب سرویسش نکته ای وجود داره؟

korosh00
دوشنبه 04 آبان 1394, 13:24 عصر
نو آپارات آموزش رو گذاشتن .
نشد تیکت بزن بهت خود زرین پال میگه .
در نهایت همه اینها دوباره اطلاع بده .

پیام حیاتی
سه شنبه 05 آبان 1394, 12:36 عصر
سلام
لطفا" اگر به نتیجه رسیدید اطلاع بدید.
تشکر

mbasirati
سه شنبه 05 آبان 1394, 13:51 عصر
سلام
بله به نتیجه رسیدم
من از VS 2015 استفاده میکنم و پروژمم website بود. وقتی میخواستم وب سرویس زرین پال رو اضافه کنم توی solution explorer روی Add و بعد Service Reference کلیک میکردم. آدرس وب سرویس زرین پال یعنی https://www.zarinpal.com/pg/services/WebGate/wsdl رو وارد میکردم و بعد go و بعدشم توی کادر Namespace یه نام (مثلا zarinpal) انتخاب میکردم و ok میکردم. و جواب نمیگرفتم و مشکل داشتم.
اما کاری که کردم و درست شد این بود که توی پنجره Add Service Reference روی Advanced کلیک کردم بعد Add Web Reference و بعد آدرس رو وارد کردم و اینتر زدم. توی کادر Web reference name اسمش رو وارد کردم و دکمه Add reference رو زدم.

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

پیام حیاتی
سه شنبه 05 آبان 1394, 17:13 عصر
سلام
بله به نتیجه رسیدم
من از VS 2015 استفاده میکنم و پروژمم website بود. وقتی میخواستم وب سرویس زرین پال رو اضافه کنم توی solution explorer روی Add و بعد Service Reference کلیک میکردم. آدرس وب سرویس زرین پال یعنی https://www.zarinpal.com/pg/services/WebGate/wsdl رو وارد میکردم و بعد go و بعدشم توی کادر Namespace یه نام (مثلا zarinpal) انتخاب میکردم و ok میکردم. و جواب نمیگرفتم و مشکل داشتم.
اما کاری که کردم و درست شد این بود که توی پنجره Add Service Reference روی Advanced کلیک کردم بعد Add Web Reference و بعد آدرس رو وارد کردم و اینتر زدم. توی کادر Web reference name اسمش رو وارد کردم و دکمه Add reference رو زدم.

بعد هم از همون کدهای نمونه ای که تو آزمایشگاه خودش گذاشته استفاده کردم و جواب داد در حالیکه با روش اول که کار میکردم این کدها رو نمیشناخت.
من هم روش شما رو رفتم پروژه جدید ایجاد کردم و وب سرویس رو اضافه کردم در نهایت فایل های مثال زرین پال برای دات نت رو در پروژه کپی کردم ، الآن نمیدونم کد دروازه پرداخت و IP سرویس دهنده رو کجا باید قرار بدم؟تنظیمات دیگری نداره؟

korosh00
سه شنبه 05 آبان 1394, 23:18 عصر
همه چیز جاش مشخصه تو نمونه کد .

int Status = zp.PaymentRequest("کدی که زرین پال بهت میده", int.Parse(txtAmount.Text),

mbasirati
چهارشنبه 06 آبان 1394, 07:13 صبح
من هم روش شما رو رفتم پروژه جدید ایجاد کردم و وب سرویس رو اضافه کردم در نهایت فایل های مثال زرین پال برای دات نت رو در پروژه کپی کردم ، الآن نمیدونم کد دروازه پرداخت و IP سرویس دهنده رو کجا باید قرار بدم؟تنظیمات دیگری نداره؟

شما اول باید صفحه تست آی پی (https://de.zarinpal.com/files/labfiles/ip-test.zip) رو دانلود کنی و بذاری توی روت سایتت. و بعد این صفحه رو توی مرورگر باز کنی تا آی پی رو بهت نشون بده.

بعد باید به صفحه درخواست درگاه جدید (https://de.zarinpal.com/users/request_webservice) توی زرین پال بری و درخواست بدی و آی پی رو اونجا وارد کنی وبعد از تایید یه کد بهت میدن که میشه همون Merchant ID که توی کد جایگذاری میکنی.

پیام حیاتی
چهارشنبه 06 آبان 1394, 23:50 عصر
همه چیز جاش مشخصه تو نمونه کد .

int Status = zp.PaymentRequest("کدی که زرین پال بهت میده", int.Parse(txtAmount.Text),
در مثال ما دو وب فرم داریم Request و Verify در وب فرم Request کدی را که زرین پال داده است وارد کردم :

int Status = zp.PaymentRequest("552582af-a2c8-42b9-b8c6-34dc5bef37d4", int.Parse(txtAmount.Text), txtDescription.Text.ToString(), "you@yoursite.com", "09123456789", "http://localhost/Verify.aspx", out Authority);

در وب فرم Verify نیز به هین شکل :


int Status = zp.PaymentVerification("552582af-a2c8-42b9-b8c6-34dc5bef37d4", Request.QueryString["Authority"].ToString(), Amount, out RefID);


136333

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

پیام حیاتی
پنج شنبه 07 آبان 1394, 00:02 صبح
فرم ساده html رو گرفتم کد داده شده زرین پال رو قرار دادم بعد از کلیک بر روی پرداخت به صفحه نامشخصی هدایت میشم :


<form action="https://www.zarinpal.com/webservice/Simplepay" method="post" onsubmit="msg('onSubmit')" id="TransactionAddForm" target="_blank">
<input type="hidden" id="TransactionAccountID" value="552582af-a2c8-42b9-b8c6-34dc5bef37d4" name="data[Transaction][account_id]">
<input type="text" id="TransactionAmount" value=" مبلغ را به تومان وارد كنيد" onblur="if(this.value=='') this.value=' مبلغ را به تومان وارد كنيد';" onfocus="if(this.value==' مبلغ را به تومان وارد كنيد') this.value='';" style="font-family: Tahoma;font-size:8pt" name="data[Transaction][amount]" maxlength="9" size="31">
<input type="text" id="TransactionDesc" value="نام شما به همراه توضيحات خريد" onblur="if(this.value=='') this.value='نام شما به همراه توضيحات خريد';" onfocus="if(this.value=='نام شما به همراه توضيحات خريد') this.value='';" style="font-family: Tahoma;font-size:8pt" name="data[Transaction][desc]" maxlength="50" size="31">
<input type="hidden" id="TransactionRedirectUrl" value="آدرس صفحه بازگشت" name="data[Transaction][redirect_url]">


<input name="submit" type="submit" " style="font-family: Tahoma;font-size:9pt" value="پـرداخـت ">
<--code by : s.mehdishams-->
</form>
آنلاین (http://ahvazsell.ir/Test/zarin.html)

mbasirati
پنج شنبه 07 آبان 1394, 08:14 صبح
امکانش هست به این خاطر که در لوکال تست می کنم پاسخ ندهد؟


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


<input type="hidden" id="TransactionRedirectUrl" value="آدرس صفحه بازگشت" name="data[Transaction][redirect_url]">

آدرس صفحه برگشت رو باید مشخص کنی تو این کد.

پیام حیاتی
پنج شنبه 07 آبان 1394, 11:42 صبح
بله، لوکال کار نمیکنه. درخواست شما باید از همون آی پی ای ارسال بشه که موقع ثبت درگاه وارد کردی.


<input type="hidden" id="TransactionRedirectUrl" value="آدرس صفحه بازگشت" name="data[Transaction][redirect_url]">

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


<form action="https://www.zarinpal.com/webservice/Simplepay" method="post" onsubmit="msg('onSubmit')" id="TransactionAddForm" target="_blank">
<input type="hidden" id="TransactionAccountID" value="552582af-a2c8-42b9-b8c6-34dc5bef37d4" name="data[Transaction][account_id]">
<input type="text" id="TransactionAmount" value=" مبلغ را به تومان وارد كنيد" onblur="if(this.value=='') this.value=' مبلغ را به تومان وارد كنيد';" onfocus="if(this.value==' مبلغ را به تومان وارد كنيد') this.value='';" style="font-family: Tahoma;font-size:8pt" name="data[Transaction][amount]" maxlength="9" size="31">
<input type="text" id="TransactionDesc" value="نام شما به همراه توضيحات خريد" onblur="if(this.value=='') this.value='نام شما به همراه توضيحات خريد';" onfocus="if(this.value=='نام شما به همراه توضيحات خريد') this.value='';" style="font-family: Tahoma;font-size:8pt" name="data[Transaction][desc]" maxlength="50" size="31">
<input type="hidden" id="TransactionRedirectUrl" value="http://www.ahvazsell.ir/Default.aspx" name="data[Transaction][redirect_url]">


<input name="submit" type="submit" " style="font-family: Tahoma;font-size:9pt" value="پـرداخـت ">
<--code by : s.mehdishams-->
</form>
اما باز به آدرس نامعلومی هدایت میشه.