1.首先去paypal开发者平台developer.paypal.com,去创建应用;一般我们是先创建sandbox,等sandbox跑通了再改回 live

2.将paypal的sdk放入thinkPHP,我习惯TP3和TP5都放在Vendor文件夹下

3.在控制器里或者自己封装一个paypal配置信息

require "vendor/autoload.php"; //载入sdk的自动加载文件

define('SITE_URL', 'http://localhost/PayPal'); //网站url自行定义

//创建支付对象实例

$paypal = new \PayPal\Rest\ApiContext(

new \PayPal\Auth\OAuthTokenCredential(

//模拟

'AckAgdCn4XCrgnhpUr7JszYo-svo5MQIYP94Y96TJ19saTrTlFkst9V1P75YCNTM_Knxb3OmjIUlcuGM',//clientId

'EKlhu2S9hWjJl9E9sg3YB4voaH7JR6JTXEr1R-lHbVzskMWl0cgFpIju1Fisd3z8HnL5RpMtl723fE7H'//clientSecret

)

);

4.具体接口

public function checkout()

{

$paypal = $this->start();

$product = I('post.product');

$price = I('post.price');

if (empty($product) && empty($price)) {

echo '';

die("lose some params");

}

$shipping = 0.00; //运费

$total = $price + $shipping;

$payer = new Payer();

$payer->setPaymentMethod('paypal');

$item = new Item();

$item->setName($product)

->setCurrency('USD')

->setQuantity(1)

->setPrice($price);

$itemList = new ItemList();

$itemList->setItems([$item]);

$details = new Details();

$details->setShipping($shipping)

->setSubtotal($price);

$amount = new Amount();

$amount->setCurrency('USD')

->setTotal($total)

->setDetails($details);

$transaction = new Transaction();

$transaction->setAmount($amount)

->setItemList($itemList)

->setDescription("支付描述内容1111")

->setInvoiceNumber(uniqid());

$redirectUrls = new RedirectUrls();

$redirectUrls->setReturnUrl(SITE_URL . '/pay?success=true')

->setCancelUrl(SITE_URL . '/pay?success=false');

$payment = new Payment();

$payment->setIntent('sale')

->setPayer($payer)

->setRedirectUrls($redirectUrls)

->setTransactions([$transaction]);

try {

$payment->create($paypal);

} catch (PayPalConnectionException $e) {

echo $e->getData();

die();

}

$approvalUrl = $payment->getApprovalLink();

header("Location: {$approvalUrl}");

}

public function pay()

{

$paypal = $this->start();

//print_r($_GET);die;

if (!isset($_GET['success'], $_GET['paymentId'], $_GET['PayerID'])) {

die();

}

if ((bool)$_GET['success'] === 'false') {

echo 'Transaction cancelled!';

die();

}

$paymentID = $_GET['paymentId'];

$payerId = $_GET['PayerID'];

$payment = Payment::get($paymentID, $paypal);

$execute = new PaymentExecution();

$execute->setPayerId($payerId);

print_r($_GET);die;

try {

$result = $payment->execute($execute, $paypal);

} catch (Exception $e) {

die($e);

}

//print_r($_GET);die;

echo '';

}

接口的具体写法就是这样,有些数据是可以改的.

有不同的意见可以在下方留言。

paypal tp 对接_Thinkphp对接Paypal支付相关推荐

  1. paypal tp 对接_tp5实现paypal支付

    1.申请帐号 而后进入开发者网址 2.使用sanbox测试 sanbox帐号详情密码修改,点击对应email ->profile 3.支付代码 copy官网的文档 namespace app\i ...

  2. paypal tp 对接_Thinkphp5.1贝宝(Paypal)支付接入

    最初打算用PayPal官方的API做,但是,发现回调的信息有点少,所以就改成了form提交的,这里记录一下: 1.先去PayPal官网申请账号,然后进入开发者中心https://developer.p ...

  3. php集成paypal接口,PHP中集成PayPal标准支付,php集成paypal标准_PHP教程

    PHP中集成PayPal标准支付,php集成paypal标准 PayPal支付功能其实一直在更新文档和接口,这里说的是一个简单的支付功能大概流程如下 1,在网站的结账页面,设置一个提交到PayPal网 ...

  4. 发卡源码php免签约,2021亲测响应式PHP个人自动发卡源码-AZ发卡网源码 对接免签约易支付...

    2021亲测响应式PHP个人自动发卡源码-AZ发卡网源码 对接免签约易支付 个人自动发开网源码在聚码屋以及分享过许多套,今天这套在诸多发卡系统中,个人感觉是不"如意"的,至少我不是 ...

  5. Android绕过微信包名限制对接微信登录和支付

    Android绕过微信包名限制对接微信登录和支付 前言 最终效果 原理 代码 通过 APT 生成 WXEntryActivity 文件 对接微信SDK End 前言 Android对接微信登录和支付几 ...

  6. paypal php 返回_接入 paypal PHP-sdk 支付 / 回调 / 退款全流程

    记录一下接入paypal 全过程 因项目的原因要用到国外的支付和国外的信用卡,查了一下paypal就内置了信用卡付款方式,所以只需要接入paypal就能基本满足项目海外支付的需求. 查了一下文档发现w ...

  7. SpringBoot对接微信小程序支付功能开发(一,下单功能)

    1,接入前准备: 接入模式选择直连模式: 申请小程序,得到APPID,并开通微信支付: 申请微信商户号,得到mchid,并绑定APPID: 配置商户API key,下载并配置商户证书,根据微信官方文档 ...

  8. SpringBoot对接微信小程序支付功能开发(二,支付回调功能)

    接着上一篇: SpringBoot对接微信小程序支付功能开发(一,下单功能) 在上一篇下单功能中我们有传支付结果回调地址. 下面是回调接口实现 package com.office.miniapp.c ...

  9. 冰蓝云支付系统 可对接官方接口易支付码支付

    简介: 可对接官方接口/易支付/码支付 | 免签约做支付接口 网站信息/接口等配置文件改为数据库 后台一键修改更便捷可对接 官方/易支付/码支付 (立即注册码支付) [后台一键切换]商品关键字拦截(如 ...

最新文章

  1. Sublime Text 3包管理及插件主题安装方式
  2. AC日记——Red and Blue Balls codeforces 399b
  3. linux 内核 sleep,linux内核是如何支持深度睡眠(deep sleep)方式的?
  4. BZOJ1856[Scoi2010]字符串——组合数学+容斥
  5. C++之RAII机制
  6. 百度统计 java 实现思路_211本+985硕+计算机专业投面百度,坐等一周迎来三面,已拿offer...
  7. java jtextfield 高度_java - 固定的JTextField的高度和宽度 - 堆栈内存溢出
  8. 国产手机可以复制苹果的成功吗?
  9. java 读取硬件设备发送数据_Java网络编程基础
  10. (转)内存整理的原理 整理自CSDN
  11. Python游戏开发! Mac完美安装pygame
  12. Android回忆启示录
  13. 关于tagLyst工具授权验证的分析报告
  14. delphi7及控件安装
  15. ubuntu 更换系统源和pip源
  16. 最新消息,青岛的农贸市场将迎来大变革
  17. 六大云端 Jupyter Notebook 平台测评
  18. 【PowerDesigner】一款超好用的E-R图工具,快速构建出高质量的数据库结构,提高开发效率和代码质量
  19. MySQL知识点详解
  20. 两块串口硬盘从盘不识别

热门文章

  1. 班组安全活动如何管理
  2. HDU - 4918
  3. Linux 命令(文件和目录管理 - bzip2/bunzip2)
  4. python入门到实践-列表简介
  5. 有一个顺序表L,其元素为整形数据,设计一个算法,将L中的所有小于表头元素的整数放在前半部分,大于表头元素的整数放在后半部分
  6. 发说说php,说说PHP作图(一)_PHP教程
  7. excel数据分析 - 8个关联匹配类函数
  8. 数据库加密字段的模糊搜索_如何搜索安全加密的数据库字段
  9. JAVA基础(一)-面试篇
  10. w ndows系统开机时黑屏,Windows 7 启动系统后出现黑屏,要怎么解决?