项目需要使用到PayPal支付,在网上找了一圈大多写的太过简陋不易看懂,在这里详细记录集成过程方便后期使用.

第一步:下载PayPal-PHP-SDK集成到项目中

最新SDK下载地址: https://github.com/paypal/PayPal-PHP-SDK/releases

官方英文文档:点击打开链接

下载sdk解压,我们需要使用到路径:PayPal-PHP-SDK-1.13.0\PayPal-PHP-SDK\paypal\rest-api-sdk-php\lib下的文件夹

如图:

将文件夹导入到tp5项目的extend目录下:

同时也需要将压缩包中log记录的Psr文件夹导入,否则运行会报错

第二步:项目中的使用

step1: 配置ApiContext,也就是设置PayPal官网申请的clientId和clientSecret,具体申请方法很多教程有,这里不写

        $apiContext = new ApiContext(new OAuthTokenCredential(config('paypal')['clientId'],       // paypal 官网获取的clientId和clientSecretconfig('paypal')['clientSecret']));$apiContext->setConfig(array(// 'mode' => 'sandbox','mode' => 'live','log.LogEnabled' => false,'log.FileName' => '../PayPal.log','log.LogLevel' => 'Info', // PLEASE USE `INFO` LEVEL FOR LOGGING IN LIVE ENVIRONMENTS'cache.enabled' => true,'http.CURLOPT_CONNECTTIMEOUT' => 60// 'http.headers.PayPal-Partner-Attribution-Id' => '123123123'//'log.AdapterFactory' => '\PayPal\Log\DefaultLogFactory' // Factory class implementing \PayPal\Log\PayPalLogFactory));

step2: 创建设置订单,item代表一个订单,ItemList 用于存放多个订单统一支付,支付成功和取消都会跳回你设置的接口,订单创建后会生成一个跳转PayPal支付的地址,和订单号,用户访问该地址就可以在PayPal上操作支付了,具体代码如下:

        $apiContext = $this->initPayPal();  // 获取配置好的ApiContext$itemList = new ItemList();$items = array();$total = 0;$product = 'test支付测试';$price = 0.01;  // 金额$total = $total + $price ;$payer = new Payer();$payer->setPaymentMethod('paypal');$item = new Item();$item->setName($product)->setCurrency('HKD')->setQuantity(1)->setPrice($price);$items[] = $item;$itemList->setItems($items);$shipping = 0.00; //运费$total = $total  + $shipping;$details = new Details();$details->setShipping($shipping)->setSubtotal($total);$amount = new Amount();$amount->setCurrency('HKD')->setTotal($total);$transaction = new Transaction();$transaction->setAmount($amount)->setItemList($itemList)->setDescription($product)->setInvoiceNumber(uniqid());$baseUrl = "http://localhost/home/order/test";$redirectUrls = new RedirectUrls();$redirectUrls->setReturnUrl($baseUrl.'?lz_type=1')->setCancelUrl($baseUrl.'?lz_type=2');$payment = new Payment();$payment->setIntent('sale')->setPayer($payer)->setRedirectUrls($redirectUrls)->setTransactions(array($transaction));try {$payment->create($apiContext);  //错误点//} catch (PayPalConnectionException $e) {echo $e->getData();die();}$approvalUrl = $payment->getApprovalLink();$id = $payment->getId();$this->redirect($approvalUrl);

TP5集成PayPal支付相关推荐

  1. Java集成PayPal支付

    Java集成PayPal支付 1.申请账号 浏览器中输入:https://www.paypal.com,点击 "注册" 选择 "企业账号" ,信息可以随意填写 ...

  2. [chatgpt] golang集成paypal支付接口

    go 语言集成paypal支付接口 PayPal 是一种常用的在线支付服务.如果要在 Go 语言项目中使用 PayPal 支付接口,您需要使用 PayPal 提供的 API.下面是 Go 语言中如何集 ...

  3. 详细教程: android项目集成PayPal 支付

    2017年7月5日  更新了, 总体该说的都说了, 后面再看看还有啥细节补充吧. 项目是跨境电商,国外的支付需要集成paypal支付,在网上搜了好久,教程都是断断续续,对开发者来说不太友好! 好在现在 ...

  4. Android下集成Paypal支付

    近期项目需要研究paypal支付,官网上的指导写的过于复杂,可能是老外的思维和中国人不一样吧.难得是发现下面这篇文章: http://www.androidhive.info/2015/02/andr ...

  5. 2022年集成paypal支付的相关心得

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.paypal是什么? 二.使用步骤 1.准备 :注册一个paypa账号 2.编写paypal后端接口demo 总结 ...

  6. Android集成Paypal支付Braintree

    最新发现Paypal的官方SDK已经不再维护了,所以需要把项目的支付做一下升级. 文档链接:点击这里 根据文档来看Paypal支付的集成相比以前简单了许多,下面我们讲一下集成步骤: 1:在 build ...

  7. 集成PayPal支付

    这里集成PayPal是指国际版.中国版的贝宝与国际版是相互独立的,功能与支付宝类似,而且只支持在中国使用人民币支付. 如果商户是在中国,PayPal只支持三种产品: [list] [*]快速结账(Ex ...

  8. java集成paypal支付,含Android,服务端代码

    支付流程 1. 前端选择商品,调用paypal支付 2. 支付完成,paypal会返回payment信息,将payment的id返回给自己服务端 3. 服务端根据paymentId,调paypal,查 ...

  9. PHP集成paypal支付

    注册paypal账户 https://developer.paypal.com/  到paypal的开发者官网注册开发者账号. 注册成功登录以后,点击右上角的dashboard进入仪表盘,(成功以后记 ...

最新文章

  1. 《Flex 3程序设计》——Adobe技术专家力作
  2. 打不死的小强机器人来了,向心加速度堪比猎豹,能抵抗自身数百倍重量碾压...
  3. 树莓派的Perl 遨游之旅
  4. linux分区知识,Linux硬盘分区知识
  5. Javascript-入门
  6. 算法与数据结构(python):线性查找与二分查找
  7. 希尔伯特曲线 java_Java中空间填充Hilbert曲线的递推算法
  8. 我很生气,帮了不足一个月就离开了
  9. 低压锅炉行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  10. 向园子里的朋友探讨一个问题:如果判定一个对象已被处置
  11. c2065c语言错误,C语言常见错误
  12. 【大数据部落】R语言如何使用rjags R2jags来建立贝叶斯模型
  13. 阿里的技术绝境与飞天之路
  14. QT 笔记6 | Qt网络编程
  15. 【python】微信朋友圈数据分析及可视化(爬虫+数据挖掘)
  16. 离散数学——命题逻辑
  17. 滴答清单、为知笔记、Effie,谁才是写稿爱好者的最佳战友?
  18. maximo-API下载连接
  19. 网页css样式滚动字幕
  20. c语言求寻找假币的次数,C语言经典算法 - 八枚银币问题

热门文章

  1. 校内体育场地预约管系统设计与实现
  2. 云运维拓扑图_云原生架构之【Kubernetes(K8s)】第四部分:资源编排部署和运维管理...
  3. JRS303数据校验
  4. LeetCode-287-寻找重复数
  5. 日本咖啡馆推出AR体验,在三次元邂逅初音未来
  6. 8位基本结构模型计算机,简述8位模型计算机基本结构与原理。
  7. 【Pygame经典合集】​​​​​​终极白给大招:让你玩儿到爽(附多款游戏源码)
  8. 3D小人 思考/问号 表情图 png格式
  9. python调用access数据库_Python3.7 pyodbc完美配置访问access数据库
  10. C/C++旅游景区导航系统