shetabit / payment

simple laravel payment package , supports multiple drivers
MIT License
833 stars 141 forks source link

پیداکردن transaction در کال بک #295

Closed sajadonline closed 11 months ago

sajadonline commented 11 months ago

سلام

با توجه به اینکه هر درایور یکجوری داره دیتاسمت ما در کال بک پاس میده (مثلا یکی نوشته transid یکی نوشته transaction یکی tid ...) چطور میتونیم بصورت داینامیک این مقدار رو پیدا کنیم و در دیتابیس جستجو کنیم ؟

$receipt = Payment::amount(1000)->transactionId($transaction_id)->verify(); اینجا خودش درایور رو تشخیص میده ؟ من چجوری توی کال بک بفهمم کدوم درایور بوده و بصورت داینامیک $transaction_id رو بهش بدم ؟

ممنون از راهنماییتون .

khanzadimahdi commented 11 months ago

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

bidram commented 2 months ago

سلام $transactionId تولید شده در purchase با برگشتی سامان متفاوت است

Screenshot from 2024-08-14 15-44-30

در هنگام برگشت برای verify کردن برگشتی سامان را ببنید؟ Screenshot from 2024-08-14 15-45-15

مشکل عدم تطابق $transactionId هست.

khanzadimahdi commented 2 months ago

وقت شما بخیر! عجیبه این مورد. میتونید کدشو توی ادرس زیر پیدا کنید و بررسی کنید؟

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

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

https://github.com/shetabit/multipay/blob/master/src/Drivers/Saman/Saman.php#L55

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

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

/invoice/{uuid}/paid

بعدش توی ادرس بالا شما آیدی صورتحساب رو دارید و میتونید وریفای کنید

bidram commented 2 months ago

سلام مشکل حل شد و سپاسگزارم