接入流程文档见:https://blog.csdn.net/change_on/article/details/73881791

支付回调文档见:https://www.freesion.com/article/34141340978/

paypal官方文档:

预下单:https://developer.paypal.com/docs/api/payments/v1/#payment_create

IPN支付回调:https://developer.paypal.com/api/nvp-soap/ipn/IPNIntro/#id08CKFJ00JYK

刚开始看文档以为paypal和支付宝一样,准备使用接收回调的方式处理支付结果的,测试中发现需要调用executePayment接口才能收到回调通知,这样的话不需用到退款等功能的话就没必要接入支付回调了。

在支付成功接口里面处理处理自己的逻辑就行了。

  • 获取关键字段
JSONArray transactions = result.getJSONArray("transactions");
JSONObject transaction = transactions.getJSONObject(0);
JSONObject amountObj = transaction.getJSONObject("amount");
JSONArray relatedResources = transaction.getJSONArray("related_resources");
JSONObject sale = relatedResources.getJSONObject(0).getJSONObject("sale");String outOrderIdStr = transaction.getString("custom");// 自己业务的订单号
String totalAmountStr = amountObj.getString("total");// 支付金额
String totalCurrencyStr = transaction.getString("currency");// 支付货币
String payChannelId = sale.getString("id");// 支付渠道订单号
  • executePayment接口返回结果
{"update_time": "2023-03-16T14:10:10Z","create_time": "2023-03-16T14:06:59Z","links": [{"method": "GET","rel": "self","href": "https://api.sandbox.paypal.com/v1/payments/payment/PAYID-MQJSFAY41A60628MN734274A"}],"id": "PAYID-MQJSFAY41A60628MN734274A","state": "approved","transactions": [{"payee": {"merchant_id": "ZTV2ES9L5E5PN","email": "xx@cmge.com"},"amount": {"total": "0.10","currency": "USD","details": {"insurance": "0.00","shipping": "0.00","shipping_discount": "0.00","subtotal": "0.10","discount": "0.00","handling_fee": "0.00"}},"related_resources": [{"sale": {"parent_payment": "PAYID-MQJSFAY41A60628MN734274A","amount": {"total": "0.10","currency": "USD","details": {"insurance": "0.00","shipping": "0.00","shipping_discount": "0.00","subtotal": "0.10","discount": "0.00","handling_fee": "0.00"}},"payment_mode": "INSTANT_TRANSFER","update_time": "2023-03-16T14:10:10Z","create_time": "2023-03-16T14:10:10Z","protection_eligibility_type": "ITEM_NOT_RECEIVED_ELIGIBLE,UNAUTHORIZED_PAYMENT_ELIGIBLE","transaction_fee": {"currency": "USD","value": "0.10"},"protection_eligibility": "ELIGIBLE","links": [{"method": "GET","rel": "self","href": "https://api.sandbox.paypal.com/v1/payments/sale/8NU85203XK009112F"}, {"method": "POST","rel": "refund","href": "https://api.sandbox.paypal.com/v1/payments/sale/8NU85203XK009112F/refund"}, {"method": "GET","rel": "parent_payment","href": "https://api.sandbox.paypal.com/v1/payments/payment/PAYID-MQJSFAY41A60628MN734274A"}],"id": "8NU85203XK009112F","state": "completed"}}],"item_list": {"shipping_address": {"country_code": "US","city": "San Jose","state": "CA","recipient_name": "liu nen","postal_code": "95131","line1": "1 Main St"}},"custom": "217255803227471874","description": "goodname"}],"failed_transactions": [],"intent": "sale","payer": {"payment_method": "paypal","status": "VERIFIED","payer_info": {"country_code": "US","last_name": "nen","payer_id": "CRECMZWEPZXA6","shipping_address": {"country_code": "US","city": "San Jose","state": "CA","recipient_name": "liu nen","postal_code": "95131","line1": "1 Main St"},"first_name": "liu","email": "xx@qq.com"}},"cart": "4WX621310W422174Y"
}

写笔记时看到这篇文章,感觉也不错,记录一下

https://blog.csdn.net/MrwanZH/article/details/109540847?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7ERate-1-109540847-blog-129717065.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7ERate-1-109540847-blog-129717065.pc_relevant_default&utm_relevant_index=2

