paypal Java 查询支付状态_paypal 接口开发 主动查询支付状态-程序员宅基地

技术标签: java  支付  

查询支付状态

这里只讲查询支付状态的,获得 token 什么的比较简单,这里就不讲解了。
这里是根据按钮进行对接的,也就是这篇

根据回调参数 txn_id 查询支付状态

官网有Show captured payment details
postman
只需要带个 token 就行了
url 后面的参数是回调请求体中的 txn_id

代码如下

    public static ServiceResult<String> getPaypalPaymentResult(String txnId) {
        if (StringUtils.isBlank(txnId)) {
            return ServiceResult.asFail("The transaction number does not exist!");
        }
        LogUtils.PAYPAL_LOG.info("get Paypal Payment Result txnId:" + txnId);
        Request request = new Request.Builder()
                .url(GET_PAYPAL_PAYMENT_STATUS_URL + txnId)
                .get()
                .addHeader("Authorization", "Bearer " + getPaypalToken())
                .addHeader("Content-Type", "application/json")
                .build();
        String responseStr = "";
        try {
            responseStr = paypalClient.newCall(request).execute().body().string();
            LogUtils.PAYPAL_LOG.info("get Paypal Payment Status request:" + request.toString() + " response String:" + responseStr);
            return ServiceResult.asSuccess(responseStr, "response");
        } catch (Exception e) {
            LogUtils.ERROR_LOGGER.error("get Paypal Payment Status request send failed request :" + request.toString());
        }
        return ServiceResult.asFail("get Paypal Payment Status failed!");
    }

根据按钮 sdk 返回的 orderID 查询订单信息

官网有Show order details
postman
这里的orderID 是按钮 sdk j交易成功后返回的orderID
如果不知道OrderID在哪里获取,请点这里

代码如下:

    public static ServiceResult<PaypalOrderModel> getPaypalOrderDetails(String orderId) {
        if (StringUtils.isBlank(orderId)) {
            return ServiceResult.asFail("orderId is required!");
        }
        LogUtils.PAYPAL_LOG.info("get Paypal order Details orderId:" + orderId);
        Request request = new Request.Builder()
                .url(GET_PAYPAL_ORDER_STATUS_URL + orderId)
                .get()
                .addHeader("Authorization", "Bearer " + getPaypalToken())
                .addHeader("Content-Type", "application/json")
                .build();
        ServiceResult result = ServiceResult.asFail("");
        try {
            String responseStr = paypalClient.newCall(request).execute().body().string();
            LogUtils.PAYPAL_LOG.info("get Paypal order Details request:" + request.toString() + " response String:" + responseStr);
            result.success = PaypalOrderStatus.isPaymentSuccess(responseStr);
            PaypalOrderModel paypalOrderModel = jsonConvertOrderModel(responseStr);
            result.obj = paypalOrderModel;
        } catch (Exception e) {
            LogUtils.ERROR_LOGGER.error("get Paypal order Details request send failed request :" + request.toString() + ", order Details transfer PaypalOrderModel failed!");
        }
        return result;
    }
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44961083/article/details/112790199

智能推荐

