大佬教程收集整理的这篇文章主要介绍了Laravel SaveJson 到数据库,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 Json 和 API 的新手,我需要你的帮助来理解这个错误。我希望将 JsON 数据保存在数据库表 (mpesaStkPush) 中,我得到的只是一个错误。
我尝试将 Json_encode 更改为 Json_decode。
laravel.log
[2021-02-12 19:13:41] local.ERROR: Symfony\Component\httpFoundation\Response::setContent(): Argument #1 ($content) must be of type ?String,stdClass given
public function stkPush(request $request){
$amount = $request->@R_747_10586@lamount;
$url ='https://sandBox.safaricom.co.ke/mpesa/stkpush/v1/processrequest';
$curl_post_data =[
'BusinessShortCode' => 174379,'password' => $this->lipaNampesapassword(),'timestamp'=>Carbon::rawParse('Now')->format('ymdHms'),'transactionType'=> 'CustomerPayBillOnline',//'amount' => $amount,'amount' => '1','PartyA' =>'254710909198','PartyB' =>174379,'Phonenumber'=>'254710909198','CallBACkURL'=> 'https://375e0eb81d88.ngrok.io/API/stk/push/callBACk/url','AccountReference'=>"Wabe Digital Agency",'transactionDesc'=> "lipa Na mpesa"
];
$data_String =Json_encode($curl_post_data);
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_httpheader,array('Content-Type:application/Json','Authorization:Bearer '.$this->newAccesstoken()));
curl_setopt($curl,CURLOPT_RETURNTRANSFER,truE);
curl_setopt($curl,CURLOPT_POST,CURLOPT_POSTFIELDS,$data_String);
$curl_response = curl_exec($curl);
return Json_encode($curl_responsE);
}
public function mpesaRes(request $request){
$response =Json_decode($request->getContent());
if (property_exists($response,property: 'Body') && $response->Body->stkCallBACk->ResultCode =='0'){
$merchant_request_ID=$response->Body->stkCallBACk->MerchantrequestID;
$checkout_request_ID=$response->Body->stkCallBACk->checkoutrequestID;
$trn = new mpesaStkPush;
$trn =mpesaStkPush::where('merchant_request_ID',$merchant_request_ID)->where('checkout_request_ID',$checkout_request_ID)->first();
$data=[
'result_desc'=> $response->Body->stkCallBACk->ResultDesc,'result_code'=> $response->Body->stkCallBACk->ResultCode,'merchant_request_ID' => $merchant_request_ID,'checkout_request_ID' => $checkout_request_ID,'amount' => $response->Body->stkCallBACk->CallBACkMetadata[0]->Value,'mpesa_receipt_number'=> $response->Body->stkCallBACk->CallBACkMetadata[1]->Value,//'b2c_utility_account_available_funds','transaction_date' => $response->Body->stkCallBACk->CallBACkMetadata[2]->Value,'phone_number'=> $response->Body->stkCallBACk->CallBACkMetadata[3]->Value,];
$trn->fill($data)->save();
. K
多注意日志。在您的情况下,它指出您与类型不匹配(放置类实例而不是字符串)
无论如何,我建议你阅读以下php函数文档:
https://www.php.net/manual/en/function.json-decode.php
第二个参数是一个技巧:如果它被设置为 true,你将得到一个数组而不是 stdClass 实例。
此外,请求实例有更多雄辩的方法。
以上是大佬教程为你收集整理的Laravel SaveJson 到数据库全部内容,希望文章能够帮你解决Laravel SaveJson 到数据库所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。