Paypal使用phpcurl通过支付密钥获取交易详细信息

2023-12-04

android paypal 付款成功后我得到回复。回应如下。

{
    "response": {
       "state": "approved",
       "id": "PAY-6PU626847B294842SKPEWXHY",
 "create_time": "2014-07-18T18:46:55Z",
        "intent": "sale"
     },
   "client": {
       "platform": "Android",
       "paypal_sdk_version": "2.11.0",
         "product_name": "PayPal-Android-SDK",
        "environment": "mock"
    },
    "response_type": "payment"
 }
 {
   "short_description": "Pay List Payment",
   "amount": "100",
    "intent": "sale",
    "currency_code": "USD"
 }

然后我用PAY-6PU626847B294842SKPEWXHY支付密钥并使用 PHP curl GET 请求和以下代码获取交易详细信息。

$accessToken='<Access Token>';
$curl = curl_init("https://api.sandbox.paypal.com/v1/payments/payment/PAY-6PU626847B294842SKPEWXHY");
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
    'Accept: application/json',
    'Content-Type: application/json'
));
$response = curl_exec($curl);

print_r($response);
exit;

点击此按钮后,我得到以下响应,但未获取交易详细信息。

{"name":"INVALID_RESOURCE_ID","message":"The requested resource ID was not found","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#INVALID_RESOURCE_ID","debug_id":"ddc1e3a55f10e"}

任何人有想法提前致谢。


以下内容对我有用。

1. 进行 CURL POST 获取访问令牌

$uri = 'https://api.sandbox.paypal.com/v1/oauth2/token';
    //for live production use $uri = 'https://api.paypal.com/v1/oauth2/token';

$clientId = '<YOUR-CLIENT-ID-HERE>';
$secret = '<YOUR-SECRET-HERE>';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $uri);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSLVERSION , 6); //NEW ADDITION
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERPWD, $clientId.":".$secret);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials");

$result = curl_exec($ch);
$access_token = '';
if(empty($result))die("Error: No response.");
else
{
    $json = json_decode($result);
    $access_token = $json->access_token;
}

curl_close($ch);

2. 进行 CURL POST 以获取交易详细信息,例如付款状态、金额、日期等。

$url = "https://api.sandbox.paypal.com/v2/payments/captures/<YOUR-PAYMENT-ID-HERE>";
$accessToken=$access_token;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
    'Accept: application/json',
    'Content-Type: application/json'
));
$response = curl_exec($curl);

print_r($response);
exit;

3. 进行 CURL POST 以获取更多交易详细信息(这会提供比步骤 2 更详细的响应。因此您可以使用它来代替步骤 2)

$url = "https://api.sandbox.paypal.com/v2/checkout/orders/<YOUR-order-ID-HERE>";
$accessToken=$access_token;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
    'Accept: application/json',
    'Content-Type: application/json'
));
$response = curl_exec($curl);

