Open idotnetdev opened 2 years ago
درود خواهش میکنم.
با توجه به اینکه درگاه آسان پرداخت به وسیله SOAP پیاده سازی شده، آیا امکان داره که درگاه رو با استفاده از وب سرویس های REST پیاده سازی کنید؟ ممنون
همونطور که در لیست درخواستها می تونید مشاهده کنید، درخواستهای زیادی هستن که باید انجام بشن و بنده هم متاسفانه فرصت کافی برای انجام اونها ندارم. به همین دلیل تقاضا شده از توسعه دهندههای عزیز که در صورت تمایل این درخواستها رو انجام و توسعه بدن. من در حال حاضر فقط باگهایی که ارسال میشن رو میتونم سریع رسیدگی کنم تا مشکلی برای سایرین به وجود نیاد. بنابراین این مورد هم باید در لیست انتظار گذاشته بشه.
ممنون. خودم هم میتونم پیاده سازیشو انجام بدم.
بسیار عالی. پس لطفا برنچ مستر رو استفاده کنید و pull request رو ارسال کنید تا بررسی و مرج بشه.
سلام مجدد امروز میخواستم پیاده سازی رو شروع کنم متوجه شدم که انگار قبلا توسط آقای محمد افشاری تغییراتی برای REST آسان پرداخت انجام شده. ولی انگار مرج نشده با کدهای اصلی.
بررسی میکنید لطفا؟
انگار قبلا با REST پیاده شده بوده که با تغییرات آقای افشاری (@mohammad-ashrafi2020 ) تبدیل به SOAP شده. واقعا دلیلش چی بوده؟ خیلی جالبه که downgrade شده!
سلام ، اشرافی هستم دلیلش این بود که توی Encrypt کردن اطلاعات مشکل وجود داشت و درگاه بهمون خطا میداد ( کتابخونه ای که باهاش این کار رو انجام میدادیم توی Dotnet Core کار نمیکنه و خوده آسان پرداخت هم توی Rest APi چیزی برای Encrype و Decrypt کردن اطلاعات قرار ندادن فقط توی Soap وجود داره
ممنون از شما. بله چیزی برای Encrypt و Decrypt نداره چون توی REST اصلا ازش استفاده نمیشه و تنها چیزهایی که نیازه اینا هستن MerchantConfigurationId Usr => Username Pwd => Password بنده خودم با پشتیبانی آسان پرداخت هم صحبت کردم و گفتن که احتمال خیلی زیاد سرویس SOAP بزودی از کار خواهد افتاد و باید از REST استفاده بشه. نمیدونم میتونیم کدها رو به قبل برگردونیم یا نه.
آخرین مشکلی که توی Rest داشتیم این بود که شناسه تراکنش رو تشخیص نمیداد ، وارد درگاه میشد و می گفت : "خطا، شناسه تراکنش معتبر نمیباشد"
منظور از شناسه تراکنش localInvoiceId هست؟
مشخص نبود مشکل از کجاست ( این خطا رو توی صفحه درگاه آسان پرداخت میداد ، 1 هفته باهاش سرو کله زدیم ، دیدیم به جواب نرسیدیم ، اومدیم سمت همون Soap )
حالا به نظرم باید آقای سلطانی نظر بدن که آیا میتونیم کدهای قبلی رو داشته باشیم که بتونیم روش کار کنیم و تست کنم مجددا و ببریمش روی REST یا نه باید از اول کار بشه. @Sina-Soltani
@idotnetdev @mohammad-ashrafi2020
درود مشکلی که وجود داشت همون عدم امکان استفاده از الگوریتم رمزنگاری در دات نت کور بود. بعد ما کدها رو تغییر دادیم تا از REST استفاده کنیم. اما ظاهرا با خطا مواجه میشدن @mohammad-ashrafi2020 بنده هم که امکان تست رو نداشتم چون آی پی خارج از ایران هستم خود درگاه آسان پرداخت هم که به قدری افتضاح بوده که حتی امکان تست رو برای توسعه دهندهها محیا نکرده، دیگه چه برسه به پیادهسازی هایی که انجام دادن. در نتیجه ما دوباره از همون SOAP استفاده کردیم
جزئیات مربوط به این بحث رو در این تیکت می تونید ببینید: https://github.com/Sina-Soltani/Parbad/issues/259
در نهایت قبل از اینکه تصمیمی گرفته بشه،باید اول مشخص بشه که آیا این درگاه با REST کار میکنه یا خیر. چون طبق بحثهای اون تیکت، ما کدها رو دقیقا اونطوری که انتظار میرفت پیادهسازی کردیم، اما کار نکرد. شما می تونید یک نمونه پروژه کاملا جدید بسازید و بدون استفاده از پکیج پَرباد، این درگاه رو با REST پیادهسازی کنید و تست کنید. در صورتی که به درستی کار کنه، پروژه رو اینجا آپلود کنید تا من هم یک بررسی جزئی بکنم. اگر همه چیز به خوبی پیش بره، شما می تونید کدها رو در Pull Request پیادهسازی و ارسال کنید
خود آسان پرداخت یه پروژه تستی داره که به همراه اطلاعات درگاه ارسال کرده. با REST پیاده سازی شده ولی برای تست نیاز هست که آی پی شما ثبت بشه روی درگاه که بتونید تستش کنید.
@idotnetdev آیا شما امکان تست رو دارید؟ یعنی در واقع حساب بانکی و درگاه رو دارید که تست کنید؟
بله میتونم تست کنم. هم اطلاعات حساب دارم و هم IP Valid خودم رو به آسان پرداخت اعلام کردم. میتونم از اول و صفر بشینم بنویسم ولی میگم وقتی قبلا نوشتیم دوباره کاری هست انگار و الا موردی نداره بخواین به این SOAP هم کاری ندارم یه پروژه درست میکنم روی پرباد Parbad.Gateway.AsanPardakhtRest یا هرچی اونجا کدهاشو مینویسم.
پس لطفا داخل خود پَرباد، این درگاه رو با REST انجام بدید (اگر هنوز انجام نشده) نیازی به تغییر نام یا ایجاد پروژه جدیدی نیست. داخل پروژه فعلی کدها رو به rest تغییر بدید Parbad.Gateway.AsanPardakht
بعد نوگت رو تولید کنید و نصب کنید روی یک پروژه وب و ازش استفاده کنید و تست کنید. همونطور که گفتم، هدف نهایی این هست که تغییرات جواب بده و روی درگاه واقعی شرکت آسان پرداخت کار کنه. اگر همه چیز با موفقیت انجام شد و نتیجه داد، Pull Request رو ارسال کنید بعدش لطفا
باشه ممنون.
سلام وقت بخیر درگاه آسان پرداخت رو با REST مجددا پیاده سازی کردم و سعی کردم از کدهای قبلی هم استفاده کنم. به درگاه پرداخت وصل میشم و اطلاعات پرداخت رو میزنم و مشکل نداره. وقتی که میخواد برگرده به سایت و متد FetchAsync رو فراخوانی میکنم، موقع فراخوانی متد httpClient.GetAsync(...) به ددلاک میخوره و هیچ جوره حل نمیشه نمیدونم واقعا چرا. جاهای دیگه ای هم استفاده شده ازش مثلا توی ایجاد Request. جالبه که هیچ Exception ی هم صادر نمیشه حتی چند ساعت هم بگذره توی همون حالت میمونه و هیچ بازگشتی نداره. تا بحال با این مشکل مواجه شدید؟
درود خیر به چنین مشکلی برنخوردم من. اما دلیلی که می تونه وجود داشته باشه اینه پاسخ دهنده (آسان پرداخت) دچار مشکلاتی هست. Pull Request رو ارسال کنید تا من هم نگاهی بندازم
به خاطر استفاده از Task هست GetAsync. با این کدها به راحتی میتونه نتیجه رو بگیره. `HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiUrl); request.Headers.Add("usr", account.UserName); request.Headers.Add("pwd", account.Password);
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
var res = await reader.ReadToEndAsync();
if (response.StatusCode != HttpStatusCode.OK)
{
var errorModel = JsonConvert.DeserializeObject<AsanPardakhtApiErrorModel>(res);
var failedMessage = errorModel.Title ?? messagesOptions.PaymentFailed;
return (false, null, failedMessage);
}
var transModel = JsonConvert.DeserializeObject<AsanPardakhtPaymentResultModel>(res);
// return await reader.ReadToEndAsync();
return (true, transModel, null);
}`
موضوع دیگه اینه که گفته بودید که برنچ مستر رو استفاده کنم و روی همون تغییرات دادم. Pull request بزنم؟
ارتباطی به task نمیتونه داشته باشه.
شما pull request رو لطفا ارسال کنید من علاوه بر بررسی کلی، یک نگاهی هم به این قسمت میندازم ببینم مشکل چیه
من pull request زدم ولی ریفکتور کدها نیاز هست که هنوز انجام ندادم تا کامل تست کنم و جواب بگیرم.
@Sina-Soltani آقای سلطانی تونستید بررسی کنید مشکلش رو؟
خیر متاسفانه فرصت نداشتم. امروز بررسی میکنم pull request شما آماده هست؟ چون مثل اینکه گفتید باید ریفکتور و تست کنید
بله من دیشب pull request زدم که شما مشکل رو بتونید بررسی کنید. اگه مشکلش حل بشه میتونم تست کنم و در نهایت ریفکتور میکنم و کدها و کامنت های اضافه رو هم حذف میکنم.
بله من دیشب pull request زدم که شما مشکل رو بتونید بررسی کنید. اگه مشکلش حل بشه میتونم تست کنم و در نهایت ریفکتور میکنم و کدها و کامنت های اضافه رو هم حذف میکنم.
شما pull request رو به هر روشی که در نظر دارید تکمیل و آماده کنید. در صورت نیاز من پس از بررسی و تست تغییرات رو انجام میدم
سلام وقت بخیر @Sina-Soltani پیاده سازی درگاه انجام شد و ریفکتور و تست هم انجام شد. لطفا بررسی بفرمایید و در صورت صلاحدید مرج کنید. ممنون
درود سپاس از شما سعی میکنم به زودی نگاه کنم
سلام و عرض ادب آقای سلطانی منتظرم که تایید کنید و پکیجش ایجاد بشه که بتونم نصبش کنم. خودم نمیخوام تولید کنم پکیجش رو. لطفا یه بررسی بفرمایید.
درود من فرصتی برای انجام این کار ندارم متاسفانه طی این یکی دو هفته. پکیج رو در سیستم خودتون تولید و استفاده کنید تا من بعدا این کدهای جدید رو مرج و بررسی کنم. سپاس از شما
سلام و عرض ادب قبل از هر چیز، تشکر میکنم ازتون بخاطر پیاده سازی خوب و تمیز درگاه های بانکی کشور.
با توجه به اینکه درگاه آسان پرداخت به وسیله SOAP پیاده سازی شده، آیا امکان داره که درگاه رو با استفاده از وب سرویس های REST پیاده سازی کنید؟ ممنون