这个问题之后怎么样啦?有什么结果或是准备怎么处理呢?求教
米大师支付 no session hint米大师支付 余额查询失败 no session hint
2018-08-23本来想通过参数zone_id区分充值,但是返回值是{"errcode":-1,"errmsg":"1001-0-0 请求参数错误(zoneid/pf)"} 郁闷中。。。
虚拟支付规范疑问关于虚拟支付规范,有几个疑问,还请官方解答一下,谢谢! 1、关于虚拟支付条款3.2条,请问如果我的小游戏和手机APP都申请了腾讯的官方支付渠道,数据可以互通吗? 3.2 为保障用户的资金安全和财产权益,你应向用户提供腾讯公司认可的购买支付方式,不得提供或以任何方式(包括但不限于线下充值、福利道具)变相提供与腾讯所签署的相关协议、腾讯公布的相关规则、规范等内容不一致的其它支付方式。 2、关于虚拟支付条款3.3条,是说IOS和Android数据不能互通吗?如果用户使用的IOS注册小游戏,再用Android系统登录小游戏,可以购买道具吗?购买的道具可以在IOS系统里面使用吗? 3.3小游戏暂不支持苹果iOS系统下小游戏内虚拟道具购买,不得通过任何形式实现不同手机操作系统中用户购买的小游戏虚拟道具互通。 3、因为虚拟支付违规有可能会被封号,那我们提交小游戏的时候,官方的审核内容包不包含虚拟支付?是不是只要审核通过了,就代表虚拟支付是合规的(因为怕上线后再被查出虚拟支付违规,导致封号。所以希望能在上线前就查出是否有违规情况)。 还请官方解答以下上述疑问,谢谢!
2018-07-03看上去没什么问题,一些细节,比如ts是秒,签名算的值和用例子里的计算值是否相同,sessionKey是否正确之类的
mp_sig签名报错结果 [代码]2018[代码][代码]-[代码][代码]7[代码][代码]-[代码][代码]2[代码] [代码]15[代码][代码]:[代码][代码]46[代码][代码]:[代码][代码]40.391[代码] [代码]INFO [main] buy|jsonObject={[代码][代码] [代码][代码]"errcode"[代码][代码]: [代码][代码]90009[代码][代码],[代码][代码] [代码][代码]"errmsg"[代码][代码]: [代码][代码]"mp_sig error hint: [eDd2eA05993139]"[代码][代码]}[代码]加密方法 [代码]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(stringBuilder.toString().getBytes());[代码][代码] [代码][代码]mp_sig = Base64.encodeBase64String(hash);[代码][代码] [代码][代码]} [代码][代码]catch[代码] [代码](Exception e) {[代码][代码] [代码][代码]Logs.get().error([代码][代码]"=========e="[代码] [代码]+ Lang.getStackTrace(e));[代码][代码] [代码][代码]}[代码][代码] [代码][代码]return[代码] [代码]mp_sig;[代码][代码] [代码][代码]}[代码]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/sandbox/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/sandbox/getbalance&method=POST&session_key="[代码][代码]+session_key);[代码]请求 [代码]LinkedHashMap linkedHashMap = [代码][代码]new[代码] [代码]LinkedHashMap();[代码][代码] [代码][代码]linkedHashMap.put([代码][代码]"openid"[代码][代码], openid);[代码][代码] [代码][代码]linkedHashMap.put([代码][代码]"appid"[代码][代码], appid);[代码][代码] [代码][代码]linkedHashMap.put([代码][代码]"offer_id"[代码][代码], offer_id);[代码][代码] [代码][代码]linkedHashMap.put([代码][代码]"ts"[代码][代码], ts);[代码][代码] [代码][代码]linkedHashMap.put([代码][代码]"zone_id"[代码][代码], zone_id);[代码][代码] [代码][代码]linkedHashMap.put([代码][代码]"pf"[代码][代码], pf);[代码][代码] [代码][代码]linkedHashMap.put([代码][代码]"sig"[代码][代码], sig);[代码][代码] [代码][代码]linkedHashMap.put([代码][代码]"mp_sig"[代码][代码], mp_sig);[代码][代码] [代码][代码]log.info([代码][代码]"buy|linkedHashMap="[代码] [代码]+ Json.toJson(linkedHashMap, JsonFormat.nice()));[代码][代码] [代码][代码]String url = [代码][代码]"https://api.weixin.qq.com/cgi-bin/midas/sandbox/getbalance?access_token="[代码] [代码]+ ACCESSTOKEN;[代码][代码] [代码][代码]Request req = Request.create(url, Request.METHOD.POST);[代码][代码] [代码][代码]req.getHeader().set([代码][代码]"Content-Type"[代码][代码], [代码][代码]"application/octet-stream;charset=UTF-8"[代码][代码]);[代码][代码] [代码][代码]String jsonObject = Sender.create(req.setParams(linkedHashMap).setData(Json.toJson(linkedHashMap,JsonFormat.compact())))[代码][代码] [代码][代码].setTimeout([代码][代码]10000[代码][代码]).send().getContent([代码][代码]"utf-8"[代码][代码]);[代码][代码] [代码][代码]log.info([代码][代码]"buy|jsonObject="[代码] [代码]+ Json.toJson(Json.fromJson(NutMap.[代码][代码]class[代码][代码], jsonObject), JsonFormat.nice()));[代码]
2018-07-03我的问题解决啦~ 是因为H5SDK返回的SessionId和wx的SessionKey不是同一个,并且H5SDK的网页的文档里没有说,要和对接H5SDK的单独要才会发另外一个获取SessionKey的接口文档。
小游戏虚拟支付沙箱测试报错麻烦问一下各位,沙箱测试时使用的openId和sessionKey必须是在测试地址下,登录验证过的吗? 因为现在测试支付时,一直在报这个问题:{"errcode":90009,"errmsg":"mp_sig error hint: [r0xSkA06148952]"},参数检查过多遍,没有问题,后来看到有人说session过期也会报这个问题,那这个session必须是测试地址(测试环境下需要绑定域名: 10.191.2.162)登录验证过过吗?正式地址( http://h5sdk.game.qq.com/api2/H5SDKApi.php )登录验证过不可以吗?求解 请求的日志: https://api.weixin.qq.com/cgi-bin/midas/sandbox/getbalance?access_token=11_so6FHbY1pbN9f5ez7pW-rQY-8-zCieftQh7UHhZm7pAVVBw60ozQhScoqa9GWkSeauNUcYpHqPhwXie1zyCfG18A3JwMWHPCA7N3uNo3XRSJ-txRXkHhO0MonyAYSYhAFARLR; Post params : {"appid":"XXX", "mp_sig":"a8e2903a01f3f97d1c82676061435ce0cafe9defd1e883e98676e94523bb2fb1", "offer_id":"XXX", "openid":"XXX", "pf":"android", "sig":"3fcd241795b4ef0b82bb29f1019fb9da0f06be06b0690abcbdbcaaf799decb46", "ts":1530415614, "zone_id":"1"} Data For SIG (Key = secret )>>>: appid=XXX& offer_id=XXX& openid=XXX& pf=android& ts=1530415614& zone_id=1& org_loc=/cgi-bin/midas/sandbox/getbalance& method=POST& secret=XXX Data For SIG (Key = session_key )>>>: access_token=11_so6FHbY1pbN9f5ez7pW-rQY-8-zCieftQh7UHhZm7pAVVBw60ozQhScoqa9GWkSeauNUcYpHqPhwXie1zyCfG18A3JwMWHPCA7N3uNo3XRSJ-txRXkHhO0MonyAYSYhAFARLR& appid=XXX& offer_id=XXX& openid=XXX& pf=android& sig=3fcd241795b4ef0b82bb29f1019fb9da0f06be06b0690abcbdbcaaf799decb46& ts=1530415614& zone_id=1& org_loc=/cgi-bin/midas/sandbox/getbalance& method=POST& session_key=XXX
2018-07-02