راکت

zarinpal

10 پاسخ

سلام
من از پکیج زرین پال توی لاراول استفاده کردم
ولی در حالت 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();
    }
}

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

ثبت پرسش جدید

پاسخ‌ها

10
mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

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

https://github.com/shetabit/payment

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

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

حسین مولوی
حسین مولوی
@ho3einmolavi

تخصص: back-end developer

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

شاید پاسخ شما همین‌جا باشد

mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

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

حسین مولوی
حسین مولوی
@ho3einmolavi

تخصص: back-end developer

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

mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

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

حسین مولوی
حسین مولوی
@ho3einmolavi

تخصص: back-end developer

@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
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

درون اون ادرسی که بهش با 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();

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

حسین مولوی
حسین مولوی
@ho3einmolavi

تخصص: back-end developer

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

mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

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

# 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

تخصص: برنامه نویس

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

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

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