支付宝APP支付服务端详解
前面接了微信支付,相比微信支付,支付宝APP支付提供了支付封装类,下面将实现支付宝APP支付、订单查询、支付结果异步通知、APP支付申请参数说明,以及服务端返回APP端发起支付的签名、商户私钥、支付宝公钥的配置使用等。
支付注意事项
1、APP支付不能在沙箱测试、只能申请上线测试
2、需要创建RSA密钥设置文档,设置后上传rsa_public_key.pem【开发者公钥,上传时需要去掉公钥的头和尾】上传成功后换取支付宝公钥,为项目的alipay_public_key.pem
3、rsa_private_key_pkcs8.pem【开发者私钥】,去掉头和尾为项目的alipay_private_key_pkcs8.pem
4、需要导入所需支付包:alipay-sdk-java.jar 和 commons-logging.jar,具体参考:服务端SDK
支付流程
APP支付:服务器端按照文档【统一收单交易支付接口】创建支付OrderStr返回APP端——-APP端拿到OrderStr发起支付—–支付宝服务器端回调服务端异步通知接口——-服务器端按照【App支付结果异步通知】校验签名等做业务逻辑处理
APP支付订单查询:服务器端调用【统一收单线下交易查询】查询支付订单
APP支付申请退款:每笔支付可以申请多次退款,但退款总金额不能超过支付金额,调用【统一收单交易退款接口】发起退款申请
APP支付退款查询:服务端调用【 统一收单交易退款查询】查询退款订单信息
以上为转载。
在具体开发的时候会出现一些问题。总结一下:
问题1:生成密钥的问题
密钥有3个。
密钥生成见支付宝帮助文档,地址是 https://doc.open.alipay.com/doc2/detail.htm?treeId=193&articleId=105310&docType=1
我在使用WIN10系统使用方式1生成的时候,点击解压打开文件夹,直接运行“支付宝RAS密钥生成器SHAwithRSA1024_V1.0.bat”。他是啥都没有生成,然后我又自作聪明跑到 secret_key_tools_RSA_winRSAopenssl 目录下运行生成公钥.bat , 生成公钥私钥转换PCKS8.bat , 私钥转换PCKS8.bat 批处理文件。(secret_key_tools_RSA_win.zip解压后的文件夹名)
结果是,还是有问题。
后来同事用方式1,但是改成苹果笔记本生成就好了。
好是怎么验证出来的呢?
打开 https://openhome.alipay.com/platform/detailApp.htm?appId=2016111602874881&tab=appSetting 地址,
在左边的导航栏里面选择,应用环境——》接口加签方式 打开下面的窗口。
在第三步下载签名检验的工具,将生成的密钥放入左侧,然后生成签名后,再放入第三步的窗口中进行验证看是否正确。校验通过,则说明公钥和私钥生成成功。
另附全java服务端和客户端支付宝支付demo:https://pan.baidu.com/s/1kVqmVXX