php - PayPal sizeof():参数必须是数组或者实现了Countable的对象
问题描述
我正在尝试在我的本地主机上安装 PayPal,但是当我测试 payment.php 时,在此文件中收到以下警告:
警告:sizeof():参数必须是数组或对象,在 /Applications/MAMP/htdocs/functions/PayPal/vendor/paypal/rest-api-sdk-php/lib/PayPal/Common/PayPalModel.php 中实现 Countable在第 176 行
payment.php代码在这里:
<?php
$client_ID = '********';
$client_Secret = '********';
require __DIR__ . '/PayPal/vendor/autoload.php';
$apiContext = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential(
$client_ID, // ClientID
$client_Secret // ClientSecret
)
);
$apiContext->setConfig([
'mode'=>'sandbox',
'http.ConnectionTimeOut'=>30,
'log.LogEnabled'=>false,
'log.FileName'=>'',
'log.LogLevel'=>'FINE',
'validation.level'=>'log'
]);
//$total = $amount;
// After Step 2
$payer = new \PayPal\Api\Payer();
$payer->setPaymentMethod('paypal');
$amount = new \PayPal\Api\Amount();
$amount->setTotal('1.00');
$amount->setCurrency('USD');
$transaction = new \PayPal\Api\Transaction();
$transaction->setAmount($amount);
$redirectUrls = new \PayPal\Api\RedirectUrls();
$redirectUrls->setReturnUrl("https://example.com/your_redirect_url.html")
->setCancelUrl("https://example.com/your_cancel_url.html");
$payment = new \PayPal\Api\Payment();
$payment->setIntent('sale')
->setPayer($payer)
->setTransactions(array($transaction))
->setRedirectUrls($redirectUrls);
try {
$payment->create($apiContext);
echo $payment;
echo "\n\nRedirect user to approval_url: " . $payment->getApprovalLink() . "\n";
} catch (\PayPal\Exception\PayPalConnectionException $ex) {
// This will print the detailed information on the exception.
//REALLY HELPFUL FOR DEBUGGING
echo $ex->getData();
}
?>
我必须尝试将此页面用于https://github.com/paypal/PayPal-PHP-SDK/wiki/Making-First-Call
但我收到 sizeof() 警告。
我该如何解决这个问题有人可以帮助我吗?
解决方案
我遇到了这个问题,我通过以下更改得到了解决方案。
文件:vendor\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalModel.php
改变
} else if (sizeof($v) <= 0 && is_array($v) ) {
至
} else if (is_array($v) && sizeof($v) <= 0) {
推荐阅读
- linux - 如何原子地修改不同目录(同一个磁盘)下的多个文件?
- python - 如何停止进一步输入python tkinter
- javascript - 如何在茉莉花中使用嵌套函数到达 toHaveBeenCalledTimes(9)?
- android - 无法对齐列 Jetpack 中的文本
- android - 无法反编译 React Native android apk
- python - 为什么 stripe.Charge.list 最多只能检索 100 个费用?
- go - Go:Robfig Cron 调度程序正在运行但未调用函数
- python - 如何纠正 minimumsq() 缺少 1 个必需的位置参数:'x0'
- javascript - 单击按钮时,我正在尝试将输入的内容保存到本地存储中。我究竟做错了什么?
- python - 如何从 BeautifulSoup 的跨度中获取数据?