print_r($response);
exit;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Paypal使用phpcurl通过支付密钥获取交易详细信息 的相关文章

  • 让登录更安全

    我已使用此代码进行管理员登录 仅当用户输入正确的用户名和密码时才应打开loginhome php 但后来我意识到这根本不安全 任何人都可以直接访问 mywebsite loginhome php 而无需登录 注销后 可以使用后退按钮打开 l
  • 如何从 Laravel 中的表中选择所有列名称?

    我试图从表中获取所有列名Teller 功能 public function getTableColumns tables return DB select DB raw SELECT COLUMN NAME DATA TYPE COLUMN
  • Zend Framework 生成唯一的字符串

    我想生成一个唯一的 4 6 个字符长的字母数字字符串 以便与每个记录 用户 一起保存在数据库中 db 字段具有唯一索引 因此尝试保存预先存在的字符串会生成错误 现在我正在生成一个随机字符串并使用 try catch 因此在添加新记录时如果抛
  • openssl_pkey_get_details($res) 不返回公共指数

    我在用着这个例子 https stackoverflow com a 12575951 2016196使用 php 生成的密钥进行 javascript 加密openssl图书馆 但是 details openssl pkey get de
  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可
  • 如何在响应ajax codeigniter后停止执行其他控制器

    我想知道如何在响应输出 json 数据后停止执行函数和涉及的其他控制器 就我这里的情况而言 我只是打电话test 函数于dashboard控制器 In dashboard构造函数将执行MY Login library In MY Login
  • 如何从父类函数访问子类中定义的常量?

    我从 php net 看到这个例子 但 c MY CONST 仅在 5 3
  • PHP严格标准:声明应该兼容

    我有以下类层次结构 class O Base class O extends O Base abstract class A Abstract public function save O Base obj class A extends
  • 是否可以使用 PHP 重定向发送 POST 数据?

    更新 这不是重复的如何使用 PHP 发送 POST 请求 https stackoverflow com questions 5647461 how do i send a post request with php 那里的解决方案对我不起
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • “使用未定义常量”注意,但该常量应该被定义

    共有三个文件 common php controller php 和 user php 文件 common php 如下所示 文件controller php看起来像 文件 user php 如下所示 执行脚本时 会给出通知 注意 使用未定
  • PHP 与 MySQL 查询性能( if 、 函数 )

    我只看到这个artice http www onextrapixel com 2010 06 23 mysql has functions part 5 php vs mysql performance 我需要知道在这种情况下什么是最好的表
  • PHP preg_filter 返回意外的长值

    尝试在 Woocommerce 中删除标签并过滤值 但无法以正确的格式获取它 有东西有腥味 我正在使用WC gt cart gt get cart subtotal 来检索该值 在此示例中 我的值是 2 429kr 原始返回值是 span
  • jQuery Mobile 表单验证

    我有一个移动网站 除了验证之外一切都工作正常 基本上我希望从用户那里获取值 然后在单独的页面 process php 上处理它们 但是 在这样做之前 我需要检查以确保字段已填充 我已经研究了几种方法来做到这一点 但似乎没有一种有效 我现在有
  • PHP 中只保留数组的前 N ​​个元素? [复制]

    这个问题在这里已经有答案了 有没有办法只保留数组的前 N 个 例如 10 个 元素 我知道有array pop 但是有没有更好 更优雅的方法呢 您可以使用array slice http php net array slice or arr
  • 使用 Ajax.Request 将 JSON 从浏览器传递到 PHP 的最佳方法

    您好 我有一个 JSON 对象 它是一个二维数组 我需要使用 Ajax Request 将其传递给 PHP 我知道的唯一方法 现在我使用js函数手动序列化我的数组 并获取以下格式的数据 s 1 d 3 4等 我的问题是 有没有办法更直接 有
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 为什么 Composer 降级了我的包?

    php composer phar update这样做了 删除了 2 3 0 软件包并安装了整个 2 2 5 Zend Framework php composer phar update Loading composer reposito
  • 简单的 PHP 表单:电子邮件附件(代码 Golf)

    想象一下 一个用户想要在其网站上放置一个表单 该表单将允许网站访问者上传一个文件和一条简单的消息 该消息将立即通过电子邮件发送 即 该文件未存储在服务器上 或者如果该文件存储在服务器上 仅暂时 作为文件附件 并在邮件正文中添加注释 查看更多

