@mohsenbostan
@mohammadeng3731
@khanzadimahdi
@MehdiAghighi
@ali.bayat
@behzadd
@milad
سلام و خسته نباشید ... وقتتان بخیر
من در حال یادگیری پرداخت آنلاین در لاراول هستم و در گوگل سرچ کردم و
ولی چونکه این پکیج ایرانی است و
با درگاه های خارجی برای کار کردن و کد نوشتن یک کم متفاوت است.
در لوکالم از پکیج shetabit استفاده می کنم ، اما به یه مشکلی بر خوردم.
https://github.com/shetabit/payment
من درگاه نکست پی استفاده میکنم و توکن api_key رو از سایت نکست پی دریافت کردم.
وقتی کاربر روی دکمه خرید رو کلیک میکند ، یک کنترلر خوانده میشود.
<a href="{{ route('cart.purchase') }}" title="Pay">Pay</a>
من در فایل blade بدون form و crsf استفاده کردم وفقط لینک مسیر "پرداخت" را توسط کاربر کلیک کند.
روت مسیر
Route::prefix('cart')->name('cart.')->group(function() {
Route::get('/purchase', 'CartController@purchase' )->name('purchase');
Route::get('/purchase/result', 'CartController@result' )->name('purchase.result');
});
کنترلر
use Shetabit\Multipay\Invoice;
use Shetabit\Payment\Facade\Payment;
class CartController extends Controller
{
public function purchase()
{
$invoice = new Invoice;
$invoice->amount(10000);
$invoice->detail(['detailName' => 'test']);
Payment::purchase($invoice, function ($driver, $transactionId) {
})->pay()->render();
}
public function result(Request $request)
{
}
}
نکته: این کد کنترلر دقیقا از سایت پکیج گیت هاب کپی برداری شده است.
نکته: مقدار مبلغ 10000 تومان ( بدون دستکاری و پیشفرض ) گذاشتم. این مبلغ را دقیقا در درگاه پرداختی نشان دهد و کاربر پرداخت کنند.
نکته: دیتابیس تعریف نشده است و چونکه به درگاه هدایت میشود و پرداخت میکنند.
نکته: در سایت نکست پی تراکنشها و واریزها رو نشان میدهد.
دو روش ( local و nextpay ) رو در فایل config/payment.php امتحان کردم و خطا به صورت زیر است:
'default' => 'local' /// خطا : The POST method is not supported for route cart/purchase. Supported methods: GET, HEAD.
'default' => 'nextpay' /// خطا : Undefined array key "message"
در پیش فرض "لوکال" خطا میگوید متدها get و head ساپورت میکند و من توی مسیر روتها دقیقا همان get را گذاشتم.
در پیش فرض "نکستپی" خطا میگوید message تعریف نشده است. این message رو از کجا باید بگیرم؟
'nextpay' => [
'apiPurchaseUrl' => 'https://nextpay.org/nx/gateway/token',
'apiPaymentUrl' => 'https://nextpay.org/nx/gateway/payment/',
'apiVerificationUrl' => 'https://nextpay.org/nx/gateway/verify',
'merchantId' => '3930831b-ff13-4fd8-a43a-c2b88df8729c',
'callbackUrl' => '',
'description' => 'payment using nextpay',
'currency' => 'T', //Can be R, T (Rial, Toman)
],
به پشتیبانی نکست پی تیکت زدم و مشکل خطا message رو گفتم و این جواب داده است:
از طریق صفحه مستندات در سایت نکست پی می توانید مراحل اتصال رو بررسی بفرمایید و در نهایت منتظر تایید و دریافت پیامک از سمت نکست پی باشید.
اگر کد کنترلر اشتباه است یه نمونه کد برای من نشان بدهید.
از دوستان و استاتید محترم خواهش میکنم اگر کسی با این پکیج کار کرده است ، راهنمایی کنند . ممنون میشم.
سلام
گیتهاب که اشتباه نمیکنه.
کو اینو بزن شاید درست بشه
'nextpay' => [
'apiPurchaseUrl' => 'https://nextpay.org/nx/gateway/token',
'apiPaymentUrl' => 'https://nextpay.org/nx/gateway/payment/',
'apiVerificationUrl' => 'https://nextpay.org/nx/gateway/verify',
'merchantId' => '3930831b-ff13-4fd8-a43a-c2b88df8729c',
'callbackUrl' => '',
'description' => 'payment using nextpay',
'currency' => 'T', //Can be R, T (Rial, Toman)
'message' => 'بخرید پشیمان نمیشوید'
];
اگه خطا نداد که هیچ اگر باز خطاداد بگو چه خطایی میده
@behrouzbash
@idmoted
علی اقا ممنون بابت پاسخ ... دوباره همان پیغام رو میدهد.
گیت هاب مشکل نداره و ولی احتمالا پکیجی استفاده میکنم با پروژه خودم سازگار نیست.
یا حتی سازنده این پکیج احتمالا یادش رفته بروز کنه ... چونکه پکیج دو ماه پیش بروز شده.
نمیدونم مشکل از کجاست؟
سلام
این یه باگ از پکیجه که توی PR زیر فیکسش کردم، تا زمانیکه مرج بشه میتونید خودتون این تغییرات رو اعمال و تست کنید
https://github.com/shetabit/multipay/pull/205
فقط یه نکته اینکه این یه پکیج عمومیه و یعنی همه میتونن داخلش مشارکت داشته باشن و باگاش رو فیکس کنن یا فیچر اضافه کنن و طبیعتا خود سازنده اش نمیتونه این همه درگاه رو هر روز چک کنه و آپدیت ها رو اعمال کنه، پس اگه به مشکل دیگه ای خوردید خودتون فیکس کنید و یه PR بزنید تا بقیه هم بتونن استفاده کنن...
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