## **樂刷合作方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。

- **下面以進件接口中“商戶信息查詢”接口為例,描述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的字符串值一致

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;
}
```

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開發步驟**
- **項目結構**

- **引用JAR包**
leshua-sdk-0.0.1-SNAPSHOT.jar
- **相關SERVICE**
LeshuaMicroPayService : 條碼支付
LeshuaScanCodePayService: 掃碼支付
LeshuaTransQueryService: 交易查詢
LeshuaTransRefundService: 交易退款
LeshuaRefundQueryService: 交易退款查詢
LeshuaOrderCloseService: 交易訂單關閉
LeshuaOpenIdQueryService: 授權碼查詢用戶openid
**注** :?SDK內部封裝了接口簽名及驗簽功能,只需要調用相應的service,即可調通所有接口,相應接口參數,請查看接口文檔。具體調用參考leshua-demo
- **調用代碼片段**
1、掃碼支付

2、條碼支付

3、交易結果查詢

4、訂單關閉

5、退款

6、退款查詢

7、授權碼查詢用戶openid

8、回調通知(POST接收XML參數)

- 產品介紹
- 1、概述
- 2、變更記錄
- 應用場景
- 進件應用場景
- 交易應用場景
- 對賬應用場景
- 交易錯誤碼信息參照表
- 進件接口
- 接口指南及簽名算法等說明
- 圖片上傳
- 商戶進件
- 商戶開通業務
- 商戶信息修改
- 商戶查詢
- 商戶支付參數-新增
- 商戶支付參數-查詢
- 商戶審核回調
- 子商戶號查詢
- 商戶微信實名認證-申請
- 商戶微信實名認證-撤銷
- 商戶微信實名認證-查詢
- 交易接口
- 數據格式及簽名規則說明
- 統一下單
- 條碼支付
- 交易結果查詢
- 訂單關閉
- 退款
- 退款查詢
- 授權碼查詢用戶openid
- 授權碼獲取銀聯云閃付用戶ID
- 退款結果通知
- 支付結果通知
- 打款查詢
- 商戶打款單結果查詢
- 查詢商戶指定日期打款情況
- 查詢旗下商戶打款失敗明細
- 打款回調
- 對賬單文件
- 交易對賬單
- 代理商分潤對賬單
- 代理商退貨分潤對賬單
- 商戶打款單
- POS機具通知
- 數據格式及數據簽名說明
- 掃碼支付成功通知
- 掃碼退款通知
- 刷卡交易通知
- FAQ
- 進件相關
- 交易相關
- POS相關
- 手續費及分潤計算
- Demo相關下載
- Demo與進件相關數據和對賬單文件示例下載
- Java-SDK使用說明
- 商戶進件資料提交規范
- 商戶信息提交規范
- 商戶結算信息提交規范
- 圖片上傳提交規范
- 結算
- 常見打款失敗原因
- 商戶修改結算卡流程
- 商戶特殊業務
- 商戶申請關注公眾號
- 商戶申請手續費開票流程
- 機具購買流程
- saasPOS機具清單信息
- 服務商機具購買流程
- saas刷臉設備清單信息
- 商戶微信認證操作指引
- 商戶微信認證操作指引
- 重要通知