حسین مولوی
5 سال پیش توسط حسین مولوی مطرح شد
10 پاسخ

zarinpal

سلام
من از پکیج زرین پال توی لاراول استفاده کردم
ولی در حالت production ی ارور میده
Cannot modify header information - headers already sent by (output started at /var/www/html/app/Http/Controllers/PayController.php:43)

اینم کدش
public function zarinPal_request($price)
{

    $zarinpal = new Zarinpal('b5fa4b8e-f2b0-11e9-97f3-000c295eb8fc');
    $zarinpal->enableSandbox(); // active sandbox mode for test env
    //$zarinpal->isZarinGate(); // active zarinGate mode
    $results = $zarinpal->request(
        route('zarinpal.verify'),          //required
        $price,                        //required
        'testing',                             //required
        'me@example.com',                      //optional
        '09000000000',                         //optional
        [                          //optional
            "Wages" => [
                "zp.1.1"=> [
                    "Amount"=> 120,
                    "Description"=> "part 1"
                ],
                "zp.2.5"=> [
                    "Amount"=> 60,
                    "Description"=> "part 2"
                ]
            ]
        ]
    );
    echo json_encode($results);
    if (isset($results['Authority'])) {
        file_put_contents('Authority', $results['Authority']);
        $zarinpal->redirect();
    }
}

توی حالت لوکال اوکیه ولی وقتی میره روی سرور ارور میده


ثبت پرسش جدید
mahdi khanzadi
تخصص : Software engineer
@khanzadimahdi 5 سال پیش مطرح شد
0

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

https://github.com/shetabit/payment

داکیومنت فارسی

https://github.com/shetabit/payment/blob/master/README-FA.md


حسین مولوی
تخصص : back-end developer
@ho3einmolavi 5 سال پیش مطرح شد
0

@khanzadimahdi
اگ میشه راهنمایی کنید ک این ارور برای چیه؟؟؟


mahdi khanzadi
تخصص : Software engineer
@khanzadimahdi 5 سال پیش مطرح شد
0

چون قبل از اینکه ریدایرکت بشه اطلاعاتی رو به صفحه ارسال میکنید و همین باعث میشه که این ارور رو بده.


حسین مولوی
تخصص : back-end developer
@ho3einmolavi 5 سال پیش مطرح شد
0

@khanzadimahdi
خیلی ممنون از پکیج خوبتون


mahdi khanzadi
تخصص : Software engineer
@khanzadimahdi 5 سال پیش مطرح شد
0

سلامت باشید. تمام درگاه های بانکی موجود تا اخر هفته اینده به پکیج اظافه خواهد شد (تقریبا ۹۵ درصد درگاه های موجود در ایران رو پوشش میده چه واسط و چه مستقیم ).


حسین مولوی
تخصص : back-end developer
@ho3einmolavi 5 سال پیش مطرح شد
0

@khanzadimahdi
ی سوال دیگ داشتم ازتون وقتی میخام از طریق axios به اون متدی ک مارو به صفحه پرداخت وصل میکنه وصل بشم
این ارور توی console میاد :
borochap.com/:1 Access to XMLHttpRequest at 'https://www.zarinpal.com/pg/StartPay/' (redirected from 'https://borochap.com/zarinpal/request') from origin 'https://borochap.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

مشکل از چیه؟؟


mahdi khanzadi
تخصص : Software engineer
@khanzadimahdi 5 سال پیش مطرح شد
0

درون اون ادرسی که بهش با axios درخواست میدید باید ادرس صفحه پرداخت برگردونده بشه. پس کد شما باید به صورت زیر باشه:

# create new invoice
$invoice = (new Invoice)->amount(1000);
# purchase and pay the given invoice
// you should use return statement to redirect user to the bank's page.
return Payment::purchase($invoice, function($driver, $transactionId) {
    // store transactionId in database, we need it to verify payment in future.
})->pay()->getTargetUrl();

بعدش با جاوا اسکریپت به ادرس دریافتی برید.


حسین مولوی
تخصص : back-end developer
@ho3einmolavi 5 سال پیش مطرح شد
0

@khanzadimahdi
وقتی متد callback فرا خوانی میشه چطور میتونم قیمت رو بهش بدم؟؟؟؟


mahdi khanzadi
تخصص : Software engineer
@khanzadimahdi 5 سال پیش مطرح شد
0

داکیومنت ها ی پکیج رو خوندین؟

# On the top of the file.
use Shetabit\Payment\Facade\Payment;
use Shetabit\Payment\Exceptions\InvalidPaymentException;
...

# you need to verify the payment to insure the invoice has been paid successfully
// we use transaction's id to verify payments
// its a good practice to add invoice's amount.
try {
    Payment::amount(1000)->transactionId($transaction_id)->verify();
    ...
} catch (InvalidPaymentException $exception) {
    /**
        when payment is not verified , it throw an exception.
        we can catch the excetion to handle invalid payments.
        getMessage method, returns a suitable message that can be used in user interface.
    **/
    echo $exception->getMessage();
}

داکیومنت ها رو بخونید

https://github.com/shetabit/payment/blob/master/README-FA.md


مهدی آرش
تخصص : برنامه نویس
@danyaltj 5 سال پیش مطرح شد
0

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


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

ورود یا ثبت‌نام