json 中的 php 变量

标签 php json paypal

我有这个用于 paypal 单次付款调用的代码,并且想要添加一个 php 变量,其中价格为“value”:“.$planPrice”。 如果我输入任何数字而不是 $planPrice ,例如:“1000”,它可以正常工作,并且我会收到通知,但是当我添加 php 变量时,它会显示以下内容:

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Invalid JSON String' in C:\xampp\htdocs\website\paypal_payouts\PayPal-PHP-SDK\paypal\rest-api-sdk-php\lib\PayPal\Validation\JsonValidator.php:29 Stack trace: #0 C:\xampp\htdocs\website\paypal_payouts\PayPal-PHP-SDK\paypal\rest-api-sdk-php\lib\PayPal\Common\PayPalModel.php(50): PayPal\Validation\JsonValidator::validate('{\r\n ...') #1 C:\xampp\htdocs\website\paypal_payouts\CreateSinglePayout.php(67): PayPal\Common\PayPalModel->__construct('{\r\n ...') #2 C:\xampp\htdocs\website\admin\reports\paynow.php(19): include('C:\xampp\htdocs...') #3 {main} thrown in C:\xampp\htdocs\website\paypal_payouts\PayPal-PHP-SDK\paypal\rest-api-sdk-php\lib\PayPal\Validation\JsonValidator.php on line 29

这是php中的代码:

$senderItem = new \PayPal\Api\PayoutItem();
$senderItem->setRecipientType('Email')
    ->setNote('Thanks for your patronage!')
    ->setReceiver($coachUsername)
    ->setSenderItemId("2014031400023")
    ->setAmount(new \PayPal\Api\Currency("{
                        'value':".$planPrice.",
                        'currency':'USD'
                    }")); 

最佳答案

You don't need to pass a JSON string to Paypal\Api\Currency ,使用数组会更简单:

$senderItem = new \PayPal\Api\PayoutItem();
$senderItem->setRecipientType('Email')
    ->setNote('Thanks for your patronage!')
    ->setReceiver($coachUsername)
    ->setSenderItemId("2014031400023")
    ->setAmount(new \PayPal\Api\Currency([
                        'value' => $planPrice,
                        'currency' => 'USD'
                    ]));

但是如果必须使用 JSON,则它需要有效。 JSON 只允许字符串和键名使用双引号:

$senderItem = new \PayPal\Api\PayoutItem();
$senderItem->setRecipientType('Email')
    ->setNote('Thanks for your patronage!')
    ->setReceiver($coachUsername)
    ->setSenderItemId("2014031400023")
    ->setAmount(new \PayPal\Api\Currency('{
                        "value":'.$planPrice.',
                        "currency":"USD"
                    }'));

(我在这里假设 "value" 应设置为 JSON 数字。如果它应该是 JSON 字符串,请将倒数第三行替换为 "value": "' . $planPrice . '", 代替。)

关于json 中的 php 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35085940/

相关文章:

php - 在 PHP 中读取/写入 MS Word 文件

php - 用于将用户 ID 从一个数据库映射到存在相同邮件的另一个数据库的迁移脚本

php - 连接表进行 COUNT 查询

java - 使用Gson在java中解析JSON

python - 将弹出窗口添加到 folium 中的 geojson 层

cron - 如何在 cron 中运行 php 脚本

json - 使用 jersey 客户端将 JSON 响应作为字符串读取

php - Paypal 电子邮件状态验证

iphone - Itunes Connect 中的 Paypal ?

paypal - 完成交易后可以存储客户的信用卡信息吗?