接入流程文档见: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. Pytorch 类型错误:Expected object of type torch.FloatTensor but found type torch.cuda.FloatTensor.
  2. 斯坦福大学:极限工况下的无人驾驶路径跟踪|厚势汽车
  3. 机器人3·15 | 赛迪「机器人国评中心」揭示机器人产品质量6大痛点!
  4. Python多版本管理器-pyenv 介绍及部署记录
  5. 【学亮IT手记】ECMAScript的数据类型及类型转换
  6. 多媒体计算机探索 教案,多媒体的教学设计
  7. 处理对象的多种状态及其相互转换——状态模式
  8. 使用jstat的JVM统计信息
  9. kickstart_具有Java Kickstart的MongoDB
  10. linux centeros下Redis的安装
  11. Android开发笔记(一百三十一)水波图形与水波动画
  12. Docker和Ubuntu主机互传复制文件
  13. Rust: match 与ref
  14. 关于继承中调用成员变量和局部变量以及如何区分子类和父类中的变量,白话文详解,适合刚刚接触编程的新手
  15. 爱普生L4158 L4165 L4166 L4168 L4167 L4163清零软件教程
  16. png图片如何在线转换成jpg格式的
  17. 多个html合并一个PDF,如何将多个网页合并成一个PDF文件
  18. 初步搭建 prometheus+ Grafana服务器性能监控平台
  19. 英语四级计算机二级的微信推文,简明·实用 | 瞬间高大上的微信公众号推文制作...
  20. 淘宝怎么寄东西到日本?如何在日本购买国内淘宝上的物品呢?

热门文章

  1. thinkjs查询mysql_Mysql · ThinkJs2.0开发手册 · 看云
  2. Python如何获取 Jenkins构建日志
  3. 服务器域名 一级域名_HTTP简介:域名系统服务器
  4. Flask教程(一)
  5. 如何定制一款个性化的 WinPE
  6. Bark – 给自己的 iPhone 发推送提醒,简单开源且免费
  7. 教育青少年计算机等级考试,《新编计算机等级考试培训教程 新一级》青少年素质教育丛书.pdf...
  8. 【小技巧】爆栈?栈的大小不够用怎么办?
  9. java保留小数点后7位,不够补0,去小数点存库,带小数点展示
  10. Soft Actor-Critic 论文笔记