最近公司让我写了一些支付方面的东西,本人也是支付小白,以前并无作过,开始还怕作很差,问同事有没有作过支付啊,结果天然是没有作过,而后我就想不过是几个接口而已,很简单的,秉着这个想法,我就开始研究怎么写了,到最后也写好了,简单的支付也没有太复杂的东西,如今过来记录一下。json
废话很少说,直接开始:api
调用支付宝接口,Java后台须要写三个接口:服务器
第一个接口:app请求Java后台,后台返回加签后的订单信息字符串app
第二个接口:支付宝支付成功后,异步请求的逻辑处理异步
第三个接口:在支付完成以后,跳转回APP时,APP调用商户后台进行最终付款校验。向支付宝发起订单查询请求。编码
前期准备:加密
咱们只作开发任务处理,其他事情由产品或者其余人员申请3d
一、获取商户号APPIDblog
二、支付宝官网能够生成私钥、公钥接口
三、请求支付宝的网关地址
https://openapi.alipay.com/geteway.do
四、页面跳转同步通知页面路径
https://www.alipay.com
五、服务器异步通知路径
六、编码格式
UTF-8
七、返回格式
json
八、加密类型
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 订单号
判断是否成功
而后作相应的处理。
到此,支付宝接口就算完了。
简单记录一下。
也但愿能够帮到须要的同窗。
.