2021年:

最近又有国外项目需要接入paypal,这次准备使用官方最新的SDK:

PayPal REST SDKs

先跑个官方DEMO热热身,创建订单后返回了4个地址,目前只知道approve是支付链接,直接浏览器跳转支付即可。问题是异步回调怎么搞?难道是用传说中的Webhook?还得继续研究研究......


2018年:

最近几天公司项目接入paypal支付,跟同事一路磕磕绊绊,各种邮件联系技术客服,各种等邮件,最后终于对接完成。

中间遇到最大的坑,是APP端支付,IPN异步回调,一直不请求回调,该设置的回调地址都设置了好几遍,就在绝望时,昨晚抱着试试看的心态测试了一单,竟然回调了!!!沙盒环境调通了!!!可以安心切到生产环境了!!!

PC端支付代码很简单,APP端现成SDK,异步回调要主动请求paypal做个验签。

PC端发起支付代码,就一个表单,要稍微注意下表单提交地址和商户邮件,区分沙盒环境和生产环境!!

沙盒环境发起支付PC代码示例(生产环境:支付地址去掉sandbox,商户邮件改成正式即可):

  <form name="paypal" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"><input type="hidden" name="cmd" value="_xclick"><input type="hidden" name="business" value="3094*****7-facilitator@qq.com"><input type="hidden" name="notify_url" value="http://www.test.com55.cn:80/api/notify/paypal"><input type="hidden" name="return" value="http://www.test.com55.cn:80/"><input type="hidden" name="cancel_return" value="http://www.test.com55.cn:80/"><input type="hidden" name="amount" value="0.01"><input type="hidden" name="currency_code" value="USD"><input type="hidden" name="item_name" value="订单号"><input type="hidden" name="on0" value="附加参数on0"><input type="hidden" name="os0" value="附加参数os0"><input type="hidden" name="on1" value="附加参数on1"><input type="hidden" name="os1" value="附加参数os1"></form><script>paypal.submit()</script>

