سلام
من از پکیج زرین پال توی لاراول استفاده کردم
ولی در حالت 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();
}
}
توی حالت لوکال اوکیه ولی وقتی میره روی سرور ارور میده
سلام از پکیج زیر استفاده کنید علاوه بر زرین پال بیشتر درگاه ها رو ساپورت میکنه.
https://github.com/shetabit/payment
داکیومنت فارسی
https://github.com/shetabit/payment/blob/master/README-FA.md
چون قبل از اینکه ریدایرکت بشه اطلاعاتی رو به صفحه ارسال میکنید و همین باعث میشه که این ارور رو بده.
سلامت باشید. تمام درگاه های بانکی موجود تا اخر هفته اینده به پکیج اظافه خواهد شد (تقریبا ۹۵ درصد درگاه های موجود در ایران رو پوشش میده چه واسط و چه مستقیم ).
@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.
مشکل از چیه؟؟
درون اون ادرسی که بهش با 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();
بعدش با جاوا اسکریپت به ادرس دریافتی برید.
داکیومنت ها ی پکیج رو خوندین؟
# 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
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