随机推荐

  • 使用 Bouncy Castle c# 创建 CRL 文件

    我已经使用 Bouncy Castle 构建了自己的根 CA 证书 并使用它来构建其他证书 我想使用 Bouncy Castle C 构建一个证书吊销列表 CRL 以包含已吊销的证书列表 例子 Retrieve CA root certif
  • 多项式函数的 LinEst vba

    我正在尝试使用 vba 计算多项式回归 首先 我尝试了 y x 2 b OUTPUT WorksheetFunction Application LinEst A Application Power C 2 True True 其中 A 和
  • 显示:弯曲和图像大小调整/居中

    我在用display flex 使图像居中并max width max height来调整它的大小 其中有几张图像 有些宽 有些高 有些正方形 我想确保它们的尺寸都足够大以供查看 例如 我假设如果图像达到最大宽度而不是高度 则它应该与宽度保
  • 减少()有什么问题?

    关于Python 3 0中reduce 函数的变化以及如何删除它 网上似乎有很多激烈的讨论 我有点难以理解为什么会出现这种情况 我发现在各种情况下使用它是相当合理的 如果这种蔑视只是主观的 我无法想象会有这么多人关心它 我缺少什么 减少 有
  • 使用 ggsave 将系统时间和日期添加到 pdf

    我有一个 pdf 文件 我试图打印该 pdf 文件名称上的时间和日期 我尝试使用很多不同的方法 但仍然一无所获 你能帮我吗 打印为pdf的代码如下 ggsave Title of file pdf marrangeGrob grobs pl
  • 加载、保存然后再次加载图像会抛出“GDI+ 中发生一般错误”

    This 似乎犯了臭名昭著的错误 我记得不久前得到了不同的代码 但是它回来了 复仇 但有一些我似乎无法弄清楚的新代码 绝对是generic 一定 The Goal 我正在尝试构建一个表单 允许用户 选择一个图像 按 保存 关闭表单 然后将图
  • Android Studio导入facebook库奥德赛

    我正在尝试通过 Android Studio 中的 Facebook 库在我的应用程序中使用 Facebook 登录 在学习了 9 个关于如何在 Android Studio 0 6 1 上导入该库的教程之后 在单击 清理项目 之前一切都很
  • 使用 ColdFusion 的 SAML 服务提供商

    我正在尝试使用 ColdFusion 9 对 SAML 2 0 进行测试 我想要的只是使用 SAML 生成的 xml 并进行处理 我正在关注这里给出的文章http blog tagworldwide com p 19 存档版本 但是当我启动
  • WordPress 全局 $post 变量为空

    我正在开发一个 WordPress 插件 管理背景图像 当我尝试使用 global post print r post 该对象是空的 可能有一些必需的数据 我不知道是什么 如果您知道请帮助我 WordPress 全局变量 post包含当前的
  • 如何优雅地终止一个进程?

    我想终止多个进程 但我想让每个进程都有机会保存其数据 询问用户有关保存文件的信息 甚至忽略关闭请求 So TerminateProcess这是不可能的 因为它会立即终止进程 另一种方法是使用SendMessage PostMessage发送
  • case 类私有构造函数 - 需要 readResolve 实现

    我只是在谷歌上搜索如何使用私有构造函数创建案例类 以下是执行此操作的正确方法 如中所述 如何在案例类同伴中覆盖 apply object A def apply s String i Int A new A s toUpperCase i
  • 创建列表视图并从 flutter 上的 firestore 获取数据

    我有一个应用程序 我需要将这些数据从 firestore 数据库一一获取到 flutter 上的 Listview 我尝试了很多东西 例如流构建器和未来构建器 但我无法得到 因为我的数据库使用嵌套数据如果您有任何建议 请告诉我 非常感谢 有
  • 需要 preg_match_all 链接

    我有一个像这样的字符串 string some text http dvz local index index regionId 28 http stuff kiev ua roadmap page php http 192 168 3 1
  • 如何使用查询生成器在 Symfony 4 中连接外部 ID 上的多个实体?

    我正在努力学习 Symfony 今天我正在关注关联教程 我决定制作一个小应用程序 包括房屋 厨房 卧室和橱柜 我 尝试 使用draw io制作一个小的类图 以便为您提供更好的想法 所以基本上一栋房子可以有多个卧室和多个厨房 每个厨房可以有多
  • Javascript - 为什么从函数返回 array.push(x) 不会将元素 x 推入数组?

    我想知道为什么以下功能有效 function foo list var array array push list return array gt foo 1 2 3 1 2 3 而这个则没有 function foo list var a
  • Python 和 .Net 集成选项

    我想将 Python 与 C 集成 我发现两种方法使用进程间通信和 IronPython 进程间通信需要在所有客户端计算机上安装 Python exe 因此这不是一个可行的解决方案 我们开始使用 IronPython 但它目前仅支持 2 7
  • PHP 类 - 如何仅连接一次数据库

    我尝试做一个简单的 SQL 类 只有一个问题 function classDBREAD table where value back link mysql connect 127 0 0 1 XXXX XXXXXX mysql select
  • 如何忽略 LNK2005 和 LNK1169?

    因此 我有一个使用外部库的 Visual Studio 2010 项目 为了在没有 LNK2005 的情况下编译它 我必须在链接器设置中调整库的顺序 我让它在发布模式下编译得很好 但出于某种原因 我无法在调试中没有 LNK 错误的情况下编译
  • 如何在单击按钮时从数据库将新行添加到 jTable 中而不清除现有行

    如何在单击按钮时从数据库将新行添加到 jTable 中而不清除 jTable 中的现有行 我尝试了很多方法 但没有成功 帮助 String SQL SELECT name price FROM items WHERE ID jTextFie
  • Paypal使用phpcurl通过支付密钥获取交易详细信息

    android paypal 付款成功后我得到回复 回应如下 response state approved id PAY 6PU626847B294842SKPEWXHY create time 2014 07 18T18 46 55Z