Exemplo n.º 1
0
 /** 更新 */
 @RequestMapping(value = "/update", method = RequestMethod.POST)
 public String update(
     String paymentName,
     String partner,
     String key,
     FeeType feeType,
     BigDecimal fee,
     String logo,
     String description,
     @RequestParam(defaultValue = "false") Boolean isEnabled,
     Integer order,
     RedirectAttributes redirectAttributes) {
   PluginConfig pluginConfig = tenpayBankPlugin.getPluginConfig();
   pluginConfig.setAttribute(PaymentPlugin.PAYMENT_NAME_ATTRIBUTE_NAME, paymentName);
   pluginConfig.setAttribute("partner", partner);
   pluginConfig.setAttribute("key", key);
   pluginConfig.setAttribute(PaymentPlugin.FEE_TYPE_ATTRIBUTE_NAME, feeType.toString());
   pluginConfig.setAttribute(PaymentPlugin.FEE_ATTRIBUTE_NAME, fee.toString());
   pluginConfig.setAttribute(PaymentPlugin.LOGO_ATTRIBUTE_NAME, logo);
   pluginConfig.setAttribute(PaymentPlugin.DESCRIPTION_ATTRIBUTE_NAME, description);
   pluginConfig.setIsEnabled(isEnabled);
   pluginConfig.setOrder(order);
   pluginConfigService.update(pluginConfig);
   addFlashMessage(redirectAttributes, SUCCESS_MESSAGE);
   return "redirect:/admin/payment_plugin/list.jhtml";
 }
Exemplo n.º 2
0
 @Override
 public Map<String, Object> getParameterMap(
     String sn, String description, HttpServletRequest request) {
   PluginConfig pluginConfig = getPluginConfig();
   Payment payment = getPayment(sn);
   Map<String, Object> parameterMap = new LinkedHashMap<String, Object>();
   parameterMap.put("inputCharset", "1");
   parameterMap.put("pageUrl", getNotifyUrl(sn, NotifyMethod.sync));
   parameterMap.put("bgUrl", getNotifyUrl(sn, NotifyMethod.async));
   parameterMap.put("version", "v2.0");
   parameterMap.put("language", "1");
   parameterMap.put("signType", "1");
   parameterMap.put("merchantAcctId", pluginConfig.getAttribute("partner"));
   parameterMap.put("payerIP", request.getLocalAddr());
   parameterMap.put("orderId", sn);
   parameterMap.put(
       "orderAmount", payment.getAmount().multiply(new BigDecimal(100)).setScale(0).toString());
   parameterMap.put("orderTime", new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()));
   parameterMap.put("orderTimestamp", new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()));
   parameterMap.put(
       "productName",
       StringUtils.abbreviate(description.replaceAll("[^0-9a-zA-Z\\u4e00-\\u9fa5 ]", ""), 100));
   parameterMap.put(
       "productDesc",
       StringUtils.abbreviate(description.replaceAll("[^0-9a-zA-Z\\u4e00-\\u9fa5 ]", ""), 400));
   parameterMap.put("ext1", "dp2345");
   parameterMap.put("payType", "00");
   parameterMap.put("signMsg", generateSign(parameterMap));
   return parameterMap;
 }
Exemplo n.º 3
0
 /** 安装 */
 @RequestMapping(value = "/install", method = RequestMethod.POST)
 public @ResponseBody Message install() {
   if (!tenpayBankPlugin.getIsInstalled()) {
     PluginConfig pluginConfig = new PluginConfig();
     pluginConfig.setPluginId(tenpayBankPlugin.getId());
     pluginConfig.setIsEnabled(false);
     pluginConfigService.save(pluginConfig);
   }
   return SUCCESS_MESSAGE;
 }
Exemplo n.º 4
0
 /**
  * 生成签名
  *
  * @param parameterMap 参数
  * @return 签名
  */
 private String generateSign(Map<String, Object> parameterMap) {
   PluginConfig pluginConfig = getPluginConfig();
   return DigestUtils.md5Hex(
           joinKeyValue(
               parameterMap,
               null,
               "&key=" + pluginConfig.getAttribute("key"),
               "&",
               true,
               "signMsg"))
       .toUpperCase();
 }
Exemplo n.º 5
0
 @Override
 public boolean verifyNotify(String sn, NotifyMethod notifyMethod, HttpServletRequest request) {
   PluginConfig pluginConfig = getPluginConfig();
   Payment payment = getPayment(sn);
   Map<String, Object> parameterMap = new LinkedHashMap<String, Object>();
   parameterMap.put("merchantAcctId", request.getParameter("merchantAcctId"));
   parameterMap.put("version", request.getParameter("version"));
   parameterMap.put("language", request.getParameter("language"));
   parameterMap.put("signType", request.getParameter("signType"));
   parameterMap.put("payType", request.getParameter("payType"));
   parameterMap.put("bankId", request.getParameter("bankId"));
   parameterMap.put("orderId", request.getParameter("orderId"));
   parameterMap.put("orderTime", request.getParameter("orderTime"));
   parameterMap.put("orderAmount", request.getParameter("orderAmount"));
   parameterMap.put("bindCard", request.getParameter("bindCard"));
   parameterMap.put("bindMobile", request.getParameter("bindMobile"));
   parameterMap.put("dealId", request.getParameter("dealId"));
   parameterMap.put("bankDealId", request.getParameter("bankDealId"));
   parameterMap.put("dealTime", request.getParameter("dealTime"));
   parameterMap.put("payAmount", request.getParameter("payAmount"));
   parameterMap.put("fee", request.getParameter("fee"));
   parameterMap.put("ext1", request.getParameter("ext1"));
   parameterMap.put("ext2", request.getParameter("ext2"));
   parameterMap.put("payResult", request.getParameter("payResult"));
   parameterMap.put("errCode", request.getParameter("errCode"));
   parameterMap.put("signMsg", request.getParameter("signMsg"));
   if (generateSign(parameterMap).equals(request.getParameter("signMsg"))
       && pluginConfig.getAttribute("partner").equals(request.getParameter("merchantAcctId"))
       && sn.equals(request.getParameter("orderId"))
       && "10".equals(request.getParameter("payResult"))
       && payment
               .getAmount()
               .multiply(new BigDecimal(100))
               .compareTo(new BigDecimal(request.getParameter("payAmount")))
           == 0) {
     return true;
   }
   return false;
 }