【支付接口】玩一下支付宝沙箱环境

导读:本篇文章讲解 【支付接口】玩一下支付宝沙箱环境,文章出自:https://blog.csdn.net/weixin_43316702/article/details/123947800希望对大家有帮助,欢迎收藏,转发!站点地址:www.javazhiyin.com.com

>>强大,10k+点赞的 SpringBoot 后台管理系统竟然出了详细教程!

对接支付宝平台:
首先对接支付宝平台必须有一个实名的支付宝账号,然后我们就来开整啦~
我们今天玩一下沙箱环境(这个环境相当于测试环境,不需要用户有营业执照,但是需要按具体要求实名,生成公钥或公钥证书)
沙箱环境:https://open.alipay.com/platform/appDaily.htm?tab=info
生成公钥:https://opendocs.alipay.com/common/02kipl
一切准备就绪后就如下:
在这里插入图片描述
我这次是以公钥方式为例进行的
先讲几个比较重要的参数,如图:
在这里插入图片描述
在这里插入图片描述
appid(应用ID):填沙箱环境提供的
alipay_public_key(支付宝公钥):填配置的公钥
private_key(密钥):生成公钥时在本机的密钥
format:默认JSON
charset:默认utf-8
sign_type:默认RSA2

接口文档:https://opendocs.alipay.com/apis/api_1
以当面付-付款码-统一收单交易支付接口为例:
首先需要分析一下接口文档,看下需要参数,通用的参数一般信息都是不变的,像支付宝都有开放sdk供开发者使用,就可以不用自己去封装,当然想自己去封装也可以,我们为了简单就用支付宝的sdk,参数我们就需要填以下:
在这里插入图片描述
请求参数:(这个付款码就是用户UID)
在这里插入图片描述
在文档后面都会有调用的方法:
在这里插入图片描述
记得用这个方法要引入maven:

 <!-- 支付宝接入sdk -->
 <dependency>
   <groupId>com.alipay.sdk</groupId>
   <artifactId>alipay-sdk-java</artifactId>
   <version>4.22.75.ALL</version>
 </dependency>

代码部分就不展示了(因为有点乱hhh),都是将文档的方法进行拆分
服务顺序:
入参转换→入参校验→封装参数→调用接口

我在公司的其他项目对接了支付平台,大概讲一下调用接口思路吧,代码方面就不方便展示出来了
首先对于支付,一般情况下,每次支付都会记录一条支付流水,支付流水应该有相对应的状态,比如说支付时,会传入商户订单号,会把这个商户订单号作为支付流水号,支付成功时,将这条支付流水状态改为成功,如果也可能有网络问题或者其他问题导致失败,这个时候可能我们这边的流水状态没有修改成功,这个时候就可以通过这个商户订单号去查此次支付的状态(一般支付平台都会有查询接口的),若失败再去调用接口,成功则直接返回并将支付流水状态并改为成功;
对于退款,退款不一样的地方就是需要传上次支付的商户订单号,所以需要找到成功的支付商户订单号,这时候退款需要先找到是否有成功的支付商户订单号,若没有则不能进行退款,有则进行下一步校验退款是否有成功,跟支付一样退款也是会有保存支付流水的,需要通过退单最新的支付流水去查询是否有成功的退款流水,若无则继续调用接口,有则返回成功并将退款的支付流水状态修改为成功。