【发布时间】:2020-08-16 05:23:23
【问题描述】:
我正在使用 Laravel 6。我有一个控制器,在提交表单后收集数据,从收集的数据中,我想使用一些数据将其发送到可以收集付款的不同页面。
这是我的代码
//data collected from form for storing in database and sending to payment gateway
public function store()
{
$user = auth()->user();
$amount = 1200;
$orderid = time() . '-' . $user->id;
auth()->user()->details()->create([
'name' => $data['name'],
'orderID' => $orderid,
'reptype' => $data['reptype'],
'gender' => $data['gender'],
'email' => $data['email'],
'phone' => $data['phone'],
]);
$api = new Api(config('app.razorpay'), config('app.razorsecret'));
$orderData = [
'receipt' => $orderid,
'amount' => $amount, // 2000 rupees in paise
'currency' => 'INR',
'payment_capture' => 1 // auto capture
];
//create a new order id on payment gateway
$razorpayOrder = $api->order->create($orderData);
//collect order ID
$razorpayOrderId = $razorpayOrder['id'];
//data to be sent for payment collection
$pay = [
"amount" => $amount,
"name" => "test name",
"description" => "",
"image" => "https://s29.postimg.org/r6dj1g85z/daft_punk.jpg",
"prefill" => [
"name" => "Daft Punk",
"email" => "customer@merchant.com",
"contact" => "9999999999",
],
"notes" => [
"address" => "Hello World",
"merchant_order_id" => $orderid, //order id which I have generated
],
"order_id" => $razorpayOrderId, //order id provided by gateway
];
return redirect()->route( 'pay')->with($pay); // I would like to send data from this redirect to a blade where I can initiate payment process.
}
我的问题是我想将$pay 数组数据发送到路由pay,其中$pay 数组数据应该可供java 脚本代码访问。当我尝试这样做时,我收到一条消息说变量不可用。
【问题讨论】:
-
您可以通过以下方式在javascript中访问:
var variable= $pay; -
我试过了,它说变量未定义
-
试试:
return redirect()->route( 'pay', ['pay' => $pay['order_id']]); -
我唯一能成功让 javascript 接受数组的是
var pay = {!! $pay !!}。您可能还需要将其包装在 json_decode 中。所以应该是{!! json_decode($pay) !!}我不在我的开发终端测试,但我认为这是准确的 -
@maximus1127 这是向刀片发送数据的正确方法 return redirect()->route( 'pay')->with($pay);
标签: javascript php arrays ajax laravel