如何修复quickbooks api laravel guzzle http上的错误请求属性无效或不受支持

xcitsw88  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(155)

我正在为我的一个项目编写quickbooks api。我得到以下错误:
guzzlehttp\exception\clientexception客户端错误: POST https://sandbox-quickbooks.api.intuit.com/v3/company/4620816365163801940/invoice?minorversion=57 导致 400 Bad Request 响应:{“错误”:{“错误”:[{“消息”:“请求的属性无效或不受支持”,“详细信息”:“属性名称:无法识别的字段\(被截断…)
守则:

$invoice = $http->post(
    'https://sandbox-quickbooks.api.intuit.com/v3/company/'.config('services.quickbooks.realmId').'/invoice?minorversion=57',
    [
        'headers' => [
            'Accept'=> 'application/json',
            'Content-type'=> 'application/json',
            'Authorization'=> 'Bearer '.$oauth['access_token']
            // 'Host'=> 'quickbooks.api.intuit.com'
        ],
        'body' => json_encode($invoiceBody)
    ]
);

$invoice = json_decode((string)$invoice->getBody(), true);
// dd($invoice);
$buyer->quickbooks_invoice = $invoice['Invoice']['Id'];
$buyer->save();
//pdf invoice
$pdfFileResource = fopen(public_path().'/Invoice.pdf', 'w+');
$pdf = $http->get(
    'https://sandbox-quickbooks.api.intuit.com/v3/company/'.config('services.quickbooks.realmId').'/invoice/'.$invoice['Invoice']['Id'].'/pdf?minorversion=57',
    [
        'headers' => [
            'Accept'=> 'application/pdf',
            'Content-type'=> 'application/pdf',
            'Authorization'=> 'Bearer '.$oauth['access_token']
            // 'Host'=> 'quickbooks.api.intuit.com'
        ],
        'sink' => $pdfFileResource
    ]
);

我不知道它在对我说什么来修复它。有人能帮我吗?
请查找更新代码

$oauth = json_decode((string)$oauth->getBody(), true);
        DB::table('quickbooks_tokens')->where('id',1)->update(['refresh_token'=>$oauth['refresh_token'],'access_token'=>$oauth['access_token']]);        
        $invoiceBody['Line'][0]["Amount"] = $request->total_clearing_amount;
        $invoiceBody['Line'][0]["DetailType"] = "SalesItemLineDetail";
        $invoiceBody['Line'][0]["SalesItemLineDetail"]["ItemRef"]["value"] = $product->quickbooks_id;
        $invoiceBody['Line'][0]["SalesItemLineDetail"]["BuyerDetails"] = $buyer->email;
        $invoiceBody['Line'][0]["SalesItemLineDetail"]["SellerDetails"] = $seller->email;
        $invoiceBody['Line'][0]["SalesItemLineDetail"]["Shipping"] = $request->shipping_clearing;
        $invoiceBody['BillEmail']['Address'] = $buyer->email;
        $invoiceBody['SalesTermRef']["value"] = 1;
        $buyer = UserDetails::where('user_id', Auth::user()->id)->first();
        //dd($buyer);
        $invoiceBody['CustomerRef']["value"] = $buyer->quickbooks_id;
        $invoiceBody['AllowOnlineACHPayment'] = true;

        $invoice = $http->post(
            'https://sandbox-quickbooks.api.intuit.com/v3/company/'.config('services.quickbooks.realmId').'/invoice?minorversion=57',
            [
                'headers' => [
                    'Accept'=> 'application/json',
                    'Content-type'=> 'application/json',
                    'Authorization'=> 'Bearer '.$oauth['access_token']
                    // 'Host'=> 'quickbooks.api.intuit.com'
                ],
                'body' => json_encode($invoiceBody)
            ]
        );

        $invoice = json_decode((string)$invoice->getBody(), true);
        // dd($invoice);
        $buyer->quickbooks_invoice = $invoice['Invoice']['Id'];
        $buyer->save();
        //pdf invoice
        $pdfFileResource = fopen(public_path().'/Invoice.pdf', 'w+');
        $pdf = $http->get(
            'https://sandbox-quickbooks.api.intuit.com/v3/company/'.config('services.quickbooks.realmId').'/invoice/'.$invoice['Invoice']['Id'].'/pdf?minorversion=57',
            [
                'headers' => [
                    'Accept'=> 'application/pdf',
                    'Content-type'=> 'application/pdf',
                    'Authorization'=> 'Bearer '.$oauth['access_token']
                    // 'Host'=> 'quickbooks.api.intuit.com'
                ],
                'sink' => $pdfFileResource
            ]
        );

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题