Response::setContent():参数 #1 ($content) 必须是 ?string

问题描述 投票:0回答:1

我想进行 Paypal 付款,并且我正在使用 Laravel 版本 9.20,但出现以下错误。

Symfony\Component\HttpFoundation\Response::setContent():参数 #1 ($content) 必须是 ?string

类型

当我尝试到达付款路线时,我不知道如何摆脱它。所以,我将把我的代码放在下面。谁能帮我?谢谢你。

控制器

use Illuminate\Http\Request;
use Srmklive\PayPal\Services\ExpressCheckout;

class PaypalController extends Controller
{
    public function goPayment()
    {
        return view('products.welcome');
    }

    public function payment()
    {
        $data = [];
        $data['items'] = [
            [
                'name' => 'Apple',
                'price' => 100,
                'desc' => 'Macbook pro 14 inch',
                'qty' => 1
            ]
        ];

        $data['invoice_id'] = 1;
        $data['invoice_description'] = "Order #{$data['invoice_id']} Invoice";
        $data['return_url'] = route('payment.success');
        $data['cancel_url'] = route('payment.cancel');
        $data['total'] = 100;

        $provider = new ExpressCheckout;
        $response = $provider->setExpressCheckout($data);
        $response = $provider->setExpressCheckout($data, true);

        return redirect($response['paypal_link']);
    }

    public function cancel()
    {
        dd('Your payment is canceled.');
    }

    public function success(Request $request)
    {
        $provider = new ExpressCheckout;
        $response = $provider->getExpressCheckoutDetails($request->token);

        if (in_array(strtoupper($response['ACK']), ['SUCCESS', 'SUCCESSWITHWARNING'])) {
            dd('Your payment was successfully.');
        }

        dd('Please try again later.');
    }
}

路线

Route::get('/', function () {
    return view('welcome');
});
Route::get('Payment', 'App\Http\Controllers\PaypalController@payment')
    ->name('payment');
Route::get('CancelPayment', 'App\Http\Controllers\PaypalController@CancelPayment')
    ->name('payment.cancel');
Route::get('Payment/success', 'App\Http\Controllers\PaypalController@Payment-success')
    ->name('payment.success');
laravel paypal payment-gateway paypal-sandbox
1个回答
0
投票

在您的控制器中支付和成功功能/方法只需更改

$provider = new ExpressCheckout;

 $provider = new ExpressCheckout();
© www.soinside.com 2019 - 2024. All rights reserved.