支付宝服务窗的简单开发体会
来源:互联网 发布:淘宝的竖向分类怎么弄 编辑:程序博客网 时间:2024/05/22 14:00
这两天做了一下支付宝服务窗,记一下吧,做一个积累,防止以后再次需要开发时忘记。 项目的要求是可以使用支付宝的服务窗就可以了,相关交互也很简单,只需要获取到使用用户的支付宝的唯一标识符(以前是openId,不过openId将会在2016年9月废弃,现在使用userId。如果还是使用的openId,也就是遗留的项目,支付宝提供了相关的接口,可以使用openId换取userId<alipay.platform.userid.get>)就可以了。其实感觉支付宝提供的相关的文档还是蛮全的。
支付宝服务窗开发主要需要:
已申请支付宝服务窗的账号
外网可以访问的url。本机上可以使用端口映射,主要开发时使用(直接使用ip+端口映射不知道可不可以,没有试过)。
3.openssl软件,这个其实在支付宝提供的包里已经提供了(支付宝的手机网站支付的demo中有<demo网址。
开发步骤
激活开发者模式(必须验签和回复相关消息,偷懒的话可以不验签,直接将相关的消息响应给支付宝就好了,猜的,没试过,应该)。
这里相关的文档还是蛮详细的。生成公钥和私钥就不多说了,已近够详细了,简单的说下它提供的demo吧(放到结尾说,排版好看点)。
设置服务窗的菜单及相关的功能。其实这如果不需要支付宝提供的userId,那样上面写的和下面写的所有东西都可以忽略,只要在管理中心的几个菜单上点点就好了。
同样相关的文档支付宝也已经提供。(文档)。我使用的是只要获取用户的userId,不需要其他的用户信息,所以只要scope=auth_base就好了。这里的代码支付宝的demo中已经提供了,只要稍微改一下就可以使用:try { String authCode = this.getReqParam("auth_code"); String userId = null; AlipaySystemOauthTokenRequest req = new AlipaySystemOauthTokenRequest(); req.setGrantType("authorization_code"); req.setCode(authCode); AlipayClient alipayClient = AlipayUtil.getAlipayClient(); AlipaySystemOauthTokenResponse res = alipayClient.execute(req); XMap map = new XMap(); if (null != res && res.isSuccess()) { userId = res.getAlipayUserId(); map.put("appid", userId); System.out.println(userId); } else { System.out.println("authCode换取userId失败"); } this.outPut(map); } catch (AlipayApiException e) { e.printStackTrace(); }
如果获取用户的信息,支付宝的demo也有,直接删删改改就可以了。 这里需要注意一下的是需要导入支付宝的相关jar包,当然如果只是这里使用的话可以不使用支付宝的jar包,换成使用HttpClient来实现,但是相比较而言麻烦一下,直接使用支付宝的直接传几个参数而已,何乐而不为呢。如果还要使用其他信息,就要修改相关的scope,文档里直接找就是了。
支付宝服务窗demo
支付宝的demo只要知道服务窗的基本功能就可以:
纯文本类型 MsgType:text
事件类型 MsgType:event
激活验证开发者模式 (service:alipay.service.check)(EventType:verifygw)
其他消息通知 (service:alipay.mobile.public.message.notify)
服务窗关注事件 (EventType:follow)
服务窗取消关注事件 (EventType:unfollow)
服务窗进入事件 (EventType:enter)
自定义场景进入事件
普通进入服务窗事件
根据actionParam进行转发(服务窗点击事件)(EventType:click)
authentication 申请开发者会员绑定事件: actionParam支付宝服务窗固定值(ActionParam:authentication )
delete 删除开发者会员绑定事件:actionParam支付宝服务窗固定值(ActionParam:delete)
xxx 开发者自定义 (ActionParam:xxx)
更多
更多
对照这看demo很容易就知道了。 从servlet开始:这方面主要在GatewayServlet里面。
验签没什么,直接调相关方法就好了,注意req的编码和本项目的编码。
宏观上来说demo主要是接收相关的req,然后取得该req的参数,进入(Dispatcher)获取业务的分发器,然后在分发器中获取业务的执行器。简单点说,就是从上面的纯文本类型开始验证,逐渐细化到最里面的一层,将该层的功能返回对应的执行器(执行器也就是ActionExecutor接口,不同的功能就是该接口的不同的实现,以后添加功能直接添加该接口的实现就好了)。
开发的时候可以直接使用相关的代码,然后在里面删减对应的功能就好了。不过话说如果像我现在的项目只要验证,所以只要一个激活验证开发者模式的验证就好了,两层验证返回就好了,当然要求更低的可以直接返回相关的res就好,都可以不验证。可以是可以,但是如果以后加功能的话。。。
在LoginAuthServlet里面也就是取得用户的userId和用户的详细信息等相关内容。
其他的一些类都是一些例子,对于我这样的新手+菜鸟来说简直是福音。
怎么说呢,一开始看见那么多类,都不想去看这个demo,后来没办法才去看的。清晰,第一感觉就是这个,不想自己写的代码,业务一复杂时自己都不想去看,不过由于源码读的少的原因,自从看完设计模式的书后,虽然大概也知道现在的比较出名的开源框架大概用了哪些,但是都是别人说的,从来没有自己去体会过。或者说知道使用了相关的模式之后,再去读源码的时候自动去找相关的模式的使用情况,虽然知道他们很好,但是由于自己没有去写,从来不知道这玩意儿多好。但是看了这个demo后真心很。。。震撼,应该是,比比自己的代码,就是去堆逻辑,固然有很多地方是用不上模式的,更多的原因是不熟。虽然知道这玩意用多了也不好,但是用了之后可以取舍,而这和不会用完全是两回事,慢慢积累吧,会有一天脱离菜鸟的行列的。任重而道远啊。
来源:https://segmentfault.com/a/1190000004547818
- 支付宝服务窗的简单开发体会
- PHP支付宝服务窗API接口的开发
- 【Day63】PHP支付宝服务窗API接口的开发
- 支付宝服务窗 开发 验证
- 支付宝公共服务窗开发总结
- 支付宝公共服务窗开发总结
- 支付宝服务窗API接口开发php版本
- [支付宝服务窗]序言
- iOS开发中支付宝支付的集成(其实很简单)
- 支付宝开发中,抱歉,该商户未开通支付宝服务,无法支付
- iOS集成支付宝开发“抱歉,该商户未开通支付宝服务,无法支付”
- 支付开发(六)----支付宝支付的几种方式
- 支付宝的简单用法
- 支付服务集成-支付宝
- 开发的一点体会
- JEECG再创新举,开辟支付宝服务窗开发新时代,业内独家培训 《支付宝服务窗实战培训》
- JEECG再创新举,开辟支付宝服务窗开发新时代,业内独家培训 《支付宝服务窗实战培训》
- 支付宝开发的几个问题
- ready事件和onload的区别,及$(window).load()方法
- Node.js 安全清单
- pppython tushare学习笔记API篇(3)投资参考数据
- Android M 6.0 READ_CONTACTS WRITE_CONTACTS权限问题
- vs无法生成项目
- 支付宝服务窗的简单开发体会
- PostgreSQL 9种索引的原理和应用场景
- 扒一扒那些说起来简单做着难的技术需求
- Python函数-关键字参数
- 大数据学习之路-第04天-centos防火墙操作-开启防火墙&关闭防火墙
- 51nod 1370 排列与操作
- JAVA传参
- 基于spring mvc下请求的简单工作流程及其相应配置集成
- Java反射(一)----基础介绍