paypal流程有如下几步

1创建应用程序

2启用与palPal的连接

3应用评论

4构建按钮

5获取授权码

6获取访问令牌

7为access_token交换refresh_token

8获取客户信息

9测试集成

10上线

这里主要讲java验证 palpal支付,也就是5-9的步骤。

java验证paypal支付主要分为以下几步;

第一步,获取权限认证的token.

第二步,获取前端支付成功后返回的paymentId。并且拿去paypal查询订单信息。

第三步对订单信息进行校验。

1获取权限认证的token.

private static String getAccessToken() {try {URL url = new URL(TOKEN_URL);String authorization = clientId + ":" + secret;authorization = Base64.encodeBase64String(authorization.getBytes());HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("POST");// 提交模式// 设置请求头headerconn.setRequestProperty("Accept", "application/json");conn.setRequestProperty("Accept-Language", "en_US");conn.setRequestProperty("Authorization", "Basic " + authorization);// conn.setConnectTimeout(10000);//连接超时 单位毫秒// conn.setReadTimeout(2000);//读取超时 单位毫秒conn.setDoOutput(true);// 是否输入参数String params = "grant_type=client_credentials";conn.getOutputStream().write(params.getBytes());// 输入参数InputStreamReader inStream = new InputStreamReader(conn.getInputStream());BufferedReader reader = new BufferedReader(inStream);StringBuilder result = new StringBuilder();String lineTxt = null;while ((lineTxt = reader.readLine()) != null) {result.append(lineTxt);}reader.close();System.out.println("getAccessToken:" + result);PayPalToken palToken = JSONObject.parseObject(result.toString(), PayPalToken.class);return palToken.getAccess_token();} catch (Exception err) {err.printStackTrace();}return null;}

2获取前端支付成功后返回的paymentId。并且拿去paypal查询订单信息。

public String getPaymentDetails(String paymentId) {try {URL url = new URL(PAYMENT_DETAIL_TEST + paymentId);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");// 提交模式// 设置请求头headerconn.setRequestProperty("Accept", "application/json");conn.setRequestProperty("Authorization", "Bearer " + getAccessToken());// conn.setConnectTimeout(10000);//连接超时 单位毫秒// conn.setReadTimeout(2000);//读取超时 单位毫秒InputStreamReader inStream = new InputStreamReader(conn.getInputStream());BufferedReader reader = new BufferedReader(inStream);StringBuilder result = new StringBuilder();String lineTxt = null;while ((lineTxt = reader.readLine()) != null) {result.append(lineTxt);}reader.close();return result.toString();} catch (Exception err) {err.printStackTrace();}return null;}

返回后的消息如下

{"id": "PAYID-LV262LY1GF17006GU287063F","intent": "sale","state": "approved","cart": "6G500886VN698753Y","payer": {"payment_method": "paypal","status": "VERIFIED","payer_info": {"email": "zerotest@gmail.com","first_name": "zero","last_name": "zero","payer_id": "RHDCTBPXH3LKG","shipping_address": {"recipient_name": "zero zero"},"phone": "4083363521","country_code": "US"}},"transactions": [{"amount": {"total": "0.02","currency": "USD","details": {"subtotal": "0.02","shipping": "0.00","insurance": "0.00","handling_fee": "0.00","shipping_discount": "0.00"}},"payee": {"merchant_id": "YJFGW6CVTV9XS","email": "leihuaping-facilitator@zerophil.com"},"description": "100粉钻","item_list": {"shipping_address": {"recipient_name": "zero zero"}},"related_resources": [{"sale": {"id": "7N444941X3531852Y","state": "completed","amount": {"total": "0.02","currency": "USD","details": {"subtotal": "0.02","shipping": "0.00","insurance": "0.00","handling_fee": "0.00","shipping_discount": "0.00"}},"payment_mode": "INSTANT_TRANSFER","protection_eligibility": "ELIGIBLE","protection_eligibility_type": "ITEM_NOT_RECEIVED_ELIGIBLE,UNAUTHORIZED_PAYMENT_ELIGIBLE","transaction_fee": {"value": "0.02","currency": "USD"},"parent_payment": "PAYID-LV262LY1GF17006GU287063F","create_time": "2019-09-09T06:12:20Z","update_time": "2019-09-09T06:12:20Z","links": [{"href": "https://api.sandbox.paypal.com/v1/payments/sale/7N444941X3531852Y","rel": "self","method": "GET"}, {"href": "https://api.sandbox.paypal.com/v1/payments/sale/7N444941X3531852Y/refund","rel": "refund","method": "POST"}, {"href": "https://api.sandbox.paypal.com/v1/payments/payment/PAYID-LV262LY1GF17006GU287063F","rel": "parent_payment","method": "GET"}]}}]}],"create_time": "2019-09-09T06:11:59Z","update_time": "2019-09-09T06:12:20Z","links": [{"href": "https://api.sandbox.paypal.com/v1/payments/payment/PAYID-LV262LY1GF17006GU287063F","rel": "self","method": "GET"}]
}

这里最简单的就是对state进行校验。state显示approved为成功。然后再跟进自己的业务对数据进行校验,一个简单的java版本支付校验就完成了。

java处理paypal支付相关推荐

  1. Java集成PayPal支付

    Java集成PayPal支付 1.申请账号 浏览器中输入:https://www.paypal.com,点击 "注册" 选择 "企业账号" ,信息可以随意填写 ...

  2. java对接PayPal支付-自动续费功能

    一. java对接PayPal支付(v2). 讲了PayPal v2:checkout-sdk 的对接过程 二. java对接PayPal支付 (添加物流跟踪信息). 讲了PayPal添加物流信息 的 ...

  3. java对接PayPal支付(v2)

    java对接PayPal支付 我们公司最近开通了网上支付功能,国内选择对接支付宝和微信,国外选择对接paypal, 今天我先将paypal对接方式记录下来,后面会记录微信和支付宝(本人比较懒,微信和支 ...

  4. java的paypal支付demo_paypal支付demo

    [实例简介] paypal支付Java版demo,springboot项目,自测OK,用demo学习 [实例截图] [核心代码] springboot-paypal └── springboot-pa ...

  5. java集成paypal支付,含Android,服务端代码

    支付流程 1. 前端选择商品,调用paypal支付 2. 支付完成,paypal会返回payment信息,将payment的id返回给自己服务端 3. 服务端根据paymentId,调paypal,查 ...

  6. java 对接 paypal支付

    码字不易,开源更不易,点赞收藏关注,多多支持 开源地址  paypal-demo: java 对接 paypal 的案例,下载项目,注册paypal账号,拿到秘钥,即可使用 效果图 准备环境 1.注册 ...

  7. java对接PayPal支付(ipn中文乱码解决)

    IPN验证有中文的时候会出现乱码,是由于encoding设置导致的,请通过以下步骤将encoding设置改为UTF-8应该就能解决: 1)登录您的PayPal账号后打开这个链接进入设置页面: http ...

  8. 使用java做paypal开发时购买东西支付不成功的原因

    使用java做paypal开发时购买东西支付不成功的原因 没有设置网站习惯设定,登陆自己的paypal账户,在网站习惯设定上填写回调的url路径,这样就可以 支付成功了并且异步修改订单的状态. 支付成 ...

  9. paypal支付、paypal回调(java后端)

    最近项目引入了paypal支付,在此做个记录 一.申请账号 首先到下面的网址申请个paypal账号(个人账号即可) https://www.paypal.com/c2/home 二.开发者页面登录 h ...

  10. paypal支付 paypal网站付款标准版问题解决

    最近公司要集成paypal支付,由于我们有自己的网站,所以选择了最简单的网站标准付款方式(IPN及时付款).中间遇到了很多大小问题,现在终于解决了,还是靠查阅大家的分享,花点时间写个小结. 1.注册账 ...

最新文章

  1. [nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI
  2. 移动端web,tap与click事件
  3. hadoop程序实例
  4. 用webBrowser打开网页出现脚本错误怎么办
  5. 踩内存是什么意思啊_面试|搬了这么久的砖,居然还不知道什么“踩内存”
  6. SpringCloud系列七:使用Ribbon实现客户端侧负载均衡
  7. JLBH – Java延迟基准线束介绍
  8. Java编程思想学习(一) 一切都是对象
  9. 上河南星海科技_揭秘丨赣江新区网红打卡点,为你按下科技快进键!
  10. .net 事务处理的三种方法
  11. 2019.7.20十道js题目
  12. python == 字符编码
  13. 如何使用 Keynote 设计有质感的 PPT 封面?
  14. js设置css行内样式
  15. 青龙面板—-抖音极速版(2022.08.11)
  16. linux文件权限说明(drwxr-xr-x)
  17. 恶意软件相似度检测过程
  18. SVC vs SVR
  19. 重置计算机网络配置后上不了网,win10系统网络重置后不能连接网络如何解决
  20. UE4第三人称多人联机游戏开发01

热门文章

  1. 测试 tolua 例子 TestErrorStack
  2. STM32:sht20温湿度检测程序,并在OLED屏上显示
  3. 前端第四天 盒子模型/浮动与定位
  4. 小提琴1234567位置图解_小提琴的指法图
  5. 使用Python+百度AI把文字转成语音
  6. 一卡通系统软件测试,智能一卡通管理系统检测流程
  7. SVM支持向量机原理及核函数
  8. 三次样条插值证明过程及代码实现
  9. RTP payload format for VP9 video
  10. FPGA课程:JESD204B的应用场景(干货分享)