起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: ecoolper

X5和nutz集成专题贴

  [复制链接]

12

主题

53

帖子

424

积分

中级会员

Rank: 3Rank: 3

积分
424
QQ
发表于 2016-6-22 15:07:36 | 显示全部楼层
额,请教大神,https://github.com/crskyp/nutz_baas 这个是nutz集成的baas ? 用ant打的包?这个git中是有些baas的源码,4楼、5楼、6楼贴出的build.xml文件中classes.dir和output.dir还需要重新配置吗?在哪个目录下使用ant触发这个build呢?小弟不才,还请前辈多指教。谢谢!
回复 支持 反对

使用道具 举报

12

主题

53

帖子

424

积分

中级会员

Rank: 3Rank: 3

积分
424
QQ
发表于 2016-6-23 20:24:12 | 显示全部楼层
学会了! 大功告成!哈哈哈!感谢前辈代码分享!
回复 支持 反对

使用道具 举报

34

主题

148

帖子

492

积分

中级会员

Rank: 3Rank: 3

积分
492
QQ
发表于 2016-8-7 21:45:19 | 显示全部楼层
这篇帖子牛啊!mark①下!
回复 支持 反对

使用道具 举报

0

主题

8

帖子

290

积分

中级会员

Rank: 3Rank: 3

积分
290
QQ
发表于 2016-8-9 08:09:30 | 显示全部楼层
好文,MARK下
回复 支持 反对

使用道具 举报

34

主题

157

帖子

621

积分

高级会员

Rank: 4

积分
621
QQ
发表于 2016-8-9 16:09:29 | 显示全部楼层
收藏借鉴!!!
QQ1446856958
回复

使用道具 举报

997

主题

4326

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10694
QQ
 楼主| 发表于 2016-9-1 09:53:40 | 显示全部楼层
阿里支付notify验签代码片段
  1. @IocBean(create = "init")
  2. public class LogService {
  3.         private String ALIPAY_PUBLIC_KEY;

  4.         @Inject
  5.         private PropertiesProxy conf;
  6.         @Inject
  7.         private Dao dao;
  8.         private Log logger = Logs.get();

  9.         /**
  10.          * 1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号,2、判断total_amount是否确实为该订单的实际金额(
  11.          * 即商户订单创建时的金额),3、校验通知中的seller_id(或者seller_email)
  12.          * 是否为out_trade_no这笔单据的对应的操作方(
  13.          * 有的时候,一个商户可能有多个seller_id/seller_email),4、验证app_id是否为该商户本身
  14.          * 。上述1、2、3、4有任何一个验证不通过
  15.          * ,则表明本次通知是异常通知,务必忽略。在上述验证通过后商户必须根据支付宝不同类型的业务通知,正确的进行不同的业务处理
  16.          * ,并且过滤重复的通知结果数据。在支付宝的业务通知中
  17.          * ,只有交易通知状态为TRADE_SUCCESS或TRADE_FINISHED时,支付宝才会认定为买家付款成功。
  18.          *
  19.          * @param map
  20.          * @return
  21.          */
  22.         public boolean alipay(Map<String, String> params) {
  23.                 boolean signVerified = false;
  24.                 try {
  25.                         // 调用SDK验证签名
  26.                         signVerified = AlipaySignature.rsaCheckV1(params, ALIPAY_PUBLIC_KEY, "UTF-8");
  27.                 } catch (AlipayApiException e) {
  28.                         logger.error(e);
  29.                 }
  30.                 if (signVerified) {
  31.                         // 按照支付结果异步通知中的描述,对支付结果中的业务内容进行1\2\3\4二次校验,校验成功后在response中返回success,校验失败返回failure
  32.                         AlipayLog log = new AlipayLog();
  33.                         log.setId(R.UU16());
  34.                         log.setCreateDate(Times.now());
  35.                         log.setSellID(params.get("out_trade_no"));
  36.                         log.setContent(JSON.toJSONString(params));
  37.                         log.setTrade_status(params.get("trade_status"));
  38.                         dao.insert(log);
  39.                         return true;
  40.                 } else {
  41.                         // 验签失败则记录异常日志,并在response中返回failure.
  42.                         logger.info("alipay验签失败");
  43.                         return false;
  44.                 }
  45.         }

  46.         public void init() {
  47.                 ALIPAY_PUBLIC_KEY = conf.get("alipay.ALIPAY_PUBLIC_KEY");
  48.         }

  49. }
复制代码



孤舟蓑笠翁,独钓寒江雪。
X5牛刀交流民间第一群:30057529
提供有偿服务,联系WX:18332024
bex5疑难问题解决方案
回复 支持 反对

使用道具 举报

997

主题

4326

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10694
QQ
 楼主| 发表于 2016-9-1 23:41:52 | 显示全部楼层
