APP支付宝支付,Java后台如何开发记录
最近公司让我写了一些支付方面的东西,本人也是支付小白,之前并没有做过,开始还怕做不好,问同事有没有做过支付啊,结果自然是没有做过,然后我就想不过是几个接口而已,很简单的,秉着这个想法,我就开始研究怎么写了,到最后也写好了,简单的支付也没有太复杂的东西,现在过来记录一下。
废话不多说,直接开始:
调用支付宝接口,Java后台需要写三个接口:
第一个接口:app请求Java后台,后台返回加签后的订单信息字符串
第二个接口:支付宝支付成功后,异步请求的逻辑处理
第三个接口:在支付完成之后,跳转回APP时,APP调用商户后台进行最终付款校验。向支付宝发起订单查询请求。
前期准备:
我们只做开发任务处理,其余事情由产品或者其他人员申请
1、获取商户号APPID
2、支付宝官网可以生成私钥、公钥
3、请求支付宝的网关地址
https://openapi.alipay.com/geteway.do
4、页面跳转同步通知页面路径
https://www.alipay.com
5、服务器异步通知路径
6、编码格式
UTF-8
7、返回格式
json
8、加密类型
RSA2
以上9个全都放在了配置文件里,方便使用和更改
第一个接口:
app端,会向我们发送请求,获取一个加密过后的支付宝订单字符串;
后台需要做的,导入支付宝的jar包
第一步:实例化客户端(参数:网关地址、商户appid、商户私钥、格式、编码、支付宝公钥、加密类型)
第二步:实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
第三步:SDK已经封装掉了公共参数,这里只需要传入业务参数。一下方法为sdk的model入参方式
到这里,app调用接口所需要的订单字符串已经生成完毕了,返回给app,交给他们做处理就好了。
(只针对支付宝所需数据进行了说明处理,并没有做具体的业务分析处理,具体情况具体分析)
第二个接口:
第一步:从支付宝回调的request域中取值,获取支付宝返回的参数集合
第二步:转化参数
第三步:签名验证(对支付宝返回的数据进行验证,确定是支付宝返回的),调用SDK验证签名
验证签名通过,可以获取到的参数有
判断最后一个参数,交易状态,是否交易成功“TRADE_SUCCESS”
如果是,进行你的业务处理;如果不是,也做相应的操作;最后返回给支付宝“success”or“fail”
第三个接口:
第一步:拿到参数,自己生成的订单号,实例化客户端(参数:网关地址、商户appid、商户私钥、格式、编码、支付宝公钥、加密类型)
out_trade_no 订单号
判断是否成功
然后做相应的处理。
到此,支付宝接口就算完了。
简单记录一下。
也希望可以帮到需要的同学。
.