Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

خطای زرین پال #285

Closed
alireza-hnzpv opened this issue Nov 17, 2024 · 6 comments
Closed

خطای زرین پال #285

alireza-hnzpv opened this issue Nov 17, 2024 · 6 comments

Comments

@alireza-hnzpv
Copy link

alireza-hnzpv commented Nov 17, 2024

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

https://payment.zarinpal.com/--MY-DOMAIN--?Authority=A000000000000000000000000000gedd3cgv&Status=NOK

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

        return PaymentShetabit::callbackUrl(route('web.cart.verifyPayment',['gateway' => $gateway, 'uuid' => $uuid]))->via($gateway)->purchase($invoice, function($driver, $transactionId) use ($gateway, $uuid) {
            Payment::query()->where('status', 'pending')->where('uuid', $uuid)->update([
                'transaction_id' => $transactionId,
                'gateway' => $gateway
            ]);
        })->pay()->render();

این کد من برای درگاه هست

@alireza-hnzpv
Copy link
Author

تراکنش هم موفق باشه میره توی لینک زیر
https://payment.zarinpal.com/--MY-DOMAIN--?Authority=A000000000000000000000000000xqppd3me&Status=OK

@khanzadimahdi
Copy link
Member

khanzadimahdi commented Nov 17, 2024

سلام وقت بخیر. زرین پال سه نوع سرویس سندباکس, نرمال و زرین گیت داره که به صورت زیر پیاده سازی کردیم:

https://github.com/shetabit/multipay/tree/master/src/Drivers/Zarinpal/Strategies

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

@alireza-hnzpv
Copy link
Author

alireza-hnzpv commented Nov 17, 2024

مشکل رو پیدا کردم. مشکل به خاطر callbackUrl هست. چون من از callbackUrl داینامیک استفاده میکنم این خطارو داره میده. این تابع مشکل داره. وقتی میرم از فایل کانفیگ افزونه مقدار callbackUrl رو بر میدارم با اینکه حتی مقدار callbackUrl داینامیک ست کردم ولی کاربر رو الان داره هدایت میکنه به لینک https://www.yourcompany.com/path/to?Authority=A000000000000000000000000000l3gdqwda&Status=NOK
یا بعضی وقتا به
https://www.yoursite.com/path/to?Authority=A000000000000000000000000000l3ggqfda&Status=NOK

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

@alireza-hnzpv
Copy link
Author

آخرین نسخه داکیومنت زرین پال توی این آدرسه
https://zarinpal.com/docs
و ساب دامین اصلی پرداخت هم api هست.

  • جهت اطلاع

@alireza-hnzpv
Copy link
Author

alireza-hnzpv commented Nov 18, 2024

موقع ارجاع به درگاه، یک dd از کتابخونه گرفتم اینو داره میفرسته زرین پال

array:6 [▼ // vendor/shetabit/multipay/src/Drivers/Zarinpal/Strategies/Normal.php:78
  "merchant_id" => "88a81c57-eec5-4c1a-a0a9-ddddddddd"
  "amount" => 74500000
  "currency" => "IRR"
  "callback_url" => "http://yoursite.com/path/to"
  "description" => "خرید محصولات سبد خرید"
  "metadata" => array:3 [▼
    "mobile" => "09152079010"
    "user_id" => 0
    "description" => "خرید محصولات سبد خرید"
  ]
]

@alireza-hnzpv
Copy link
Author

مشکل برطرف شد.
علت اصلی این مشکل این بود که via ارجحیت داره نسبت به callbackUrl اون باید زودتر نوشت بشه. با جابجا کردن این دو مورد مشکل من برطرف شد.

        return PaymentShetabit::via($gateway)->callbackUrl(route('web.cart.verifyPayment',['gateway' => $gateway, 'uuid' => $uuid]))->purchase($invoice, function($driver, $transactionId) use ($gateway, $uuid) {
            Payment::query()->where('status', 'pending')->where('uuid', $uuid)->update([
                'transaction_id' => $transactionId,
                'gateway' => $gateway
            ]);
        })->pay()->render();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants