php api json查错,PHP Paypal REST API - 错误:JSON解析错误:意外的EOF

我正在使用以下API代码进行高级PayPal集成:

// # Create Payment using PayPal as payment method

// This sample code demonstrates how you can process a

// PayPal Account based Payment.

// API used: /v1/payments/payment

require __DIR__ . '/bootstrap.php';

use PayPal\Api\Amount;

use PayPal\Api\Details;

use PayPal\Api\Item;

use PayPal\Api\ItemList;

use PayPal\Api\Payer;

use PayPal\Api\Payment;

use PayPal\Api\RedirectUrls;

use PayPal\Api\Transaction;

// ### Payer

// A resource representing a Payer that funds a payment

// For paypal account payments, set payment method

// to 'paypal'.

$payer = new Payer();

$payer->setPaymentMethod("paypal");

// ### Itemized information

// (Optional) Lets you specify item wise

// information

$item1 = new Item();

$item1->setName('Ground Coffee 40 oz')

->setCurrency('USD')

->setQuantity(1)

->setSku("123123") // Similar to `item_number` in Classic API

->setPrice(7.5);

$item2 = new Item();

$item2->setName('Granola bars')

->setCurrency('USD')

->setQuantity(5)

->setSku("321321") // Similar to `item_number` in Classic API

->setPrice(2);

$itemList = new ItemList();

$itemList->setItems(array($item1, $item2));

// ### Additional payment details

// Use this optional field to set additional

// payment information such as tax, shipping

// charges etc.

$details = new Details();

$details->setShipping(1.2)

->setTax(1.3)

->setSubtotal(17.50);

// ### Amount

// Lets you specify a payment amount.

// You can also specify additional details

// such as shipping, tax.

$amount = new Amount();

$amount->setCurrency("USD")

->setTotal(20)

->setDetails($details);

// ### Transaction

// A transaction defines the contract of a

// payment - what is the payment for and who

// is fulfilling it.

$transaction = new Transaction();

$transaction->setAmount($amount)

->setItemList($itemList)

->setDescription("Payment description")

->setInvoiceNumber(uniqid());

// ### Redirect urls

// Set the urls that the buyer must be redirected to after

// payment approval/ cancellation.

$baseUrl = getBaseUrl();

$redirectUrls = new RedirectUrls();

$redirectUrls->setReturnUrl("$baseUrl/ExecutePayment.php?success=true")

->setCancelUrl("$baseUrl/ExecutePayment.php?success=false");

// ### Payment

// A Payment Resource; create one using

// the above types and intent set to 'sale'

$payment = new Payment();

$payment->setIntent("sale")

->setPayer($payer)

->setRedirectUrls($redirectUrls)

->setTransactions(array($transaction));

// For Sample Purposes Only.

$request = clone $payment;

// ### Create Payment

// Create a payment by calling the 'create' method

// passing it a valid apiContext.

// (See bootstrap.php for more on `ApiContext`)

// The return object contains the state and the

// url to which the buyer must be redirected to

// for payment approval

try {

$payment->create($apiContext);

} catch (Exception $ex) {

exit(1);

}

// ### Get redirect url

// The API response provides the url that you must redirect

// the buyer to. Retrieve the url from the $payment->getApprovalLink()

// method

$approvalUrl = $payment->getApprovalLink();

return $payment;我带有checkout.js的html文件:

paypal.Button.render({

env: 'sandbox',

payment: function(resolve, reject) {

var CREATE_PAYMENT_URL = '/paypal/CreatePaymentUsingPayPal.php';

return paypal.request.post(CREATE_PAYMENT_URL)

.then(function(data) { resolve(data.paymentID); })

.catch(function(err) { reject(err); });

},

onAuthorize: function(data) {

var EXECUTE_PAYMENT_URL = '/paypal/ExecutePayment.php';

return paypal.request.post(EXECUTE_PAYMENT_URL,

{ paymentID: data.paymentID, payerID: data.payerID })

.then(function(data) { /* Go to a success page */ })

.catch(function(err) { /* Go to an error page */ });

}

}, '#paypal-button-server');

Paypal:

当我尝试通过点击paypal按钮进行快速结账时,我会得到:

Error: JSON Parse error: Unexpected EOF

如果我使用PayPal API,json会出现什么问题? (我的脚本基于Paypal API示例。)

$ apiContext和getBaseUrl()方法在bootstrap.php中定义。

日志:

04-2017 03:26:31] PayPal\Core\PayPalHttpConnection : INFO: Response Status : 201

[27-04-2017 03:26:31] PayPal\Core\PayPalHttpConnection : DEBUG: Response Headers : HTTP/1.1 201 Created, Date: Thu, 27 Apr 2017 15:26:31 GMT, Server: Apache, paypal-debug-id: a201c7bc10e43, Content-Language: *, Paypal-Debug-Id: a201c7bc10e43, Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D1880%26app%3Dplatformapiserv%26TIME%3D2802647641%26HTTP_X_PP_AZ_LOCATOR%3D; Expires=Thu, 27 Apr 2017 15:56:31 GMT; domain=.paypal.com; path=/; Secure; HttpOnly, Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT, Vary: Authorization, Content-Length: 967, Connection: close, Content-Type: application/json, ,

[27-04-2017 03:26:31] PayPal\Core\PayPalHttpConnection : DEBUG: Response Data : {"id":"PAY-1KU75701VG630150ALEBA3JY","intent":"sale","state":"created","payer":{"payment_method":"paypal"},"transactions":[{"amount":{"total":"20.00","currency":"USD","details":{"subtotal":"17.50","tax":"1.30","shipping":"1.20"}},"description":"Payment description","invoice_number":"59020da6c110b","item_list":{"items":[{"name":"Ground Coffee 40 oz","sku":"123123","price":"7.50","currency":"USD","quantity":1},{"name":"Granola bars","sku":"321321","price":"2.00","currency":"USD","quantity":5}]},"related_resources":[]}],"create_time":"2017-04-27T15:26:31Z","links":[{"href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-1KU75701VG630150ALEBA3JY","rel":"self","method":"GET"},{"href":"https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-8JM45688MM601683H","rel":"approval_url","method":"REDIRECT"},{"href":"https://api.sandbox.paypal.com/v1/payments/payment/PAY-1KU75701VG630150ALEBA3JY/execute","rel":"execute","method":"POST"}]}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值