package com.lebaoxun.modules.pay.controller;
import com.lebaoxun.allinpay.AllInPayUtils;
import com.lebaoxun.commons.exception.ResponseMessage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Map;
/**
* @Auther: Administrator
* @Date: 2020/1/16 12:40
* @Description: 通聯支付
*/
@RestController
@Slf4j
@RequestMapping("allinpay")
public class AllInPayController {
// 當前類名
private static String currentClassName = Thread.currentThread().getStackTrace()[1].getClassName();
@RequestMapping(value = {"/memberservice/createMember"}, method = {RequestMethod.POST})
@ResponseBody
// ResponseMessage createMember(@RequestParam("userId") Long userId){
ResponseMessage createMember(){
log.info("當前類名:{}", currentClassName);
log.info("當前方法名稱:{}", Thread.currentThread() .getStackTrace()[1].getMethodName());
// 請求參數
// bizUserId 可使用userId填補
String bizUserId = "221550527";
Map<String, Object> param = AllInPayUtils.param(bizUserId);
//會員類型 企業會員 2 個人會員 3
param.put("memberType", 3L);
//訪問終端類型 Mobile移動端1 PC電腦端2
param.put("source", 1L);
// 構建服務請求的 JSON req對象
// 服務對象
String service = "MemberService";
// 調用方法 裏面放入嵌套的請求參數
String method = "createMember";
Map<String, Object> req = AllInPayUtils.req(service, method, param);
// 請求報文
Map<String, Object> reqMsg = AllInPayUtils.reqMsg(req);
// 拼接URL
// url(reqMsg);
String sysid = (String) reqMsg.get("sysid");
String sign = (String) reqMsg.get("sign");
String timestamp = (String) reqMsg.get("timestamp");
String v = (String) reqMsg.get("v");
Map<String, Object> req1 = (Map<String, Object>) reqMsg.get("req");
String url = AllInPayUtils.testInterfaceURL+"?sysid" + sysid +"&sign" + sign +
"×tamp" + timestamp +"&v" + v +"&req" + req1;
log.info("拼接URL:{}", url);
return ResponseMessage.ok(reqMsg);
}
/**
* 請求報文
*
* http://116.228.64.55:6900/service/soa?sysid=100000000002&sign=WtgdkRhN7529Pgw9e%2bvq
*
* OKODHSMywpkqf0h0GTt%2bSz2LilRqr6wp%2b3jKFUan2WdRxSUSVDOgk%2fFTDMHRG392aRgV
*
* V0QNdO%2bao77oZ2Qg%2f9KBzkl%2fP0UzWxPnzB9S4Ijw057MSp%2bWdAebrn3hO2v%2fWDR
*
* KsfhWnk62qcr77BfStdo%3d×tamp=2019-03-06+13%3a28%3a15&v=2.0&req=%7b%22ser
*
* vice%22%3a%22MemberService%22%2c%22method%22%3a%22createMember%22%2c%22par
*
* am%22%3a%7b%22bizUserId%22%3a%22ceshitiyan%22%2c%22memberType%22%3a3%2c%22
*
* source%22%3a1%7d%7d&
* url拼接
* @param reqMsg
*/
public static String url(Map<String, Object> reqMsg){
String sysid = (String) reqMsg.get("sysid");
String sign = (String) reqMsg.get("sign");
String timestamp = (String) reqMsg.get("timestamp");
String v = (String) reqMsg.get("v");
String req = (String) reqMsg.get("req");
String url = AllInPayUtils.testInterfaceURL + sysid + sign + timestamp + v + req;
log.info("拼接URL:{}", url);
String aa = null;
try {
aa = URLEncoder.encode(url, "UTF8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
log.info("拼接URL大綱· :{}", aa);
return url;
}
public static void main(String[] args) {
AllInPayController a = new AllInPayController();
ResponseMessage member = a.createMember();
}
}