【发布时间】:2020-05-21 07:44:36
【问题描述】:
我正在进行 Razorpay 集成,在成功付款后,当我尝试将详细信息保存到数据库时出现错误。当我尝试使用 foreach 并在控制台中查看时,我通过 AJAX 和控制器发送详细信息,我总是收到为 foreach 语句提供的错误无效参数。
这是交易成功后的脚本
<script>
function demoSuccessHandler(transaction) {
// You can write success code here. If you want to store some data in database.
$("#paymentDetail").removeAttr('style');
$('#paymentID').text(transaction.razorpay_payment_id);
var paymentDate = new Date();
$('#paymentDate').text(
padStart(paymentDate.getDate()) + '.' + padStart(paymentDate.getMonth() + 1) + '.' + paymentDate.getFullYear() + ' ' + padStart(paymentDate.getHours()) + ':' + padStart(paymentDate.getMinutes())
);
$.ajax({
method: 'post',
url: "{!!route('dopayment')!!}",
dataType:"json",
data: {
"_token": "{{ csrf_token() }}",
"product": "{{ json_encode($product)}}",
"Company": "{{ $company}}",
"Address": "{{$address}}",
"Contact": "{{$contact}}",
"razorpay_payment_id": transaction.razorpay_payment_id
},
complete: function (r) {
console.log('complete');
console.log(r);
}
})
}
</script>
<script>
var options = {
key: "{{ env('RAZORPAY_KEY') }}",
amount: '{{ $subtotal}}',
name: 'AMCOR RAZORPAY',
description: 'AMCOR INTERNATIONAL',
image: 'https://i.imgur.com/n5tjHFD.png',
handler: demoSuccessHandler
}
</script>
控制器功能是
public function dopayment(Request $request) {
$input = $request->all();
$product = $request->product;
foreach ($product as $single) {
# code...
print_r($single->name);
}
print_r($product);
exit;
}
【问题讨论】:
-
您正在以字符串形式为该参数发送 JSON,因此您需要再次解码它,然后才能使用它...
-
请打印 $input = $request->all(); print_r($输入);并输出
-
数组\n(\n [_token] => b4ta6V2znRmJwTRg8eBgkZnqtyKfF6Gbqtnt2nKB\n [产品] => ["{"id":"9","name":"R 007-4ft ","price":40,"quantity":"202","attributes":{"image":"glassfilms\\/December2019\\/uiwv4WDsYWjmtVxcSuES.jpg","crm":"Pro181"},"条件":[]}","{"id":"7","name":"Frosted 007-4ft","price":40,"quantity":967,"attributes":{"image":" glassfilms\\/December2019\\/ZJgWUNaYrPnvsoRfuagv.jpg","crm":"PRO105"},"conditions":[]}"]\n [公司] => 公司:\n [地址] => 公司:地标:\n [联系方式] => \n [razorpay_payment_id] => pay_ED3rIld3uOhRfE\n)\n -
我认为发送到控制器的产品格式无效,因为我通过 json 验证器检查结果是无效的 JSON 格式。请帮助我更改格式,因为当我从 $products 中删除 json_encode 时,我得到 htmlspecialchars() 期望参数 1 是字符串,给定数组
-
你能 var_dump $product 吗?
标签: php jquery ajax laravel laravel-5