我想进行 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');
在您的控制器中支付和成功功能/方法只需更改
$provider = new ExpressCheckout;
到
$provider = new ExpressCheckout();