支付宝支付接口遇到的问题总结

简介: 支付宝支付接口遇到的问题总结

最近公司的项目有用到调用支付宝接口的功能,业务场景和对应的接口分别如下

1用户通过网页支付向商家打钱 https://doc.open.alipay.com/doc2/detail?treeId=60&articleId=103564&docType=1

2用户提现的功能(商家向用户打钱)https://doc.open.alipay.com/doc2/detail?treeId=64&articleId=103569&docType=1

 

这两个接口都必须先和阿里签约才能调用下面把开发遇到的问提总结一下:

 

1.网页支付接口,在官方提供的java版本demo工程里不允许传自定义链接,我现在想调用支付宝接口后再执行自己的工程里的业务代码并且跳转到我自己的项目工程里,查了下官方API可在商品描述body字段里传自己项目的业务链接和回调url,但是这样在签名return_url..jsp的校验  AlipayNotify.verify(params) 里返回false,原因是在getSignVeryfy签名校验的body字段传入了&等特殊符号,看了下代码只能把AlipayNotify.java 里的        if (isSign && responseTxt.equals("true"))改成   if (i responseTxt.equals("true"))  那么AlipayNotify.verify(params)就可以返回true。

 

return_url.jsp里是等交易完成后同步跳到这个jsp进行我们自己后的台业务处理,这样有个问题如果用户提前手动关闭交易完成的界面,会出现支付宝支付成功,但是后台未扣款的情况,解决办法是把业务处理的模拟http请求写在notify_url.jsp异步通知页面,这样不用等用户按完成或者等一段时间自动跳转到return_url.jsp里,而是输入支付密码后定时跳到notify_url.jsp

 

下面是支付宝官方文档关于异步通知页面的描述的描述:

有一点需要注意的是跳到notify_url.jsp的url必须是公网客访问的域名或则ip否则支付宝服务器无法跳转,调试的时候可用第三方域名代理工具natapp(https://natapp.cn/)

注意点:

①natapp已经不可用

②在一般系统中,差错处理分为两种,一种人工来处理,一种系统自动来处理。

主要有如下情况:

本地未支付,支付渠道已支付。这主要是本地未正确接收到渠道下发的异步通知导致。 一般处理是将本地状态修改为已支付,并做响应的后续处理,比如通知业务方等。

本地已支付,支付渠道已支付,但是金额不同,这个需要人工核查。

本地已支付,但是支付渠道中无记录;或者本地无记录,支付渠道有记录。在排除跨日因素外,这种情况非常少见,需要了解具体原因后做处理。

基本的思路是写一个定时器,凌晨的时候分别以平台订单为基准对账,银行订单为基准对账

③防止订单重复提交

https://blog.csdn.net/qq_42882671/article/details/88184558

 

2.商家向用户打钱调用的是批量转账接口,这个接口需要先在自己的浏览器里安装安全证书才能调用。

 

 

下面附上两个demo

http://download.csdn.net/detail/jishuisanqianli/9574237

http://download.csdn.net/detail/jishuisanqianli/9574243


目录
相关文章
|
XML 移动开发 API
微信支付开发(7) H5支付
关键字:微信支付 微信支付v3 H5支付 wap支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpayv3_h5.html    本文介绍微信支付下的H5支付实现流程。
3430 1
|
8月前
|
消息中间件 Java 测试技术
支付宝支付
支付宝支付
197 1
|
安全 算法 小程序
从零玩转系列之微信支付安全
从零玩转系列之微信支付安全
149 0
从零玩转系列之微信支付安全
|
机器学习/深度学习
关于支付宝/微信免签实现个人支付
最近一直在了解关于个人支付的问题。由于之前一直想实现个人支付,但是目前微信和支付宝的支付接口都需要企业或个体户资质,导致没办法实现,无奈只能走向这个道路。 说是免签,实际上就是拿到收款金额来做些事情。
关于支付宝/微信免签实现个人支付
|
小程序 vr&ar 数据安全/隐私保护
支付宝败局
2017年春节,红极一时的“红包大战”,没有了往日喧嚣。平静水面,却是潜流汹涌,除夕夜,腾讯诞生了一个新的世界纪录:移动支付峰值达到每秒20.8万笔,微信加QQ合计支付笔数32.2亿笔。
318 0
|
前端开发 JavaScript Java
微信支付详解
原文:微信支付详解 1.为什么会有两种JS方法可以发起微信支付? 当你登陆微信公众号之后,左边有两个菜单栏,一个是微信支付,一个是开发者中心。 在开发者中心中,有一个微信JS-SDK说明文档。 在此说明文档中,有一个发起微信支付的请求API wx.chooseWXPay({ timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。
1506 0
微信支付详解
|
XML Java 数据格式
关于微信支付和支付宝支付java实现
目前支付宝支付和微信支付是算是目前app的标配了 支付宝支付在更新过后有了官方专门的sdk和demo,所以相对而言比较简单,而微信支付稍微复杂一点,下面的文章会附实例代码,微信支付也是参考的github上的某位大神级人物的代码。
1307 0
|
安全 数据安全/隐私保护 网络安全

热门文章

最新文章

下一篇
开通oss服务