微信支付验签代码片段
  1. @IocBean(create = "init")
  2. public class WxpayService {
  3.         private String key;
  4.         @Inject
  5.         private PropertiesProxy conf;
  6.        
  7.         private Log logger =Logs.get();
  8.        
  9.     /**
  10.      * 检验API返回的数据里面的签名是否合法,避免数据在传输的过程中被第三方篡改
  11.      * @param responseString API返回的XML数据字符串
  12.      * @return API签名是否合法
  13.      */
  14.     public boolean checkIsSignValidFromResponseString(String responseString) {
  15.         Map<String,Object> map = Xmls.xmlToMap(responseString);

  16.         String signFromAPIResponse = map.get("sign").toString();
  17.         if(Strings.isEmpty(signFromAPIResponse)){
  18.             logger.info("API返回的数据签名数据不存在,有可能被第三方篡改!!!");
  19.             return false;
  20.         }
  21.         //清掉返回数据对象里面的Sign数据(不能把这个数据也加进去进行签名),然后用签名算法进行签名
  22.         map.put("sign","");
  23.         //将API返回的数据根据用签名算法进行计算新的签名,用来跟API返回的签名进行比较
  24.         String signForAPIResponse = this.getSign(map);

  25.         if(!signForAPIResponse.equals(signFromAPIResponse)){
  26.             //签名验不过,表示这个API返回的数据有可能已经被篡改了
  27.             logger.info("API返回的数据签名验证不通过,有可能被第三方篡改!!!");
  28.             return false;
  29.         }
  30.         return true;
  31.     }
  32.        
  33.         /**
  34.          * 返回签名信息
  35.          * @param map
  36.          * @return
  37.          */
  38.         public String getSign(Map<String, Object> map) {
  39.                 ArrayList<String> list = new ArrayList<String>();
  40.                 for (Map.Entry<String, Object> entry : map.entrySet()) {
  41.                         if (Strings.isNotBlank(entry.getValue().toString())) {
  42.                                 list.add(entry.getKey() + "=" + entry.getValue() + "&");
  43.                         }
  44.                 }
  45.                 int size = list.size();
  46.                 String[] arrayToSort = list.toArray(new String[size]);
  47.                 Arrays.sort(arrayToSort, String.CASE_INSENSITIVE_ORDER);
  48.                 StringBuilder sb = new StringBuilder();
  49.                 for (int i = 0; i < size; i++) {
  50.                         sb.append(arrayToSort[i]);
  51.                 }
  52.                 String result = sb.toString();
  53.                 result += "key=" + key;
  54.                 Lang.md5(result).toUpperCase();
  55.                 return result;
  56.         }

  57.         public void init() {
  58.                 key =conf.get("wxpay.key");
  59.         }
  60. }
复制代码



孤舟蓑笠翁,独钓寒江雪。
X5牛刀交流民间第一群:30057529
提供有偿服务,联系WX:18332024
bex5疑难问题解决方案
回复 支持 反对

使用道具 举报

997

主题

4326

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10694
QQ
 楼主| 发表于 2016-9-16 15:35:45 | 显示全部楼层
集成daocache
  1. var ioc = {
  2.         dataSource : {
  3.                 type : "com.alibaba.druid.pool.DruidDataSource",
  4.                 events : {
  5.                         create : "init",
  6.                         depose : 'close'
  7.                 },
  8.                 fields : {
  9.                         url : "jdbc:mysql://127.0.0.1:3306/x5",
  10.                         username : "root",
  11.                         password : "x5",
  12.                         testWhileIdle : true,
  13.                         validationQuery : "select 1",
  14.                         maxActive : 100
  15.                 }
  16.         },
  17.         dao : {
  18.                 type : "org.nutz.dao.impl.NutDao",
  19.                 args : [ {
  20.                         refer : "dataSource"
  21.                 } ],
  22.                 fields : {
  23.                         executor : {
  24.                                 refer : "cacheExecutor"
  25.                         }
  26.                 }
  27.         },
  28.         cacheProvider : {
  29.                 type : "org.nutz.plugins.cache.dao.impl.provider.MemoryDaoCacheProvider",
  30.                 fields : {
  31.                         cacheSize : 10000
  32.                 },
  33.                 events : {
  34.                         create : "init"
  35.                 }
  36.         },
  37.         cacheExecutor : {
  38.                 type : "org.nutz.plugins.cache.dao.CachedNutDaoExecutor",
  39.                 fields : {
  40.                         cacheProvider : {
  41.                                 refer : "cacheProvider"
  42.                         },
  43.                         cachedTableNames : [ "baseset","Token" ],
  44.                 }
  45.         }
  46. };
复制代码



孤舟蓑笠翁,独钓寒江雪。
X5牛刀交流民间第一群:30057529
提供有偿服务,联系WX:18332024
bex5疑难问题解决方案
回复 支持 反对

使用道具 举报

94

主题

403

帖子

683

积分

高级会员

Rank: 4

积分
683
QQ
发表于 2016-9-16 21:01:27 | 显示全部楼层
不懂java,还是来膜拜了
欢迎各位加群讨论:http://bbs.wex5.com/forum.php?mod=viewthread&tid=105046&page=1&extra=#pid165306780
回复 支持 反对

使用道具 举报

718

主题

2841

帖子

5657

积分

论坛元老

Rank: 8Rank: 8

积分
5657
QQ
发表于 2017-6-13 15:55:20 | 显示全部楼层
WEX5初学者,欢迎初学者交流
QQ:597558229
tel:15857336322
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-3-29 09:28 , Processed in 0.069745 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表