paypal tp 对接_Thinkphp对接Paypal支付
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支付相关推荐
- paypal tp 对接_tp5实现paypal支付
1.申请帐号 而后进入开发者网址 2.使用sanbox测试 sanbox帐号详情密码修改,点击对应email ->profile 3.支付代码 copy官网的文档 namespace app\i ...
- paypal tp 对接_Thinkphp5.1贝宝(Paypal)支付接入
最初打算用PayPal官方的API做,但是,发现回调的信息有点少,所以就改成了form提交的,这里记录一下: 1.先去PayPal官网申请账号,然后进入开发者中心https://developer.p ...
- php集成paypal接口,PHP中集成PayPal标准支付,php集成paypal标准_PHP教程
PHP中集成PayPal标准支付,php集成paypal标准 PayPal支付功能其实一直在更新文档和接口,这里说的是一个简单的支付功能大概流程如下 1,在网站的结账页面,设置一个提交到PayPal网 ...
- 发卡源码php免签约,2021亲测响应式PHP个人自动发卡源码-AZ发卡网源码 对接免签约易支付...
2021亲测响应式PHP个人自动发卡源码-AZ发卡网源码 对接免签约易支付 个人自动发开网源码在聚码屋以及分享过许多套,今天这套在诸多发卡系统中,个人感觉是不"如意"的,至少我不是 ...
- Android绕过微信包名限制对接微信登录和支付
Android绕过微信包名限制对接微信登录和支付 前言 最终效果 原理 代码 通过 APT 生成 WXEntryActivity 文件 对接微信SDK End 前言 Android对接微信登录和支付几 ...
- paypal php 返回_接入 paypal PHP-sdk 支付 / 回调 / 退款全流程
记录一下接入paypal 全过程 因项目的原因要用到国外的支付和国外的信用卡,查了一下paypal就内置了信用卡付款方式,所以只需要接入paypal就能基本满足项目海外支付的需求. 查了一下文档发现w ...
- SpringBoot对接微信小程序支付功能开发(一,下单功能)
1,接入前准备: 接入模式选择直连模式: 申请小程序,得到APPID,并开通微信支付: 申请微信商户号,得到mchid,并绑定APPID: 配置商户API key,下载并配置商户证书,根据微信官方文档 ...
- SpringBoot对接微信小程序支付功能开发(二,支付回调功能)
接着上一篇: SpringBoot对接微信小程序支付功能开发(一,下单功能) 在上一篇下单功能中我们有传支付结果回调地址. 下面是回调接口实现 package com.office.miniapp.c ...
- 冰蓝云支付系统 可对接官方接口易支付码支付
简介: 可对接官方接口/易支付/码支付 | 免签约做支付接口 网站信息/接口等配置文件改为数据库 后台一键修改更便捷可对接 官方/易支付/码支付 (立即注册码支付) [后台一键切换]商品关键字拦截(如 ...
最新文章
- Sublime Text 3包管理及插件主题安装方式
- AC日记——Red and Blue Balls codeforces 399b
- linux 内核 sleep,linux内核是如何支持深度睡眠(deep sleep)方式的?
- BZOJ1856[Scoi2010]字符串——组合数学+容斥
- C++之RAII机制
- 百度统计 java 实现思路_211本+985硕+计算机专业投面百度,坐等一周迎来三面,已拿offer...
- java jtextfield 高度_java - 固定的JTextField的高度和宽度 - 堆栈内存溢出
- 国产手机可以复制苹果的成功吗?
- java 读取硬件设备发送数据_Java网络编程基础
- (转)内存整理的原理 整理自CSDN
- Python游戏开发! Mac完美安装pygame
- Android回忆启示录
- 关于tagLyst工具授权验证的分析报告
- delphi7及控件安装
- ubuntu 更换系统源和pip源
- 最新消息,青岛的农贸市场将迎来大变革
- 六大云端 Jupyter Notebook 平台测评
- 【PowerDesigner】一款超好用的E-R图工具,快速构建出高质量的数据库结构,提高开发效率和代码质量
- MySQL知识点详解
- 两块串口硬盘从盘不识别