php - PayPal Rest API 创建付款不返回销售 ID

标签 php paypal paypal-rest-sdk

我正在尝试使用 PayPal 的其余 API(沙盒)执行信用卡付款。这是代码:

$payment = new Payment();
$payment->setIntent('sale');
...

try {
    $payment->create($this->apiContext);

    $saleId = $payment->getTransactions()[0]->getRelatedResources()[0]->getSale()->getId();
} catch (PayPalConnectionException $ex) {
    ...
}

这会发送以下 JSON:

{"experience_profile_id":"XX-XXXX-XXXX-XXXX-XXXX","intent":"sale","payer":{"payer_info":{"first_name":"Jim","last_name":"Smith","email":"someone@somewhere.com","phone":""},"payment_method":"credit_card","funding_instruments":[{"credit_card":{"first_name":"Jim","last_name":"Smith","number":"XXXXXXXXXXXX4487","type":"visa","expire_month":"06","expire_year":"2020","cvv2":"123","billing_address":{"line1":"123 Test Street","line2":"","city":"Test City","state":"","postal_code":"XXXX XXX","country_code":"GB"}}}]},"transactions":[{"amount":{"currency":"GBP","total":"13.50","details":{"shipping":"3.50","tax":"1.67","subtotal":"8.33"}},"item_list":{"items":[{"name":"T-Shirt Black Small","currency":"GBP","quantity":"1","sku":"abc123","price":"8.33"}],"shipping_address":{"recipient_name":"Jim Smith","line1":"123 Test Street","line2":"","city":"Test City","state":"Some State","postal_code":"XXXX XXX","country_code":"GB"}},"description":"Payment details","invoice_number":"XXXXX"}]}

直到最近它都运行良好,但现在它不会为相关资源返回任何内容。这是我要返回的 json:

{"id":"PAY-XXXXXXXXXXXXXXXXXXXXXX","create_time":"2016-06-20T11:45:28Z","update_time":"2016-06-20T11:45:28Z","state":"created","intent":"sale","payer":{"payment_method":"credit_card","funding_instruments":[{"credit_card":{"type":"visa","number":"xxxxxxxxxxxx4487","expire_month":"6","expire_year":"2020","first_name":"Jim","last_name":"Smith","billing_address":{"line1":"123 Test Street","city":"Test City","postal_code":"XXXX XXX","country_code":"GB"}}}]},"transactions":[{"amount":{"total":"13.50","currency":"GBP","details":{"subtotal":"8.33","tax":"1.67","shipping":"3.50"}},"description":"Payment details","item_list":{"items":[{"name":"T-Shirt Black Small","sku":"abc123","price":"8.33","currency":"GBP","quantity":"1"}],"shipping_address":{"recipient_name":"Jim Smith","line1":"123 Test Street","city":"Test City","state":"Some State","postal_code":"XXXX XXX","country_code":"GB"}},"related_resources":[]}],"links":[{"href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-XXXXXXXXXXXXXXXXXXXXXX","rel":"self","method":"GET"}]}

请注意,我使用的是 1.7.2 版本的 API,并且我最近升级到了 PHP 版本 7。

如果有人能解释我做错了什么,我将不胜感激。

谢谢

最佳答案

虽然不是我自己的错,但我终于设法使它正常工作。看来我的沙盒买家帐户不再有效。我找到了以下文档:

https://github.com/paypal/PayPal-PHP-SDK/blob/master/sample/payments/CreatePaymentUsingPayPal.php

这很好用,所以我玩了一个发现不同的游戏,唯一有助于解决问题的方法是使用样本中的卡片详细信息。我已经在这个问题上花费了相当多的时间,所以我会接受它工作正常,希望我不会在生产过程中遇到任何问题。

关于php - PayPal Rest API 创建付款不返回销售 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37794354/

相关文章:

.net-core - 将 Paypal 与 .Net Core 3 集成

php - Paypal REST Api 错误 : response 401 PPConnectionException

php - 图片上传到 blob 不起作用

php - 执行() SQLSTATE[HY093] : Invalid parameter number

php MYSQL 查询 "ORDER BY"不工作

php - 如何在 Paypal 快速结帐 PHP 中设置 1/3/5 年计费期

php - 是否可以使用新的 PHP SDK 将自定义 "notify_url"传递给 paypal?

node.js - PayPal-node-SDK `Subscription start date should be greater than current date` 总是在凌晨 12 点之后发生

php - 具有可变/动态价格的 Paypal 立即购买按钮

php - 两个表一起查询,只显示一条记录