字符串的顺序检查过了,是正确的
mp_sig提示语
2018 - 7 - 2 10 : 45 : 13.338 INFO [main] buy|jsonObject={ "errcode" : 90009 , "errmsg" : "mp_sig error hint: [bjyzOA0513shc1]" } |
mp_sig提示错误,是不是说明,sig签名是正确的?
sessionKey有过期时间吗?
签名代码如下
private static String getSign(StringBuilder stringBuilder, String session_key) { String mp_sig = null ; try { String temp = SnsSigCheck.encodeUrl(stringBuilder.toString()); Mac mac = Mac.getInstance( "HmacSHA256" ); SecretKeySpec secretKey = new SecretKeySpec(session_key.getBytes(), "HmacSHA256" ); mac.init(secretKey); byte [] hash = mac.doFinal(temp.getBytes()); mp_sig = Base64.encodeBase64String(hash); } catch (Exception e) { Logs.get().error( "=========e=" + Lang.getStackTrace(e)); } return mp_sig; } |
请问要怎么查这个问题呢,顺序是完全按照文档中的顺序的,其他数据只有sessionKey不确定,sessionKey指的是用户的登陆返回的sessionKey吧,这个有过期时间吗,还是怎样的?文档中也没有说明,只是提示这个错误,能不能帮我检查一下sig签名是不是对的,否则不知道那个参数有问题,或者不知道问题出现在哪里,要不提供一下java的封装方法也行
sig签名字符串
StringBuilder stringBuilder = new StringBuilder( "appid=" ); stringBuilder.append(appid); stringBuilder.append( "&offer_id=" ); stringBuilder.append(offer_id); stringBuilder.append( "&openid=" ); stringBuilder.append(openid); stringBuilder.append( "&pf=android&ts=" ); stringBuilder.append(ts); stringBuilder.append( "&zone_id=" ); stringBuilder.append( 1 ); stringBuilder.append( "&org_loc=/cgi-bin/midas/getbalance&method=POST&secret=" +secret); String sig = getSign(stringBuilder, secret); |
mp_sig签名字符串
stringBuilder = new StringBuilder( "" ); stringBuilder.append( "access_token=" ); stringBuilder.append(getAccessToken()); stringBuilder.append( "&appid=" ); stringBuilder.append(appid); stringBuilder.append( "&offer_id=" ); stringBuilder.append(offer_id); stringBuilder.append( "&openid=" ); stringBuilder.append(openid); stringBuilder.append( "&pf=android" ); stringBuilder.append( "&sig=" ); stringBuilder.append(sig); stringBuilder.append( "&ts=" ); stringBuilder.append(ts); stringBuilder.append( "&zone_id=" ); stringBuilder.append( 1 ); stringBuilder.append( "&org_loc=/cgi-bin/midas/getbalance&method=POST&session_key=" +session_key); String mp_sig = getSign(stringBuilder, session_key); |
这样还是提示90009的错误
你好。不需要重复发帖的,你的反馈我们已经收到,之前也有回复,有结果会在已回复的帖子下跟进哈