【最新、最详细】电脑网站接入支付宝接口的方法

来源:互联网 发布:怎么登录js邮箱 编辑:程序博客网 时间:2024/05/16 18:43

引言

支付宝官方电脑网站支付快速接入文档:https://docs.open.alipay.com/270/105899/;
接下来,我会对这份快速接入文档进行详细的说明。


1、接入支付宝接口的准备

首先,进行一个说明,我做电脑网站接入支付宝接口时,用的是沙箱环境先进行调试的,并且是以java版本为例子的。你需要先注册一个企业号,并且登录支付宝:
https://open.alipay.com/platform/home.htm;

登录进去后,在左上角有一个“开发者中心”按钮,点进去后,在左边有一个“沙箱环境”按钮,点击进入沙箱环境,进行沙箱环境下的支付宝接口开发(在沙箱环境下调试好支付宝的接口后,只需要修改AlipayConfig.java中的配置信息就可以使用了):
这里写图片描述

1.1 配置沙箱环境

1)首先,需要生成RSA2(SHA256)的应用公钥,并且配置好RSA2(SHA256)的应用公钥,这里注意,不需要配置RSA(SHA1)密钥。
(生成RSA2的应用公钥详情请参考:https://docs.open.alipay.com/291/105971)
这里写图片描述

2)!!★★★注意,在沙箱环境下,支付宝的网关与真实的网关有所不同!这里需要注意!

更多的配置沙箱环境的问题可以查阅支付宝官方沙箱环境使用说明文档:
https://docs.open.alipay.com/200/105311

1.2 下载SDK&Demo

1)我下载的电脑网站支付demo是java版本的,还有PHP版本和.NET版本的,下载地址为:
https://docs.open.alipay.com/270/106291/

2)下载完demo后,打开里面的readme.txt,按照里面的使用方法一步步完成即可。这里要说明的只有一点,那就是在demo里面还需要下载SDK,将SDK压缩包里面的一些jar包放到工程项目中,就可以了

这里写图片描述

2、接入支付宝

前面已经配置好沙箱环境以及下载好了demo和SDK,接下来要做的工作就是配置AlipayConfig.java文件,并且运行index.jsp文件,查看效果,然后根据自己网站的需求修改index.jsp文件。

2.1 配置AlipayConfig.java

打开AlipayConfig.java文件,可以看到需要配置app_id,RSA2私钥,支付宝公钥,服务器异步通知页面路径,页面跳转同步通知页面路径,支付宝网关。其中,签名方式,字符编码格式是不需要配置的。这个它本身就写好了的。

1)配置app_id,这个app_id就是在沙箱应用中的APPID

2)配置RSA2私钥和支付宝公钥,RSA2私钥是在前面生成好的私钥,而支付宝公钥在上传了应用公钥后,直接点击查看支付宝公钥即可

3)配置服务器异步通知页面路径,★★★注意:这个异步通知页面路径一定要公网可以访问的,不是内网访问!(异步通知的理解可以先转2.2查看接口调用流程),我在这里个人建议可以使用 花生壳软件,绑定本机的ip来进行测试。

4)配置页面跳转同步通知页面路径,这个不需要公网,只需要本机能访问就可以了(同步通知的理解也转2.2查看接口调用流程)

5)支付宝网关,★★★这个一定要注意,使用沙箱环境的支付宝网关和不使用沙箱环境的支付宝网关是不一样的!

注释:有些地方需要配置PID,这个PID就是商户UID

2.2 接口调用流程

这里写图片描述

这里对异步回调和同步回调,进行一个详细的说明。

简单来说,异步回调的意思是不给用户跳转页面,而是执行异步回调页面(即.jsp中的java代码),这里要重点注意的是,因为并不会跳转到该页面,所以并不会执行里面的jsp或者js代码,只会执行java代码。但是,在这里我用的struts2+spring框架,在该jsp页面中调用action的话,在action调用service层时会发生错误。

所以,我在配置异步回调页面的时候,直接通过url执行到action代码,并且通过:

PrintWriter out = ServletActionContext.getResponse().getWriter();HttpServletRequest request = ServletActionContext.getRequest(); 

这里我介绍一下,因为支付宝在异步回调的时候,一定要用“out.println”打印出success,支付宝的服务器才会确定这个交易完成了。所以,首先需要定义out,在定义out前,需要得到response,那么接下来,我们介绍一下response:

1、了解response响应

服务器在接收和解释客户端的请求消息后,服务器会返回给客户端一个HTTP响应消息,我们称之为响应(response)。其实也是一个按照http协议的规则拼接而成的一个字符串

在该action中进行商户订单号,交易状态,付款金额,卖家id,商户本身id的验证,防止黑客通过修改该付款金额一类的参数,从而导致网站的损失。并且,这样在action调用service层以及service层调用dao层时都不会发生错误!

同步回调就比较好理解了,就是支付宝在支付完成后,过几秒中会跳转到,你在AlipayConfig中配置的同步回调页面,这个页面可以是自己写的,不需要一定要公网!

3、使用沙箱账号测试支付宝接口

在沙箱环境那一栏,有沙箱账号,使用沙箱账号的买家账号和登录密码进行测试付款