## **乐刷合作方JAVA-SDK使用指南** ##
### **注意事项** ###
- 提供的SDK仅供参考,不能直接到生产环境中使用。
**运行环境**
- Jdk1.7、Maven3.2.5、Eclipse Luna4.4.2、Tomcat8.0、编码UTF-8
**相关约定**
- 商户号 乐刷分配的商户ID
- 商户密钥 商户对应的密钥(签名使用)
- 代理商密钥 代理商对应的密钥(签名使用)
- 第三方订单号(第三方系统生成的订单号)
**注**: 请求地址、agentId、privateKey等信息配置在config.properties文件中,更改信息时直接更改配置文件即可。配置文件config.properties在leshua-demo和leshua-sdk中都有,如果只引用leshua-sdk-0.0.1-SNAPSHOT.jar则以leshua-sdk中的配置文件为准,如果运行leshua-demo,以leshua-demo中的配置文件为准。
**SAAS渠道商商户接入接口调用DEMO**
主要结构:Leshua-demo工程对进件接口和交易接口中的接口都做了调用实例,可以直接部署工程进行测试,工程结构使用的是简单的MVC模型结构,leshua-demo使用maven引用leshua-sdk。
![](https://box.kancloud.cn/efadc9b023de9dbefbc0bb0fa976dd8c_242x392.png)
- **下面以进件接口中“商户信息查询”接口为例,描述demo、sdk开发步骤**:
1、在HomeController、index.jsp中加上相应的请求方法及对应跳转页面
```
/**HomeController
* 商户信息查询
* @return
*/
@RequestMapping("/wxOrZfbReportQuery")
public String wxOrZfbReportQuery(){
return "wxOrZfbReportQuery";
}
<!--index.jsp>
<dl class="menu">
<dt>商户信息查询:</dt>
<dd>
<a href=" wxOrZfbReportQuery">点此</a>
</dd>
<dl>
```
2、 编写对应的jsp页面,jsp名与HomeController中return的字符串值一致
![jsp](https://box.kancloud.cn/a8834f1d16077ba1ab79a6d817d01533_202x26.png)
3、在MerchantController(leshua-demo)、MerchantGateWayService(leshua-sdk)中添加对应的方法:
```
/**
* 商户信息查询
*
@param request
*
@param model
*
@return
*/
@RequestMapping("/wxOrZfbReportQuery")
public String wxOrZfbReportQuery(HttpServletRequest request,Model model){
JSONObject data = new JSONObject();
String result = null;
try{
validParam(data, "merchantId", request.getParameter("merchantId"));
validParam(data, "reportConfigId",request.getParameter("reportConfigId"));
result = service.wxOrZfbReportQuery(data);
}catch(Exception e)
{
logger.info("商户信息查询",e);
}
return result;
}
```
![demo](https://box.kancloud.cn/c07aa12fd7b0037db774c80ececa369c_554x137.png)
4、在MerchantConfig中新增对应的配置变量
```
public class MerchantConfig {
public static String AGENT_ID;//代理商编号
public static String KEY;//私钥
public static String VERSION;
//版本号
public static String CHARSET;//字符编码//
public static String REQ_SERIAL_NO = UUID.randomUUID().toString();//请求流水号,可自定义
public static String REGISTER_URL;//商户进件
public static String OPEN_URL;//商户开通业务
public static String UPDATE_URL;//商户信息修改
public static String WX_PAY_CONFIG_URL;//商户支付参数-新增
public static String WX_PAY_CONFIG_QUERY_URL;//商户支付参数-查询
public static String WX_ZFB_MCH_INFO_QUERY_URL;//商户信息查询
public static String ACCOUNT_UPDATE_URL;//结算卡快速修改
static {
Properties prop = new Properties();
InputStream in = LeshuaConfig.class.getResourceAsStream("/config.properties");
try {
prop.load(in);
AGENT_ID = prop.getProperty("AGENT_ID").trim();
KEY = prop.getProperty("KEY").trim();
VERSION = prop.getProperty("VERSION").trim();
CHARSET = prop.getProperty("CHARSET").trim();
REGISTER_URL = prop.getProperty("REGISTER_URL").trim();
OPEN_URL = prop.getProperty("OPEN_URL").trim();
UPDATE_URL = prop.getProperty("UPDATE_URL").trim();
WX_PAY_CONFIG_URL=prop.getProperty("WX_PAY_CONFIG_URL").trim();
WX_PAY_CONFIG_QUERY_URL =prop.getProperty("WX_PAY_CONFIG_QUERY_URL").trim();
WX_ZFB_MCH_INFO_QUERY_URL=prop.getProperty("WX_ZFB_MCH_INFO_QUERY_URL").trim();
ACCOUNT_UPDATE_URL=prop.getProperty("ACCOUNT_UPDATE_URL").trim();
SETTLEMENT_ORDER_URL = prop.getProperty("SETTLEMENT_ORDER_URL").trim();
} catch (IOException e){
e.printStackTrace();
}
}
```
5、在config.properties中添加对应的配置
```
#商户信息查询
WX_ZFB_MCH_INFO_QUERY_URL=http://pos.lepass.cn/api/merchant/mch_info_qry.do
```
- **下面以交易接口为例,描述demo、sdk开发步骤**
- **项目结构**
![project-structure](https://box.kancloud.cn/3488bb160b3eac50060eb6d2cba16a35_198x331.png)
- **引用JAR包**
leshua-sdk-0.0.1-SNAPSHOT.jar
- **相关SERVICE**
LeshuaMicroPayService : 条码支付
LeshuaScanCodePayService: 扫码支付
LeshuaTransQueryService: 交易查询
LeshuaTransRefundService: 交易退款
LeshuaRefundQueryService: 交易退款查询
LeshuaOrderCloseService: 交易订单关闭
LeshuaOpenIdQueryService: 授权码查询用户openid
**注** : SDK内部封装了接口签名及验签功能,只需要调用相应的service,即可调通所有接口,相应接口参数,请查看接口文档。具体调用参考leshua-demo
- **调用代码片段**
1、扫码支付
![SMZF](https://box.kancloud.cn/b1edafa665306e0a022a7d6658fc365f_465x326.png)
2、条码支付
![TMZF](https://box.kancloud.cn/84698352137f8745622befdd98722fe4_518x455.png)
3、交易结果查询
![JYJGCX](https://box.kancloud.cn/b0b0220ec1bd879320e2b51d20b7b271_554x374.png)
4、订单关闭
![DDGB](https://box.kancloud.cn/c4ee08ccd64c25cac2853a3d2c64f4a1_547x378.png)
5、退款
![TK](https://box.kancloud.cn/987156340a493c42f26b66ae45b3a356_554x458.png)
6、退款查询
![TKCX](https://box.kancloud.cn/03c38f3703cb4f85f0883d201eb76619_554x317.png)
7、授权码查询用户openid
![openid](https://box.kancloud.cn/a92274eeb3c9b64e3d46da8ac6990b3d_554x280.png)
8、回调通知(POST接收XML参数)
![TZ](https://box.kancloud.cn/49c32dd332b2fc808dd3f96e69a8b8b1_554x290.png)
- 产品介绍
- 1、概述
- 2、变更记录
- 应用场景
- 进件应用场景
- 交易应用场景
- 对账应用场景
- 交易错误码信息参照表
- 进件接口
- 接口指南及签名算法等说明
- 图片上传
- 商户进件
- 商户开通业务
- 商户信息修改
- 商户查询
- 商户支付参数-新增
- 商户支付参数-查询
- 商户审核回调
- 子商户号查询
- 商户微信实名认证-申请
- 商户微信实名认证-撤销
- 商户微信实名认证-查询
- 交易接口
- 数据格式及签名规则说明
- 统一下单
- 条码支付
- 交易结果查询
- 订单关闭
- 退款
- 退款查询
- 授权码查询用户openid
- 授权码获取银联云闪付用户ID
- 退款结果通知
- 支付结果通知
- 打款查询
- 商户打款单结果查询
- 查询商户指定日期打款情况
- 查询旗下商户打款失败明细
- 打款回调
- 对账单文件
- 交易对账单
- 代理商分润对账单
- 代理商退货分润对账单
- 商户打款单
- POS机具通知
- 数据格式及数据签名说明
- 扫码支付成功通知
- 扫码退款通知
- 刷卡交易通知
- FAQ
- 进件相关
- 交易相关
- POS相关
- 手续费及分润计算
- Demo相关下载
- Demo与进件相关数据和对账单文件示例下载
- Java-SDK使用说明
- 商户进件资料提交规范
- 商户信息提交规范
- 商户结算信息提交规范
- 图片上传提交规范
- 结算
- 常见打款失败原因
- 商户修改结算卡流程
- 商户特殊业务
- 商户申请关注公众号
- 商户申请手续费开票流程
- 机具购买流程
- saasPOS机具清单信息
- 服务商机具购买流程
- saas刷脸设备清单信息
- 商户微信认证操作指引
- 商户微信认证操作指引
- 重要通知