paypal支付接口开发笔记--Java版相关推荐

  1. 对接银联支付接口详解java版mac开发

    首先,这是一篇工具类的文章了,也是为了备忘,需求就是微信公众号的开发后台对接支付,有银联,支付宝,微信等,我负责写银联的接口.明天大年三十,今天在公司码完字也要灰走了,祝大家新年快乐,发大财. 先说一 ...

  2. python paypal支付接口开发

    (第一次接触支付,理解可能也不是很深,欢迎批评指正) paypal是目前全球最大的在线支付工具,就像国内的支付宝一样,是一个基于买卖双方的第三方平台. PayPal API是基于HTTP的restfu ...

  3. php银联支付接口 demo,php版银联支付接口开发简单实例详解

    这篇文章主要介绍了php版银联支付接口开发的方法,结合实例形式分析了php银联支付接口开发的具体流程与相关操作技巧,需要的朋友可以参考下 支付接口现在有第三方的支付接口也有银行的支付接口.这里就来介绍 ...

  4. java支付接口开发原理_java对接微信支付接口开发的过程是什么?

    java对接微信支付接口开发的过程是什么?以下是小编整理的java对接微信支付接口实现的方法和过程,有需要的朋友可以学习以下的java对接微信支付接口内容. java对接微信支付接口开发的过程是什么? ...

  5. 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备...

    相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结. 所以下面给大家分享一下我的经验: 第一部分   介绍微信公众号的一些简单 ...

  6. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单

    我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...

  7. 支付宝WAP支付接口开发

    支付宝WAP支付接口开发 因项目需要,要增加支付宝手机网站支付功能,找了支付宝的样例代码和接口说明,折腾两天搞定,谨以此文作为这两天摸索的总结.由于公司有自己的支付接口,并不直接使用这个接口,所以晚些 ...

  8. 第三篇 :微信公众平台开发实战Java版之请求消息,响应消息以及事件消息类的封装...

    微信服务器和第三方服务器之间究竟是通过什么方式进行对话的? 下面,我们先看下图: 其实我们可以简单的理解: (1)首先,用户向微信服务器发送消息: (2)微信服务器接收到用户的消息处理之后,通过开发者 ...

  9. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

最新文章

  1. 简书php硬件交互,php设计模式——适配器模式
  2. STM32为何能在众多单片机中脱颖而出?
  3. python turtle画熊-Python使用turtle库绘制小猪佩奇(实例代码)
  4. Mysql:事务管理——未完待续
  5. 我写的第一本书《TypeScript 入门教程》
  6. IO流以及他们的种类区别 序列化反序列化 如何实现
  7. ECharts - 饼状图隐藏标示线和标示文字
  8. Codeforces 722C. Destroying Array
  9. python watchdog占用,python基于watchdog库全自动化监控目录文件
  10. C++预处理指令#define,#if,#endif等
  11. java给界面添加滚动条_Java Swing学习笔记:要求会默写或熟练的,GUI,控件,设置列或行,加滚动条,新界面...
  12. Lucene 如何热备份
  13. python实用代码
  14. 1、Java语言简介
  15. 关于java小游戏的暂停,退出和从新开始
  16. 基于富士通编译器Softune的堆栈、变量、常量理解
  17. 小米盒子共享电脑文件 服务器,小米盒子3S访问局域网电脑共享安装软件和观看视频的方法...
  18. hutool工具私人学习笔记
  19. 【面包板电子制作130例仿真】简单变调电子门铃
  20. 仓库系统用什么服务器,什么是仓库管理saas系统 仓库管理saas系统的功能有哪些...

热门文章

  1. 记一道智力测试题-老鼠喝毒酒
  2. Python中使用Type hinting 和 annotations
  3. 多线程并发下集合不安全类-ArrayList
  4. Oracle安装 卸载干净文档
  5. 删除文件时显示该文件不在此文件夹中的原因
  6. SpringBoot + Spring Security Oauth2 客户端授权
  7. 普元王文斌:微服务架构开发模式需要全栈团队
  8. 使用Certify申请Lets Encrype通配符SSL证书
  9. 那些年啊,那些事——一个程序员的奋斗史 ——53
  10. DICOM:fo-dicom、dcm4che14、dcm4chee等开源库持续自我维护