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

مشکل در وریفای کردن پرداخت های درگاه ایرانکیش #126

Closed
amiralibk opened this issue Dec 2, 2020 · 7 comments

Comments

@amiralibk
Copy link

amiralibk commented Dec 2, 2020

پ.ن : سوال اصلاح شد

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

return shetabitPayment::via('irankish')
->callbackUrl(route('payments.callback'))
->config('description',"سفارش شماره $request->order_id")
->purchase($invoice, function($driver, $transactionId)use($payment) {
$payment->update([
'resnumber' => $transactionId
]);
})->pay()->render();
من از via برای انتخاب ایرانکیش موقع پرداخت استفاده کردم
به بانک میرفت اما متد وریفایش با زرین پال میومد کلا مشکل همین بود .

این via رو باید برای وریفای هم بزارم

لطفا توی مستندات پکیج این موردو اضاف کنیم .

ی کامیت هم دادم برای تغییر متد get به post چون ایرانکیش کلا با post

@khanzadimahdi
Copy link
Member

سلام. لطفا ورژن پکیجی که استفاده میکنید به همراه اون قسمت از کنترلر خودتون که به مشکل خوردین رو قرار بدین تا بررسی کنم

@khanzadimahdi
Copy link
Member

درگاه ها هنگام بازگشت معلوم نیست که متد رو پست میکنن یا گت! این قضیه به بانک ربط داره و هر بانکی یه مدل متفاوت داره باهاش رفتار میکنه. شما متد بازگشتی رو طوری تنظیم کنید که هم با گت و هم با پست به مشکلی نخوره

@mohsen-hsh74
Copy link

با یکی از دو روش زیر میتونی مدیریت کنی
Route::any('redirect url', function(){});
Route::match(['get', 'post'], 'redirect url', function(){});

@khanzadimahdi
Copy link
Member

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

    public function verify() : ReceiptInterface
    {
        $data = array(
            'merchantId' => $this->settings->merchantId,
            'sha1Key' => $this->settings->sha1Key,
            'token' => $this->invoice->getTransactionId(),
            'amount' => $this->invoice->getAmount() * 10, // convert to rial
            'referenceNumber' => Request::get('referenceId'),
        );

        $soap = new \SoapClient($this->settings->apiVerificationUrl);
        $response = $soap->KicccPaymentsVerification($data);

        $status = (int) ($response->KicccPaymentsVerificationResult);

        if ($status != $data['amount']) {
            $this->notVerified($status);
        }

        return $this->createReceipt($data['referenceNumber']);
    }

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

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

ممنونم از شما

@khanzadimahdi khanzadimahdi changed the title مشکل ایرانکیش مشکل در وریفای کردن پرداخت های درگاه ایرانکیش Dec 8, 2020
@khanzadimahdi
Copy link
Member

بله باید برای وریفای هم بزارید. در غیر اینصورت با درایوری که توی کانفیگ هست وریفای میکنه

@amiralibk
Copy link
Author

مرسی ممنون

@jalallinux
Copy link

public function verify() : ReceiptInterface
    {
        $data = array(
            'merchantId' => $this->settings->merchantId,
            'sha1Key' => $this->settings->sha1Key,
            'token' => $this->invoice->getTransactionId(),
            'amount' => $this->invoice->getAmount() * 10, // convert to rial
            - 'referenceNumber' => Request::get('referenceId'),              <--- invalid line
            + 'referenceNumber' => Request::post('referenceId'),           <--- correct line
        );

        $soap = new \SoapClient($this->settings->apiVerificationUrl);
        $response = $soap->KicccPaymentsVerification($data);

        $status = (int) ($response->KicccPaymentsVerificationResult);

        if ($status != $data['amount']) {
            $this->notVerified($status);
        }

        return $this->createReceipt($data['referenceNumber']);
    }

سلام شما توی وریفای درگاه ایرانکیش کال بک این درگاه رو گت در نظر گرفتی در صورتی که توی اکیومنتای ایران کیش که چندینننن ساله تکون نخورده گفته کالبکشون پست میشه.

بعد چطور شما میگی این درگاه ها تست شده من نمیدونم؟
لطفا این موضوع رو بررسی کنید و درصورت امکان این مشکل رو فیکس کنید.
ممنونم

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

4 participants