最近在做一个项目,需用到支付功能。于是,觉得实现支付宝的支付功能。在做这个功能的时候,遇到了很多的bug,现在来总结总结。
具体步骤
第一步:百度搜索 蚂蚁金服开放平台
第二步:打开沙箱环境,点击沙箱应用,配置RSA2的秘钥,可以用官网提供的工具
配置好之后,会出现此界面。
第三步:下载官方demo源码
`下载demo
第四步:导入到eclipse
打开配置文件AlipayConfig.java
appID和支付宝网关是已经给好的,网关有dev字样,表明是用于开发测试。
app_id的值为:
merchant_private_key的值为配置的时候自己生成的私钥
alipay_public_key需要的是支付宝的公钥:
配置工作差不多完成,代码便能运行。
讲解几个jsp页面的作用:
index主要内容是表单,将订单信息提交到action里,有订单号、金额、和商品名称是必填的,注意格式,都是String类型,可以将价格的int类型转String。
alipay.trade.page.pay为支付页面,index.jsp的action是跳到支付页面,
输出的是支付页面,即result是一个页面。
然而,这种在jsp页面里写java代码有点low,于是我用了SSM框架来实现支付功能。
将支付页面的内容放到了后台 action里
在这遇到的最大的问题是忘了写@ResponseBody注解,以至于总是报404,推荐几个博客
@ResponseBody注解的作用
@ResponseBody注解的作用
最后一步:
配置回调地址,支付完成之后的地址。分为两种同步和异步:
return_url.jsp (跳转页面,买家支付成功后跳转的页面,仅当买家支付成功后跳转一次。)
notify_url.jsp (异步通知,下单成功后,支付宝服务器通知商户服务,并把这笔订单的状态通知给商户,商户根据返回的这笔订单的状态,修改网站订单的状态,比如等待买家付款状态,买家已经付款等待卖家发货…)
然而这两种地址都需要外网地址,需要将内网地址映射到外网上。推荐用natapp,不会用的可以去看看教程。
然后再改回调地址
最后不要忘了设置这个
现在想想觉得,这个挺简单的,但是遇到的bug却不少。