之前做web项目接入支付宝,网上看了很多文档和案列,不是不讲重点就是过时不适用了,导致走了很多弯路,经过冷静分析总算跑通了,这里分享下接入流程。
- 1.准备工作
1)支付宝服务商账号,现在叫蚂蚁金服,可以到open.alipay.com 申请入驻为服务商,入驻成功之后蚂蚁金服会开放可申请的权限,web项目申请开通 即时到账。
2)申请该权限需要你的收款网站、营业执照,某些行业可能还需要一些许可证,提交后基本一到三个工作日下来。
3)申请即时到账成功后,进入商家中心,需要设置商户密钥和支付公钥,这两个东西是必须要的,可以私信机器人客服,下载秘钥生成工具,把生成好的私钥粘贴到商户秘钥里,公钥自己保存,开发时候需要用。三种加密方式:RSA、RSA2和MD5可以根据自己需要选择,我用的是RSA。
2.下载开发demo
既然是第一次开发,那最好还是拿到demo,依然可以私信机器人客服找一下demo下载地址或者自己去菜单里找,比较难找,可以打客服电话,电话一直忙碌,建议错开高峰,下载到的是这个
因为我用的生成的是RSA密钥,所以选择RSA签名版本下的
create_direct_pay_by_user-JAVA-UTF-8
这是一个javaweb项目,所以可以直接import进myecplise,add到tomcat 跑起来。
上面两个包都到蚂蚁金服那里下载,不好到网上随便下,基本都是过时的,到时候也是浪费时间,看以下项目结构。
src先不去看他,访问一下几个jsp看看测试。
这是一个测试页面,确认支付看看。
到了一个错误页面,控制台也报错了,不用紧张,这显然是页面跳转的问题,这时候看一下src/com/alipay/config下的配置类
这里都是一些配置参数,类似于properties文件的作用。
1)partner在自己的蚂蚁金服个人中心就可以看到,2088开头。
2)支付宝号就不用说了。
3)支付宝公钥也是支付包提供的,复制过来,这里客户蚂蚁金服账号已经收回去了,没法给大家一个一个找,自己细心点,个人中心的这些参数都有。
4)商户私钥就是我们之前生成贴过去的商户密钥。
5)扫码付款页面return_url ,我这里是测试,设置
return_url=”locahost:端口号create_direct_pay_by_user-JAVA-UTF-8/rerturn_url.jsp”
6)notify可以自己随便设置一个,用于付款结束后跳转到商户页面。
6)其他参数暂时不管。
所有静态变量都设置好,确保正确,没有空格,如果下面测试出问题,就从这几个参数里找,是不是哪里有空格,或者密钥贴错了的原因。先不要去把参数弄成配置文件形式再读出来,有些框架会报错。建议测试跑通再尝试配置化。
重启项目继续测试,再次点击确认支付。
这个就是return_url.jsp,扫码支付看看效果,能到这一步,说明支付宝接口已经可以成功接入的网站了。自己去针对struts或者springmvc调整jsp和配置参数。
如果到不了这一步,不用怀疑,秘钥或者其他参数有问题。