我正在使用以下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"}]}

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

  1. php编程查错,盘点PHP编程常见失误

    变量声明 如果在一条语句中声明一个变量,如下所示:$var='value';编译器首先会求出语句右半部分的值,恰恰正是语句的这一部分常常会引发错误.如果使用的语法不正确,就会出现解析错误. 解析错误 ...

  2. 如何安装kaggle API下载数据 及报错OSError: Could not find kaggle.json. Make sure it‘s located in /home/user/解决办法

    如何安装kaggle API下载数据 及报错OSError: Could not find kaggle.json. Make sure it's located /解决办法 C:\Users\pc& ...

  3. VB速查大全(数据库、表格及报表编程) ★ VB错误处理,ado常见错误,VB数据类型等,网上有很多教程是错的,强烈建议看此文

    ■ 学新的编程语言先仔细看该语言案例教程或从入门到精通的书.对具体语句.函数及可使用对象不了解或忘记的,可在该编程语言的"参考手册"中检索. <如果资料为电子书时,即使不知道 ...

  4. Paypal REST API Java 版 PC端商城支付接口对接。

    引言: 同类文借鉴链接:http://blog.csdn.net/change_on/article/details/73881791(对此博主万分感谢) Paypal账号注册网址:https://w ...

  5. python快递费用计算_python调用快递鸟api实现查快递

    python调用快递鸟api实现查快递 由于我们快递信息是好多平台得,所以说需要一个能去某一个集成到一块得地方查询,那么我用的是快递鸟. 进去注册.登录之后,购买即时查询的业务(免费版,一天500次) ...

  6. paypal开发整理文档(14)——PayPal Orders API整理

    官方文档地址:https://developer.paypal.com/docs/api/orders/v2/ 目录 Orders 1. Create Order - 创建订单 Header para ...

  7. python爬取有道词典json报错,求帮助!

    python爬取有道词典json报错,求帮助! import urllib.request import urllib.parse import json import time import ran ...

  8. wps解析json数据_通过WordPress HTTP API 获取json内容并解析

    WordPress 4.0的一个亮点就是JSON API的加入,今天我们提前来看看怎么获取JSON的内容并显示出来.过程就是用PHP获取远程JSON的内容,然后把获取到的JSON转化为PHP对象,然后 ...

  9. (五)stm32工程代码HardFault异常查错调试方法

    (五)stm32工程代码HardFault异常查错调试方法 参考文章: (1)(五)stm32工程代码HardFault异常查错调试方法 (2)https://www.cnblogs.com/zhan ...

最新文章

  1. php从数据库读取中文显示问号??的解决办法
  2. eclipse 中配置maven环境
  3. 谈谈机器学习的基本问题,不谈数学!
  4. SecureCRT自动保存窗口数据到文件,自动保存日志,每行添加时间戳
  5. 循环彩灯实验c语言程序,实验3LED指示灯循环控制.doc
  6. python实现qq登录界面_使用Python编写一个QQ办公版的图形登录界面!
  7. 【OpenCV】OpenCV函数精讲之 -- 命名空间
  8. android 2.3 otg,学会使用手机的OTG功能-事半功倍-系列评测2
  9. 为什么前端工程师薪资越来越高?
  10. android spp协议,Android蓝牙开发SPP协议通信
  11. 开源Scout攻击检测工具
  12. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_12-MongoDb入门-基础概念...
  13. java类后面的尖括号_泛型 - Java中的T(尖括号)是什么意思?
  14. C++ 双声道PCM音频分成单声道音频
  15. C语言文件加密解密软件
  16. AUTOCAD--实时缩放
  17. u盘的大小在计算机无法显示,Win10电脑插入U盘后没有显示可用容量打不开无法读取如何解决...
  18. 台式计算机检测不到无线网卡,台式机检测不到无线网卡怎么办
  19. linux鼠标手势,Vivaldi 1.2 发布,定制鼠标手势
  20. 操作手册与用户手册的区别

热门文章

  1. 从零开始的前端异次元生活
  2. 子元素个数不定的垂直居中布局
  3. 【设计模式】5、单例模式
  4. 大数据量表的优化查询
  5. COM编程之四 引用计数
  6. (best!)JAVA中文字符编码问题详解
  7. asp.net AJAX 验证用户名是否存在 -Jquery
  8. rpmbuild - 构建 RPM 打包
  9. webdriver.chrome()禁止加载图片
  10. 从零开始利用vue-cli搭建简单音乐网站(四)