SHPO++软件支付插件拓展

来源:互联网 发布:淘宝赵信翼骑统领皮肤 编辑:程序博客网 时间:2024/06/05 10:35

研究SHOP++软件有一年多了,今年4月份推荐公司购买了SHOP++高级版本开发电商平台,从代码质量方面SHOP++还是一如既往的顺畅、清晰,我也体会到为何SHOP++软件在研究者心中有如此高的评价。

这是我们分析下SHOP++软件的支付模块,因为钱永远是牵动着每个人的神经。一般网站在支付成功后,第三方支付会发一个支付成功的异步通知,从异步通知后验证信息是否正确,然后反馈成功或失败的信息给第三方支付平台,比如是处理成功返回SUCCESS,失败返回Failure。从研究发现,SHOP++在支付处理上是绝对安全,没有任何异常,并且SHOP++第三方支付方式采用插件机制开发,扩展新的第三方支付非常简单,这里希望有更多爱好者来研究:

1、参考并复制net.shopxx.plugin.alipayDirect包
2、重命名包名称、插件类(AlipayDirectPlugin.java)名称、配置控制器类


(AlipayDirectController.java)名称、配置视图(setting.ftl)名称
3、修改插件类的@Component注解值并保证其惟一
4、修改插件类实现方法,具体如下:
/**
* 获取插件名称
*/
public abstract String getName();


/**
* 获取插件版本
*/
public abstract String getVersion();


/**
* 获取插件作者
*/
public abstract String getAuthor();


/**
* 获取插件网址
*/
public abstract String getSiteUrl();


/**
* 获取安装URL,管理后台插件安装链接地址,若不需要安装功能返回null,若需要该功能,需


编写相应配置控制器类
*/
public abstract String getInstallUrl();


/**
* 获取卸载URL,管理后台插件卸载链接地址,若不需要卸载功能返回null,若需要该功能,需


编写相应配置控制器类
*/
public abstract String getUninstallUrl();


/**
* 获取设置URL,管理后台插件设置链接地址,若不需要设置功能返回null,若需要该功能,需


编写相应配置控制器类
*/
public abstract String getSettingUrl();


/**
* 获取请求URL,跳转到第三方支付界面的URL
*/
public abstract String getRequestUrl();


/**
* 获取请求方法,跳转到第三方支付界面的请求方法
*/
public abstract RequestMethod getRequestMethod();


/**
* 获取请求字符编码,跳转到第三方支付界面的字符编码
*/
public abstract String getRequestCharset();


/**
* 获取请求参数,跳转到第三方支付界面的请求参数

* @param sn
*            编号
* @param description
*            描述
* @param request
*            httpServletRequest
* @return   请求参数
*/
public abstract Map<String, Object> getParameterMap(String sn, String description, 


HttpServletRequest request);


/**
* 验证通知是否合法,验证第三方支付完成后的返回结果是否合法

* @param sn
*            编号
* @param notifyMethod
*            通知方法
* @param request
*            httpServletRequest
* @return   通知是否合法
*/
public abstract boolean verifyNotify(String sn, NotifyMethod notifyMethod, 


HttpServletRequest request);


/**
* 获取通知返回消息,收到第三方支付完成后的返回结果的响应

* @param sn
*            编号
* @param notifyMethod
*            通知方法
* @param request
*            httpServletRequest
* @return   通知返回消息
*/
public abstract String getNotifyMessage(String sn, NotifyMethod notifyMethod, 


HttpServletRequest request);


/**
* 获取超时时间,支付超时时间
*/
public abstract Integer getTimeout();


0 0
原创粉丝点击