程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Laravel SaveJson 到数据库大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Laravel SaveJson 到数据库?

开发过程中遇到Laravel SaveJson 到数据库的问题如何解决?下面主要结合日常开发的经验,给出你关于Laravel SaveJson 到数据库的解决方法建议,希望对你解决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

@H_632_2@mpesaController

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,请注明来意。
标签: