微信登陆获取不到code

我在第三方应用使用微信登陆功能,但是回调中
SendAuth.Resp 里面没有code这个属性,我怎么获取code呢

5个回答

新的jar吧中的SendAuth.Resp找不到code, 其实code已经改名:

String code = resp.token;

 public void onResp(BaseResp resp) {

switch (resp.errCode) {

case BaseResp.ErrCode.ERR_OK:

String code = ((SendAuth.Resp) resp).code; //即为所需的code

break;

http://songyuanlin1101.lofter.com/tag/%E6%8E%88%E6%9D%83sendauth.resp

u012833340
_冰子 可是调不出code属性 有token、errStr等属性 就是没有code
大约 5 年之前 回复
u012833340
_冰子 @Override public void onResp(BaseResp resp) { switch (resp.errCode) { case BaseResp.ErrCode.ERR_OK: String code = ((SendAuth.Resp) resp).code; //即为所需的code break; } }
大约 5 年之前 回复

解决了 是因为jar包不是最新的

我从官网下载的最新的,还是没有code

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
shopnc微信支付获取不了code。
shopnc微信支付获取不到code。。。怎么办?JS_API_CALL_URL到底应该怎么写。。。。
微信菜单view跳转获取code问题
想要跳转的地址REDIRECT如:http://a.com/b/?c.d 构建view地址(服务号):https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT&response_type=code&scope=snsapi_base&state=1#wechat_redirect 问题是,通过微信可以打开这个跳转的页面,但通过复制页面地址还是显示构建的view地址,说明并没有跳转回传code,而我想要获取的地址是:htt://a.com/b/?c.d&code=xxxxxxx&state=1 如果传这种地址就可以获取到code:htt://a.com/b,即不带参数不带斜线的情况,有人遇到过这个问题么? ===================================================================== 问题已解决,通过微信直接复制地址还是显示带weixin的url,实际上是已经跳转并获取code了的。
Android 微信授权登录获取code的问题
已经根据微信的接入方式接入了,Manifest文件,WXEntryActivity也放对了位置,代码都是根据SDK文档做的,而且已经跳到微信授权页面,可是点了确认授权之后,并没有回调onResq方法(打的log没有显示出来),所以拿不到code。求各路大神帮忙,最后给出成功案例啦
java微信支付,获取openid的方法不执行,导致获取不到openid,是为什么???
@RequestMapping("/getCode.do") // 获取微信code public void getCode(HttpServletRequest request, HttpServletResponse response) throws IOException { System.out.println("in getCode--------------------------"); String myurl = PayConstant.BASEURL; String url = "https://open.weixin.qq.com/connect/oauth2/authorize?" + "appid=" + appID + "&redirect_uri="+ Uecode.encodeURIComponent(myurl + "autoTest/getOpenId.do")+ "&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect"; response.sendRedirect(url);; } getOpenId.do不执行导致获取不到openid,这是为什么???
微信进行网页授权时,拿到了code,怎么获取不到openid?(如图)
![![![![图片说明](https://img-ask.csdn.net/upload/201510/24/1445661934_667923.png)图片说明](https://img-ask.csdn.net/upload/201510/24/1445661926_318804.png)图片说明](https://img-ask.csdn.net/upload/201510/24/1445661917_190682.png)图片说明](https://img-ask.csdn.net/upload/201510/24/1445661900_145746.png) 求大神指教,看看问题出现在什么地方,找了好久不知道原因所在
微信网页授权,access_token已经获取到,却只能打印输出,无法赋值给其他变量?
![图片说明](https://img-ask.csdn.net/upload/201807/08/1531027956_207723.png) 微信授权获取个人信息时,有人遇到过这种情况吗? 接口返回$res,里面的数据是正确的, 但却走到else分支,输出了‘access_token’? 如果不判断,直接 $access_token=$res['access_token'];就会报,undefined index: access_token =========================================== 补充下问题的情况,经过研究,发现,如果赋值: ``` $access_token=$res['access_token']; ``` 微信服务器会返回:code been used, 如果直接输出: ``` return $res['access_token']; ``` 则access_token可以被正确打印出来?
开发过微信公众号的大神进,微信支付遇到点问题,求解决。
我在跳转商品支付页面的时候,获取到了微信支付所需的一些参数,然后到了微信页面之后只要进行刷新就会报错,我复制了一下当前url,是微信的地址,刷新的时候进的还是我的后台,这个时候已经存在code了,但是拿不到openid,导致报错,大神们!求支援!
微信支付,怎么获取prepay_id?
Java写的,获取到的prepay_id 一直为空,不知道该怎么获取,这与设置API秘钥有关吗? public static String getPayNo(String url, String xmlParam) { DefaultHttpClient client = new DefaultHttpClient(); client.getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true); HttpPost httpost = HttpClientConnectionManager.getPostMethod(url); String prepay_id = ""; try { httpost.setEntity(new StringEntity(xmlParam, "UTF-8")); HttpResponse response = httpclient.execute(httpost); String jsonStr = EntityUtils .toString(response.getEntity(), "UTF-8"); System.out.println("--jsonStr--"+jsonStr); Map<String, Object> dataMap = new HashMap<String, Object>(); if (jsonStr.indexOf("FAIL") != -1) { return prepay_id; } Map map = doXMLParse(jsonStr); String return_code = (String) map.get("return_code"); prepay_id = (String) map.get("prepay_id"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return prepay_id; }
微信支付[签名错误]-微信,PHP,XMLPOST,
问个问题:[关于微信支付] 背景:现有一认证微信服务号,需要在自定义菜单跳转的网页中实现商城支付功能.商城使用PHP,MYSQL,实现 现在在做微信支付功能遇到问题. 1.目前在做微信公众号支付>>统一下单API. [统一下单APIlink:http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=9_1]. 需要接上API,并获取SUCCESS状态下的数据[主要是想获取>预支付交易会话标识 (prepay_id) ] 2.现在问题:在向API发送POST请求后,得到的结果是FAILT. 问题提示:[返回的原数据] <xml><return_code><![CDATA[FAIL]]></return_code> <return_msg><![CDATA[签名错误]]></return_msg> </xml> 3.我做过的事情: a.使用"在线签名验证工具"验证自己生成的签名,我生成的签名与该工具得出的结果是一样的. ["在线签名验证工具"url:http://mch.weixin.qq.com/wiki/tools/signverify/] b.我是POST XML字符串过去的.与"在线签名验证工具"中提出的结果是一样的. 4.纠结的地方:微信公众平台后台设置,签名,POST URL,sign,甚至是XML数据,我都检查过了,但API返回结果竟然还是 签名错误 . 我唯一想到的问题可能就是,"在线签名验证工具"不靠谱.但我找不到其它的方式来验证我的签名是否正确. 有哪位网友做过微信公众号支付的朋友帮忙查看一下吗?纠结了好久了.
微信公众号支付appid and openid not match。
appid和openid不匹配,网上搜的更多说是,有多个公众号,然后授权的公众号和支付的公众号不是同一个 ,但是我这边开发只有一个公众号,可笑的是,微信公众号授权后得到openid去请求支付,会出现appid and openid not match问题,而使用原生app三方登录微信得到openid请求支付没有问题,在微信开发平台中又说没有三方登录微信的接口,网上说的基本都是网页授权的两个接口 (1)https://open.weixin.qq.com/connect/oauth2/authorize?appid=*******&redirect_uri=www.baidu.com&response_type=code&scope=snsapi_base&state=1#wechat_redirect 页面就会跳转到 www.baidu.com?code=***. 就可以看到code了。 (4) 通过code 来获取openID https://api.weixin.qq.com/sns/oauth2/access_token?appid=***&secret=***&code=***&grant_type=authorization_code 现在问题是我只有一个公众号(商户号也绑定了这个公众号),appid and openid not match怎么破解
ssh开发微信公众号java获取微信用户信息代码有误,
这是action代码 ``` package com.tyol.ljtg.index.action; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ConnectException; import java.net.URL; import java.util.List; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; import javax.servlet.http.HttpServletRequest; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.tyol.ljtg.pojo.SNSUserInfo; import com.tyol.ljtg.pojo.WeixinOauth2Token; import com.tyol.ljtg.products.service.ProductService; import com.tyol.ljtg.products.vo.Products; import com.tyol.ljtg.users.service.UserService; import com.tyol.ljtg.users.vo.Users; import com.tyol.ljtg.utils.MyX509TrustManager; /** * 首页登录的action * * * */ public class IndexAction extends ActionSupport implements ModelDriven<Users>{ private static final long serialVersionUID = 1L; private String code ; private String state ; public void setCode(String code) { this.code = code; } public void setState(String state) { this.state = state; } private Users users = new Users() ; public void setUsers(Users users) { this.users = users; } //注入UserService private UserService userService ; public void setUserService(UserService userService) { this.userService = userService; } //注入ProductService private ProductService productService ; public void setProductService(ProductService productService) { this.productService = productService; } public String execute(){ //用户同意授权后,能获取到code // 用户同意授权 if (!"authdeny".equals(code)) { System.out.println(221); // 获取网页授权access_token WeixinOauth2Token weixinOauth2Token = getOauth2AccessToken("wx01fe15e40c010d99", "b781d53947b374324ae5a68642b79a57", code); // 网页授权接口访问凭证 String accessToken = weixinOauth2Token.getAccessToken(); // 用户标识 String openId = weixinOauth2Token.getOpenId(); // 获取用户信息 SNSUserInfo snsUserInfo = getSNSUserInfo(accessToken, openId); //设置微信用户信息 users.setUid(snsUserInfo.getOpenId()); users.setUsername(snsUserInfo.getNickname()); users.setAddress(snsUserInfo.getCity()); users.setHeadImgUrl(snsUserInfo.getHeadImgUrl()); //保存用户 userService.addUsers(users); List<Products> products = productService.findAllProducts(); ServletActionContext.getRequest().getSession().setAttribute("products", products); ServletActionContext.getRequest().getSession().setAttribute("users", users); return "indexOne"; } users = userService.findByUid("111"); List<Products> products = productService.findAllProducts(); ServletActionContext.getRequest().getSession().setAttribute("products", products); ServletActionContext.getRequest().getSession().setAttribute("users", users); return "index"; } /** * 获取网页授权凭证 * * @param appId 公众账号的唯一标识 * @param appSecret 公众账号的密钥 * @param code * @return WeixinAouth2Token */ public static WeixinOauth2Token getOauth2AccessToken(String appId, String appSecret, String code) { WeixinOauth2Token wat = null; // 拼接请求地址 String requestUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code"; requestUrl = requestUrl.replace("APPID", "wx01fe15e40c010d99"); requestUrl = requestUrl.replace("SECRET", "b781d53947b374324ae5a68642b79a57"); requestUrl = requestUrl.replace("CODE", code); // 获取网页授权凭证 JSONObject jsonObject = httpsRequest(requestUrl, "GET", null); if (null != jsonObject) { try { wat = new WeixinOauth2Token(); wat.setAccessToken(jsonObject.getString("access_token")); wat.setExpiresIn(jsonObject.getInt("expires_in")); wat.setRefreshToken(jsonObject.getString("refresh_token")); wat.setOpenId(jsonObject.getString("openid")); wat.setScope(jsonObject.getString("scope")); } catch (Exception e) { wat = null; int errorCode = jsonObject.getInt("errcode"); String errorMsg = jsonObject.getString("errmsg"); System.out.println(111); } } return wat; } /** * 发送https请求 * * @param requestUrl 请求地址 * @param requestMethod 请求方式(GET、POST) * @param outputStr 提交的数据 * @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值) */ public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr) { JSONObject jsonObject = null; try { // 创建SSLContext对象,并使用我们指定的信任管理器初始化 TrustManager[] tm = { new MyX509TrustManager() }; SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE"); sslContext.init(null, tm, new java.security.SecureRandom()); // 从上述SSLContext对象中得到SSLSocketFactory对象 SSLSocketFactory ssf = sslContext.getSocketFactory(); URL url = new URL(requestUrl); HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); conn.setSSLSocketFactory(ssf); conn.setDoOutput(true); conn.setDoInput(true); conn.setUseCaches(false); // 设置请求方式(GET/POST) conn.setRequestMethod(requestMethod); // 当outputStr不为null时向输出流写数据 if (null != outputStr) { OutputStream outputStream = conn.getOutputStream(); // 注意编码格式 outputStream.write(outputStr.getBytes("UTF-8")); outputStream.close(); } // 从输入流读取返回内容 InputStream inputStream = conn.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String str = null; StringBuffer buffer = new StringBuffer(); while ((str = bufferedReader.readLine()) != null) { buffer.append(str); } // 释放资源 bufferedReader.close(); inputStreamReader.close(); inputStream.close(); inputStream = null; conn.disconnect(); jsonObject = JSONObject.fromObject(buffer.toString()); } catch (ConnectException ce) { ce.addSuppressed(ce); } catch (Exception e) { e.addSuppressed(e); } return jsonObject; } /** * 通过网页授权获取用户信息 * * @param accessToken 网页授权接口调用凭证 * @param openId 用户标识 * @return SNSUserInfo */ @SuppressWarnings( { "deprecation", "unchecked" }) public static SNSUserInfo getSNSUserInfo(String accessToken, String openId) { SNSUserInfo snsUserInfo = null; // 拼接请求地址 String requestUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID"; requestUrl = requestUrl.replace("ACCESS_TOKEN", accessToken).replace("OPENID", "wx01fe15e40c010d99"); // 通过网页授权获取用户信息 JSONObject jsonObject = httpsRequest(requestUrl, "GET", null); if (null != jsonObject) { try { snsUserInfo = new SNSUserInfo(); // 用户的标识 snsUserInfo.setOpenId(jsonObject.getString("openid")); // 昵称 snsUserInfo.setNickname(jsonObject.getString("nickname")); // 性别(1是男性,2是女性,0是未知) snsUserInfo.setSex(jsonObject.getInt("sex")); // 用户所在国家 snsUserInfo.setCountry(jsonObject.getString("country")); // 用户所在省份 snsUserInfo.setProvince(jsonObject.getString("province")); // 用户所在城市 snsUserInfo.setCity(jsonObject.getString("city")); // 用户头像 snsUserInfo.setHeadImgUrl(jsonObject.getString("headimgurl")); // 用户特权信息 snsUserInfo.setPrivilegeList(JSONArray.toList(jsonObject.getJSONArray("privilege"), List.class)); } catch (Exception e) { snsUserInfo = null; int errorCode = jsonObject.getInt("errcode"); String errorMsg = jsonObject.getString("errmsg"); System.out.println(111); } } return snsUserInfo; } @Override public Users getModel() { // TODO Auto-generated method stub return users; } } ```
微信小程序 在onLoad中启用其他方法(设置缓存)并取出缓存中数据 取不到值 求解决
//引入常量文件 let constant = require('../../js/constant.js'); //引入腾讯地图 let QQMapWX = require('../../js/qqmap-wx-jssdk.js'); //公共方法文件 let avery = require('../../js/avery.js'); //腾讯地图全局API let qqmapsdk; //获取应用实例 const app = getApp(); Page({ data: { imgUrls: [ 'https://images.unsplash.com/photo-1551334787-21e6bd3ab135?w=640', 'https://images.unsplash.com/photo-1551214012-84f95e060dee?w=640', 'https://images.unsplash.com/photo-1551446591-142875a901a1?w=640' ], indicatorDots: false, autoplay: false, interval: 5000, duration: 1000, hasUserInfo: false, latitude: null, //纬度 longitude: null, //经度 addressComponent: { nation: "", province: "", city: "", district: "", street: "", streetNumber: "", cityCcode: "" } }, onLoad: function() { wx.clearStorage(); //校验用户是否打开维护权限 avery.checkPositionAuthorization(); //初始化调用是否获取用户位置权限信息 this.getLocation(this); }, //获取位置名称 getLocation(that) { wx.getLocation({ type: 'wgs84', //wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标 altitude: true, //传入 true 会返回高度信息 success: function (res) { const latitude = res.latitude const longitude = res.longitude that.setData({ latitude: latitude, longitude: longitude }), // 实例化API核心类 qqmapsdk = new QQMapWX({ key: constant.mapKey }); //获取位置详细信息 qqmapsdk.reverseGeocoder({ location: { latitude: latitude, longitude: longitude }, success: function (location) { let result = location.result; //获取地址信息 let addressComponent = result.address_component; //获取城市Code let cityCode = result.ad_info.city_code; var cityInfo = { nation: addressComponent.nation, province: addressComponent.province, city: addressComponent.city, district: addressComponent.district, street: addressComponent.street, streetNumber: addressComponent.street_number, cityCcode: addressComponent.cityCcode, } //给默认值初始化 that.setData({ addressComponent: cityInfo }); //将城市信息放入缓存经度纬度 wx.setStorageSync('cityInfo', cityInfo); wx.setStorageSync('latitude', latitude); wx.setStorageSync('longitude', longitude); 这个方法设置缓存 avery.getWeatherNow('北京市', cityCode,'342','423423'); ///////这这里取不到 let sss = wx.getStorageSync("weatherNow"); console.log(JSON.stringify(sss)); **//并且这个打印会在下面的方法前面** }, fial(res) { //失败应该弹出模态框 wx.showModal({ title: '提示', content: '获取位置信息失败', success(res) { if (res.confirm) { console.log('用户点击确定') } else if (res.cancel) { console.log('用户点击取消') } } }); } }); } }); }, }) /////这是设置缓存的方法 function getWeatherNow( city,cityCode ,latitude, longitude){ wx.request({ url: constant.currentWeatherByCityId + cityCode, success:function(data){ wx.setStorageSync('weatherNow', data.data); console.log(JSON.stringify(data.data)) } }) };
请教关注企业公众号以后自动登录网站用户中心问题
1,现在用户只要关注企业公众号以后,自动生成随机用户名密码。并且可以通过底部菜单链接进入用户中心。 2,现在的问题是,过了几个小时以后,再从微信公众平台底部菜单点击用户中心,这个时候提示需要登录,页面自动跳转到登录界面(原则上还是自动登录才对) 3,当我关闭网页,到微信公众平台再次点击用户中心,又可以自动登录了 4,排查,第一次点击用户中心,发现可以获取code。 但是获取不到openid。返回错误提示errcode=>40029;errmsg=>invalid code, hints: [ req_id: ghWvqa0812ns71 ] 5当我第二次在微信公众平台点击用户中心登录的时候,就可以正常获取openid,也可以正常登录 总结:微信配置是没有问题的,因为可以正常登录,问题是过段时间就不行了,或者退出微信,然后重新登录微信,打开公众平台就无法登录了,必须关闭打开的网页,重新点击公众平台的用户中心才可以登录 个人认为:是不是退出微信或者时间长了以后 code失效? 微信公众平台 ![微信公众平台](https://img-ask.csdn.net/upload/201605/20/1463713515_98075.jpg) 在线等回答,为什么过一段时间点击链接 请求获取的code是无效的呢? 拜托了各位大神
HTML5:用户如选择拒绝共享地理位置,那么下次再次登录进入时就不会再询问
使用html5做了个应用,同时适应APP,微信和wap访问,其中有用到获取地理位置的相关内容,地理位置获取没有什么问题,现在问题是当获取地理位置询问用户时如果选择拒绝共享地理位置,那么下次再次登录进入时就不会再询问,导致如果拒绝了一次以后再也获取不到地理位置,不知道有什么方法可以解决? 获取地理位置代码如下: ``` //初始化时调用获取地理位置方法 $(function(){ startgps(); }); //获取地理位置方法 function startgps() { //判断是否支持 if (navigator.geolocation) { navigator.geolocation.watchPosition(showgps, // navigator.geolocation.getCurrentPosition(showgps,//成功回调函数 function(error) //失败回调函数 { alert("获取位置失败,开始执行失败回调函数"); getPositionError(error); //showgps(); // showAlert("获取地理位置出错"); }, {enableHighAcuracy: true, timeout:1000,maximumAge: 0}); // 这里设置超时为1000毫秒,即1秒 } else { showAlert("navigator.geolocation获取结果为false"); //showgps(); } } function showgps(position) { alert("获取位置成功,开始执行成功回调函数"); if (position) { var latitude = position.coords.latitude; var longitude = position.coords.longitude; document.getElementsByName("lat")[0].value = latitude; document.getElementsByName("lng")[0].value = longitude; showAlert("获取到的地理位置为latitude:"+latitude+"---longitude="+longitude); } else{ showAlert("位置获取不到,请确认您打开了定位服务!"); var latitude = position.coords.latitude; var longitude = position.coords.longitude; document.getElementsByName("lat")[0].value = latitude; document.getElementsByName("lng")[0].value = longitude; showAlert("定位服务没有打开时获取到的地理位置latitude:"+latitude+"---longitude="+longitude); } } function getPositionError(error){ switch(error.code){ case error.TIMEOUT: alert("连接超时,请重试"); break; case error.PERMISSION_DENIED: alert("您拒绝了使用位置共享服务,查询已取消"); break; case error.POSITION_UNAVAILABLE: alert("亲爱的火星网友,非常抱歉,我们暂时无法为您所在的星球提供位置服务"); break; } } ```
微信公众号如何发红包?(目前已有代码,可是碰到最后一部扣钱的问题)
首先本人也是最近刚做,参考了很多 先放上原贴的地址 http://snmoney.blog.163.com/blog/static/44005820155810541329/ 业务需求是这样的 先到第三方平台填写一个问卷调查,然后填完后调到点击红包的页面,然后去拿红包 网上有说可以通过第三方平台去做这个事情,我不知道有没有这个可能性? 现在回到正题,如今已经获取了openid,就像原贴一样,输出了红包发送成功 首先第一个问题,是不是意思就是如果代码成功了,应该微信那边自动会发一个这样子的红包过来? 第二,回到这个代码,下面是最后输出的send()方法中的一部分 curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_POSTFIELDS,$xml); var_dump($ch); $data = curl_exec($ch); var_dump($data); if($data){ curl_close($ch); $rsxml = simplexml_load_string($data); var_dump($rsxml); $this->error = curl_errno($ch); echo 111; var_dump($this->error); $this->error = $rsxml->return_msg; echo 222; var_dump($this->error); curl_close($ch); if($rsxml->return_code == 'SUCCESS' ){ echo 333; return true; }else{ echo 444; $this->error = $rsxml->return_msg; return false; } }else{ $this->error = curl_errno($ch); curl_close($ch); return false; } 目前的问题就是$data为空,$rsxml只有商户号和拿到的红包金额,其他都为空,但是却走到了echo 333这里 求教 好人一生平安
jdbc执行SqlServer存储过程时 成功后返回结果集,执行失败后 return值的问题
最近遇到一个存储过程,由于接口不是很规范,由于执行成功和执行失败返回的结果不一致,求大神帮忙解答,只有这点c币了,全部奉上,贴代码; ``` CREATE PROCEDURE [dbo].[proc_phone_gh] ( @p_id char(12), --patient_id 患者ID @unit_sn varchar(7), --office_id 挂号科室编号 @request_date varchar(10), --czdate 挂号日期 @ampm char(1), --ampm 上/下午 @clinic_type varchar(2), --card_code 号源种类 @doctor_sn varchar(5), --doctor_id 医生编号,普通号可为空 @sequence smallint, --gh_sequence 就诊顺序号,手机app自行计算 @app_order varchar(30), --app_order 预约码 @app_type char(1) --cretificate_type 方式:1手机APP/2微信 ) AS declare @msg varchar(50), @record_sn int, @group_sn varchar(7), @mz_dept_no varchar(2), @opera varchar(5), @times int, @req_type varchar(2) , @gh_sequence smallint , @ledger_sn varchar(20) set @group_sn='' set @req_type='15' --挂号途径 13 手机app set @mz_dept_no='1' --是否是分院 begin transaction update mz_patient_mi set max_times= max_times+1 where patient_id=@p_id if @@error<>0 begin set @msg = '更新mz_patient_mi表失败' select @msg return_msg rollback transaction return 0 end set @times=(select max_times from mz_patient_mi where patient_id=@p_id) set @ledger_sn =(select max_ledger_sn from mz_patient_mi where patient_id=@p_id) begin select top 1 @record_sn =record_sn ,@gh_sequence=gh_sequence from gh_schedule where 1=1 and request_date=@request_date and ampm=@ampm and unit_sn=@unit_sn and isnull(doctor_sn,'') = @doctor_sn and clinic_type like @clinic_type and charindex('15',visit_req_type)>0 --挂号方式 and status_flag='0' order by abs(gh_sequence) insert into gh_appointment_external (app_order,name,sex,social_no,phone,gh_sequence,reg_time,request_date,visit_dept,doctor_code,ampm,clinic_type,req_type ,status,patient_id,times,phone2, source_type,import_date,import_opera,gh_record_sn,certificate_type) select @app_order,name,sex,social_no,home_tel as phone,@gh_sequence as gh_sequence,convert(varchar(20),getdate(),120) as reg_time,@request_date ,@unit_sn,case when isnull(@doctor_sn,'')='' then '-1' else @doctor_sn end as doctor_code,@ampm,@clinic_type,@req_type as req_type,'0' as status ,@p_id,@times,'00000000','手机App预约挂号' as source_type,convert(varchar(20),getdate(),120) as import_date,'' as import_opera,@record_sn as gh_record_sn,case when @app_type='1' then '2' when @app_type='2' then '3' end from view_mz_patient_mi where patient_id=@p_id if @@error<>0 or @@ROWCOUNT<1 begin set @msg='插入预约登记表gh_appointment_register失败!' select @msg return_msg rollback transaction return 0 end update gh_schedule set status_flag='1',req_type=@req_type where record_sn=@record_sn and gh_sequence=@gh_sequence and request_date=CONVERT(varchar(20), @request_date, 120 ) and unit_sn=@unit_sn and isnull(group_sn,'')=@group_sn and clinic_type =@clinic_type and isnull(ampm,'')=@ampm and charindex(@req_type,visit_req_type)>0 and mz_dept_no=@mz_dept_no if @@error<>0 or @@ROWCOUNT<1 begin set @msg = '更新gh_schedule表失败' select @msg return_msg rollback transaction return 0 end commit transaction end select isnull((select name from gh_zd_appointment_place where code =convert(varchar(7),@unit_sn)),(select comment from zd_unit_code where code =convert(varchar(7),@unit_sn))) as address,substring(convert(varchar,@request_date,120),1,11) +' '+ convert(varchar (20),dz_time1)+'至'+convert(varchar(20),dz_time2) as mtime , @gh_sequence xh ,@times times,@ledger_sn checkOuts from --gh_zd_appointment_place a, encounter_time h,gh_zd_clinic_type_query b where b.zj_flag *=h.charge_type and h.end_no>=@gh_sequence and h.begin_no<=@gh_sequence and h.ampm=convert(varchar(10),@ampm) and b.code=convert(char(10),@clinic_type) ``` 1.预约成功时返回最下面的一个结果集 ``` select isnull((select name from gh_zd_appointment_place where code =convert(varchar(7),@unit_sn)),(select comment from zd_unit_code where code =convert(varchar(7),@unit_sn))) as address,substring(convert(varchar,@request_date,120),1,11) +' '+ convert(varchar (20),dz_time1)+'至'+convert(varchar(20),dz_time2) as mtime , @gh_sequence xh ,@times times,@ledger_sn checkOuts from --gh_zd_appointment_place a, encounter_time h,gh_zd_clinic_type_query b where b.zj_flag *=h.charge_type and h.end_no>=@gh_sequence and h.begin_no<=@gh_sequence and h.ampm=convert(varchar(10),@ampm) and b.code=convert(char(10),@clinic_type) ``` 2.执行失败时,返回return值,和return_msg信息; 3.jdbc代码如下: String storedProc = "{call proc_phone_gh(?,?,?,?,?,?,?,?,?)}"; CallableStatement cs = con.prepareCall(storedProc); cs.setString(1, (String)proParams[0]); cs.setString(2, (String)proParams[1]); cs.setString(3, (String)proParams[2]); cs.setString(4, (String)proParams[3]); cs.setString(5, (String)proParams[4]); cs.setString(6, (String)proParams[5]); cs.setInt(7, (Integer)proParams[6]); cs.setString(8, (String)proParams[7]); cs.setString(9, (String)proParams[8]); ResultSet rs = cs.executeQuery(); ``` 执行到ResultSet rs = cs.executeQuery();时,报异常:该语句没有结果集,该语句在数据库里可以执行也可以得到结果集。 请问各位大神们,如何获取到成功的结果集 和失败时的return值和return_msg???????????在线等,求助!!!!!!!!!!!!!! ```
sql C# 数据怎么就窜了
# 问题 func1 有query1, func2 有query2 执行顺序是 func1->func2 ,现在的问题是func2里面的query2 拿到的是 func1的query1 的查询结果 ,数据串了! **问题出现的时间点**:每天早上,第一个用户访问系统的时候,而且出现了这个问题之后就会 一直有这个问题,要么覆盖bin或者修改配置文件之后才能恢复正常访问 **服务器及数据库配置**:阿里云主机,iis 服务器,数据库 sql server 2012 **服务器应用部署方式**:多个站点,每个站点都是用同一套系统,只是分开部署,db是部署在db服务器,并不是跟应用服务部署在一起, **出现问题的地方**:出现在微信公众号用户网页验证的回调接口,简单的说:就是获取用户的在当前公众号下的openId ## 代码 ///func1 protected OA_WeixinOauthTokenEntity Get_token(string Code, string SchoolCode) { var weixinAccount = new WeixinUserService().GetWeixinAccount(SchoolCode);//query1 if (weixinAccount == null) { return null; } else { var AppID = weixinAccount.WechatAppid; var AppSecret = weixinAccount.WechatAppsecret; var urlStr = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + AppID + "&secret=" + AppSecret + "&code=" + Code + "&grant_type=authorization_code"; var helper = new HttpHelper(urlStr); var strJson = helper.SendHttpRequst(); var Oauth_Token_Model = JsonOperate.FromJson<OA_WeixinOauthTokenEntity>(strJson); return Oauth_Token_Model; } } ///func2 public string CheckIsAuthen(string OpenID, string UserType) { var strUserID = ""; if (!"".Equals(OpenID)) { //1. 老师,2学生,3家长 var strTable = "PIUser"; if (UserType == "2") strTable = "PIStudent"; if (UserType == "3") strTable = "PIParent"; var sql = " SELECT UserID FROM " + strTable + ",OA_WeixinToUser WHERE " + strTable + ".ID = UserID AND OA_WeixinToUser.OpenID= '" + OpenID + "' And OA_WeixinToUser.UserType = " + UserType + " And DELETEMARK=0 And ENABLED=1"; Const.WriteJobTxt("sql:" + sql, "CheckIsAuthen_v2"); DataSet ds = DbHelperSQL.Query(sql);//query2 DataTable dt = ds.Tables[0]; if (dt.Rows.Count > 0) { try { Const.WriteJobTxt("ds.count=" + ds.Tables.Count + "|dt:" + JSONhelper.ToJson(ds), "CheckIsAuthen_v2"); strUserID = PublicMethod.ObjectToStr(dt.Rows[0]["UserID"]); } catch (Exception ex) { Const.WriteBugLog(ex); throw ex; } } } return strUserID; } ``` ``` ## 日志文件 ![图片说明](https://img-ask.csdn.net/upload/201709/28/1506572703_987447.png) ## 错误提示 ![图片说明](https://img-ask.csdn.net/upload/201709/28/1506572806_176839.jpg) ## 尝试解决 1,初步猜测是并发导致的,但是经过分析日志文件,觉得不太可能,同一时间段访问量并不大,而且,时间间隔也是到3 ,4秒以上 2,数据库帮助类的query 使用的静态方法,后来把全部静态方法修改了之后还是会出现这个问题。所以排除这个问题 现在还是没有找到问题的解决方案,如果有某位大神看到这篇文章,并有遇到相似的问题。不妨讨论讨论,如果有解决方案那就更好不过了
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
开源一个功能完整的SpringBoot项目框架
福利来了,给大家带来一个福利。 最近想了解一下有关Spring Boot的开源项目,看了很多开源的框架,大多是一些demo或者是一个未成形的项目,基本功能都不完整,尤其是用户权限和菜单方面几乎没有完整的。 想到我之前做的框架,里面通用模块有:用户模块,权限模块,菜单模块,功能模块也齐全了,每一个功能都是完整的。 打算把这个框架分享出来,供大家使用和学习。 为什么用框架? 框架可以学习整体
源码阅读(19):Java中主要的Map结构——HashMap容器(下1)
(接上文《源码阅读(18):Java中主要的Map结构——HashMap容器(中)》) 3.4.4、HashMap添加K-V键值对(红黑树方式) 上文我们介绍了在HashMap中table数组的某个索引位上,基于单向链表添加新的K-V键值对对象(HashMap.Node&lt;K, V&gt;类的实例),但是我们同时知道在某些的场景下,HashMap中table数据的某个索引位上,数据是按照红黑树
c++制作的植物大战僵尸,开源,一代二代结合游戏
    此游戏全部由本人自己制作完成。游戏大部分的素材来源于原版游戏素材,少部分搜集于网络,以及自己制作。 此游戏为同人游戏而且仅供学习交流使用,任何人未经授权,不得对本游戏进行更改、盗用等,否则后果自负。 目前有六种僵尸和六种植物,植物和僵尸的动画都是本人做的。qq:2117610943 开源代码下载 提取码:3vzm 点击下载--&gt; 11月28日 新增四种植物 统一植物画风,全部修
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
深度学习图像算法在内容安全领域的应用
互联网给人们生活带来便利的同时也隐含了大量不良信息,防范互联网平台有害内容传播引起了多方面的高度关注。本次演讲从技术层面分享网易易盾在内容安全领域的算法实践经验,包括深度学习图
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程实用技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法,并会持续更新。
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
"狗屁不通文章生成器"登顶GitHub热榜,分分钟写出万字形式主义大作
GitHub 被誉为全球最大的同性交友网站,……,陪伴我们已经走过 10+ 年时间,它托管了大量的软件代码,同时也承载了程序员无尽的欢乐。 万字申请,废话报告,魔幻形式主义大作怎么写?兄dei,狗屁不通文章生成器了解一下。这个富有灵魂的项目名吸引了众人的目光。项目仅仅诞生一周,便冲上了GitHub趋势榜榜首(Js中文网 -前端进阶资源教程)、是榜首哦
推荐几款比较实用的工具,网站
1.盘百度PanDownload 这个云盘工具是免费的,可以进行资源搜索,提速(偶尔会抽风????) 不要去某站买付费的???? PanDownload下载地址 2.BeJSON 这是一款拥有各种在线工具的网站,推荐它的主要原因是网站简洁,功能齐全,广告相比其他广告好太多了 bejson网站 3.二维码美化 这个网站的二维码美化很好看,网站界面也很...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问