异步回调接口,基于jfinal,PC端和APP端使用一套:

    /*** paypal支付异步回调*/public void paypal() {System.out.println("paypal异步回调:");Map<String, String> queryParas = new HashMap<String, String>(16);queryParas.put("cmd", PaypalUtil.CMD_NOTIFY_VALIDATE);getParaMap().forEach((k, v) -> queryParas.put(k, v[0]));// 验签!! VERIFIED INVALIDString ret = HttpKit.get(PaypalUtil.PAY_URL, queryParas);if (!"VERIFIED".equals(ret)) {System.out.println("验签失败!!!");renderText("fail");return;}String paymentStatus = getPara("payment_status");String onumber = getPara("item_name");String amount = getPara("mc_gross");System.out.println("验签成功!!!");System.out.println("paymentStatus:" + paymentStatus);if (!"Completed".equals(paymentStatus)) {System.out.println("payment_status异常:" + paymentStatus);renderText("fail");return;}//后续逻辑!!!自己写!!!  最后告诉paypal成功失败 renderText("success");

PaypalUtil.java

public class PaypalUtil {/*** sandbox/live*/public static final String MODE = "sandbox";public static final String BUSINESS = "***-facilitator@qq.com";public final static String CLENT_ID = "";/*** PC端,生产环境需删除sandbox*/public final static String PAY_URL = "https://www.sandbox.paypal.com/cgi-bin/webscr";public final static String CURRENCY = "USD";public final static String CMD_XCLICK = "_xclick";public final static String CMD_NOTIFY_VALIDATE = "_notify-validate";}

最后大家一块感受下,成功的喜悦!!UTF-8编码,需要进商户设置。

还是很纳闷,APP端支付时,怎么会没有异步回调地址notify_url这个参数呢?只能设置到商户中吗?为啥PC端有呢?客服说有,原生同事说没有......

附上两封技术客服回复邮件截图:

paypal支付各种配置各种坑。

肯定还有很多未踩到的坑.......

paypal支付对接(付款方式:即时付款、快速付款):PC端支付、APP端支付,异步回调IPN相关推荐

  1. Java 支付对接之银联电子商务(海南)聚合二维码支付(POS 通插件 C 扫 B 业务)

    写在前面: 二维码支付宝有两种表现形式:第一种是动态的二维码,就是每生成一个订单就会生成一个二维码:第二种是固定的二维码,就是每个订单都是同一个二维码作为入口.本文主要描述的是如何使用银联的线下C扫B ...

  2. android web打开微信支付功能,Android通过webview调起微信和支付宝app进行支付

    //方法一:调用系统自带浏览器进行显示 mWv_test.getSettings().setJavaScriptEnabled(true); mWv_test.loadUrl("http:/ ...

  3. JPA框架微信支付对接-V3支付接口,V2退款接口对接,复制即用

    框架:springDateJPA 对接微信支付首先需要需要在微信商户平台注册微信商户号 微信商户平台入口 微信公众平台入口 这里主要是微信支付的方式,一共有七种,我这里主要对接了3种,App支付,JS ...

  4. 第三方银联支付接口对接_聊聊三方支付对接那点事儿(附Demo)

    每一个做过支付对接的少年上辈子都是折翼的天使.--题记 三方支付对接是一件比较有意思的事儿,今天就拿这个话题来掰扯掰扯.相信每个做过支付对接的小伙伴都有段血与火的经历,那段日子只有痛苦与煎熬,恨不得大 ...

  5. Android App接入支付功能

    微信支付,请参考我另一篇:Android App接入支付功能--微信篇 因为项目中用到支付功能,而且支付宝文档和微信文档写的很简洁,不仔细研究,真的无法集成成功 老样子,上效果图由于涉及到输入密码,我 ...

  6. app微信支付-java服务端接口 支付/查询/退款

    app微信支付-java服务端接口 支付-查询-退款 个人看微信的文档,看了很多前辈的写法,终于调通了,在这里做一下记录. 首先来定义各种处理类(微信支付不需要特殊jar包,很多处理需要自己封装,当然 ...

  7. java版app微信支付服务端代码【手机app微信支付】

    老早就像做支付模块的东西,因为觉得很高大上,很早就开始把微信支付模块的重心签名给做好了,一直就缺个商家的key,现在有幸来电商公司,哈哈,果然一切很顺利,能够很给力地App端提供支持: 个人觉得核心部 ...

  8. paypal 按钮支付对接及回调地址配置

    因为公司要接入 paypal 支付方式,自己捣鼓搞了好久,都没弄好. 本次使用的是最简单的按钮配置,支付方式配置其实支持有很多种. 账号注册 这个就不讲了可以参考:这篇最详细 如果不想现在过去就用鼠标 ...

  9. paypal tp 对接_php对接“paypal/Checkout-PHP-SDK“支付流程

    前言 公司一个网站项目有国外的用户给我们发邮件希望能用paypal支付,于是交给了我,我们这个项目两年前是有对接paypal通道的,但是一直没有开放,测试测了并不能完成付款流程. 看paypal官方是 ...

  10. android多个微信支付,想用快速开关一键收付款?Android 版微信没适配但你可以自己做...

    作为一个原生 Android 铁粉,我得承认国内定制 ROM 在很多细节都有可圈可点之处,比如移动支付:这段时间一直在体验的 ColorOS,快速设置面板中默认就有支付宝和微信的收付款快捷方式:在 M ...

最新文章

  1. 宁夏大学计算机考研论坛,很多人认为宁夏大学考研题普通人都会做,不如一起来做下试试...
  2. ccf-csp #201909-2 小明种苹果(续)
  3. java压缩对象_Java 对象指针压缩
  4. vim配置及插件安装管理
  5. [数据结构与算法] 单链表的简单demo
  6. 2016腾讯安全挑战赛第一轮-PC游戏方向
  7. routeChangeSuccess
  8. gdal读写图像分块处理
  9. Rust创建项目的两种方式
  10. Eclipse启动报错:A java runtime Environment(JRE) or java Development……的解决办法
  11. Swift2.0新特性
  12. H5做linux界面开发,如何利用HTML5打造桌面应用?
  13. python 编程之美
  14. XJad反编译工具下载链接及使用教程
  15. 用计算机新字库打出的文字,为什么用五笔打字有很多字打不出来(GBK和GB2312字库的区别)...
  16. FragmentActivity_左右滑动的碎片
  17. Tensorflow 2.0 学习(chapter 6)
  18. 企业加速推进数字化转型,程序员进国企靠谱吗?
  19. Mac 上面编译POCO C++库
  20. JAVA:最大的行和列

热门文章

  1. 【原型】Axure基本入门
  2. ArcGIS API For Javascript之地图基本加载与显示,地图切换、缩放、定位、比例尺、鹰眼图、坐标显示、查询搜索功能实现
  3. 蛋白质降解技术中常用的蛋白酶(一)
  4. HIVE一些字符处理
  5. 定期删除IIS日志文件
  6. 每天一kernel:正太概率图
  7. 计算机就是三角函数,三角函数计算器
  8. Mysq底层数据结构和优化整理
  9. android仿微信浮窗的自动贴边可展开悬浮按钮
  10. word去掉首页页眉页脚