Spring Security OAuth2.0_实现分布式认证授权_集成测试_Spring Security OAuth2.0认证授权---springcloud工作笔记155_spring security oauth2.0实现分布式系统授权(nacos注册中心+网关+认证授-程序员宅基地

文章浏览阅读302次。技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152然后前面我们已经把分布式微服务的,认证授权全部集成了,然后我们来测试.启动资源微服务order微服务.启动网关微服务然后启动注册中心微服务然后注意我们,这里以后访问就可以统一通过网关来访问了,我们网关的端口是53010 对吧,我们先去请求一个令牌可以看到.我们通过密码模式.获取了这个令牌以后,我们去check检查一下这个token,可以看到把token._spring security oauth2.0实现分布式系统授权(nacos注册中心+网关+认证授权服务(j

Oracle_oracle left join 临时表-程序员宅基地

文章浏览阅读278次。Oracle一、Oracle语句关系型数据库:mysql,oracle,sqlserver非关系型数据库:mogodbSQL支持下列类别的命令:数据定义语言(DDL):create创建,alter修改,drop删除数据操作语言(DML):insert 、select、update、delete事务控制语言(TCL):commit 提交;rollback回滚数据控制语言(DCL):grant授权;revoke撤销sql:结构化查询语言数据类型;字符:char(定长度)_oracle left join 临时表

基于tensorflow的keras中GPU的使用_keras 识别检测时需要用gpu吗-程序员宅基地

文章浏览阅读1.8w次。在基于tensorflow的keras中,其会自动检测运行的机器中是否有gpu,如果有的话,其会自动在gpu上执行运算。但是keras并没有提供像基于theano如下所示的接口来对要运行的gpu进行选择# the name 'gpu' might have to be changed depending on your device's identifier (e.g. gpu0, gpu1, et_keras 识别检测时需要用gpu吗

03 一些常用的gulp插件-程序员宅基地

文章浏览阅读463次。首发于github于gulp的插件数量虽然没有grunt那么多,但也可以说是应有尽有了,下面列举一些常用的插件。_gulp插件

elasticsearch初探-程序员宅基地

文章浏览阅读168次。1.es大致介绍 分布式搜索引擎,底层为lucene,核心思想多台机器启动多个es进程构成集群. index->type->mapping->document->field shard 横向扩展 提高性能 primary shard-> replica shard 高可用2.写入原理,查询...

Python: PS 滤镜--万花筒效果-程序员宅基地

文章浏览阅读402次。本文用 Python 实现 PS 的一种滤镜效果,称为万花筒。也是对图像做各种扭曲变换,最后图像呈现的效果就像从万花筒中看到的一样:图像的效果可以参考之前的博客:http://blog.csdn.net/matrix_space/article/details/46789783import matplotlib.pyplot as pltfrom..._opencv 万花筒

随便推点

空字符串计数、让字典可排序...Python冷知识(五)-程序员宅基地

文章浏览阅读761次,点赞2次,收藏4次。本文转载自Python编程时光(ID: Python-Time)冷知识系列,直至今日,已经更新至第五篇。前四篇给你准备好了,还没阅读的可以学习一下。谈谈 Python 那..._空字符串字典序

upload-labs安装及攻略_uploadlabs-程序员宅基地

文章浏览阅读2.4w次,点赞32次,收藏200次。upload-labs靶场的安装搭建(windows)(1)首先当然是需要phpstudy的环境,所以要先下载安装phpstudy。(2)然后到github的网址中下载源码的压缩包。github网址:https://github.com/Tj1ngwe1/upload-labs(3)下载后解压缩到phpstudy目录下的WWW子文件夹中,这里要注意吧压缩包的名字改成upload-labs,不然靶场的页面会显示得不对。(4)然后在输入url HTTPS:..._uploadlabs

论文浅尝 - EMNLP2020 | 通过词重排序跨语言解析-程序员宅基地

文章浏览阅读280次。笔记整理 | 吴林娟,天津大学硕士来源:EMNLP2020链接:https://www.aclweb.org/anthology/2020.findings-emnlp.265.pdf动..._吴林娟 天津大学

python中sklearn包计算AUC——sklearn.metrics.auc函数解析_sklearn auc-程序员宅基地

文章浏览阅读1.3w次,点赞8次,收藏22次。代码示例:sklearn.metrics.auc函数的输入是FPR和TPR的值,即ROC曲线中的真阳性率(true positive rate)和假阳性率(false positive rate)。得到的输出结果是一个float格式的数值,代指ROC曲线下的面积(AUC的值)。python所给的代码示例中用到了metrics.roc_curve函数,这个函数主要是用来计算ROC曲线面积的;在这里的输入参数有三个:第一个参数是一个二进制数组y,代表“真”或“假”,默认为0或者1的._sklearn auc

素数筛-程序员宅基地

文章浏览阅读46次。埃氏筛法const int max1=1e7;int prime[max1+1];bool visit[max1+1];int E_sieve(int n){ for(int i=0; i<=n; i++) { visit[i]=false; } for(int i=2; i*i<=n; i++) { if(!visit[i]) { for(int j=i*i; j&_素数筛

vue3+element-plus实现form表单提交_element-plus form submit-程序员宅基地

文章浏览阅读2.2w次,点赞19次,收藏48次。vue2.0可以使用this,如果配合element的form表单的话,会比较方便,至于写这次的笔记是因为,3.0使用setup()以后不存在this,里面的model以及rules校验,最后的提交都跟之前有所不同,故有此文章。vue2.0配合element的代码如下<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <el-fo_element-plus form submit

推荐文章

热门文章

相关标签