论坛首页 Java企业应用论坛

分享下项目中运用shop++源码进行第三方支付插件开发方法

浏览 4504 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2014-03-05   最后修改:2014-03-05
公司采购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();
   发表时间:2014-04-16  
想问下,它的原理是怎么回事?
为什么页面上能直接读取到PaymentPlugin 的实现类
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics