java微信公众号 js调用微信支付报错 errMsg:chooseWXPay:fail

奖励有点少,实在是没有c币了。
下面是我的js,不清楚到底是什么原因导致的,各位大神帮忙给解决下吧;具体报错:config签名啥的是OK的,但是在调用chooseWXPay的时候,就失败了 报错errMsg:chooseWXPay:fail 没有别的提示信息,不清楚失败原因
$('#pay_sub_btn').on(touchType, function(){
var _this = $(this);
var payType = $('#pay_type').val();
var orderId = $('#J_payOrder_id').val();
var orderSn = $('#J_payOrder_sn').val();
var payFee = $('#J_payOrder_card_no').val();
var fieldLabel = $('#fieldLabel').val();
var date = $('#date').val();
var orderTimes = $('#orderTimes').val();
var gymName = $('#gymName').val();
var path = $('#basePath').val();

    hideError();
    lock = true;
    _this.text('支付中...');
    if(payType == 13){
       //支付宝支付

    }else{
        $.ajax({  
            url:path+"/orders/OrdersPayForWx.do?orderId="+orderId
        }).done(function(data){  
            var obj = eval('(' + data + ')');  
            if(parseInt(obj.agent)<5 && obj.agent != "false"){  
                alert("您的微信版本低于5.0无法使用微信支付,请升级之后再操作!~");
                return;  
            }else if(obj.agent == "false"){
                alert("请使用微信浏览器操作!~");
                return;  
            }
            if(obj.code == "0"){
                alert("登陆已经过期,请重新登录!~");
                window.location.href = path+'/login.jsp';
            }
            wx.config({
                debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                appId: obj.appId, // 必填,公众号的唯一标识
                timestamp: obj.contime, // 必填,生成签名的时间戳
                nonceStr: obj.constr, // 必填,生成签名的随机串
                signature: obj.consign,// 必填,签名,见附录1
                jsApiList: ['chooseWXPay'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
            });
            wx.ready(function(){
                wx.chooseWXPay({
                    "timestamp": obj.paytime, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
                    "nonceStr": obj.paystr, // 支付签名随机串,不长于 32 位
                    "package": obj.paypack, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
                    "signType": obj.paysigntype, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
                    "paySign": obj.paysign, // 支付签名
                    success: function (res) {
                        // 支付成功后的回调函数
                        alert(res.err_msg);
                        _this.text('支付');
                         if(res.err_msg == "get_brand_wcpay_request:ok" ) {
                             _this.text('支付');
                            // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回    ok,但并不保证它绝对可靠。 
                             window.location.href = path + '/orders/GetOrders.do?page=1&pageSize=10&orderStatus=0';
                         }else{
                            alert(res.errMsg);
                            alert(res.err_msg);
                            _this.text('支付');
                            return false;
                         }
                    }
                });
            });
            wx.error(function(res){
                alert(res.err_msg);
                _this.text('支付');
                return false;
            });
        });  
    }
});

1个回答

{"errMsg":"chooseWXPay":"fail"},这个问题产生的原因很有可能是微信授权域名和微信支付域名设置的不一样,比如一个有www一个没有。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JAVA 微信公众号支付 报支付验证签名失败

做微信公众号支付的时候一直报验证签名失败,用签名校验工具和自己后台签名对比是一样的,私钥也换过,一直报这个错误,谁有好的建议说下感激不尽

Java微信公众号开发,图片上传包41005

我是用java开发的微信公众号,测试图片上传是报这个错,41005,缺少多媒体。 {"errcode":41005,"errmsg":"media data missing hint: [cSdqhA0089e565]"}。 求大神帮忙!!!!!!!!

java微信公众号模板消息发送接口问题

java代码如下 ``` /** * 发送注册成功模板消息 * @return */ public static String toSendModelMessage(String openId,String phone,String id,String dayStr){ String accessToken=getAccessToken(); if(accessToken.length()<=0){ return ""; } System.out.println("accessToken==="+accessToken); String urlStr="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+accessToken; try { URL url = new URL(urlStr); HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection(); urlConnection.setDoOutput(true); urlConnection.setDoInput(true); urlConnection.setRequestMethod("POST"); urlConnection.setUseCaches(false); urlConnection.setInstanceFollowRedirects(true); urlConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); urlConnection.setRequestProperty("Charset", "UTF-8"); urlConnection.connect(); DataOutputStream out = new DataOutputStream(urlConnection.getOutputStream()); String params="{"+ "\"touser\":\""+openId+"\","+ "\"template_id\":\"ZvG8sGRKqo2Hk-OFRkHVLbvaeZTX7DDJFyS3G-0mb4A\","+ "\"url\":\"http://map.baidu.com/\","+ "\"topcolor\":\"#FF0000\","+ "\"data\":{"+ "\"first\": {"+ "\"value\":\"客官,恭喜您成功注册为VIP\","+ "\"color\":\"#173177\""+ "},"+ "\"keyword1\":{"+ "\"value\":\""+phone+"\","+ "\"color\":\"#173177\""+ "},"+ "\"keyword2\":{"+ "\"value\":\""+id+"\","+ "\"color\":\"#173177\""+ "},"+ "\"keyword3\":{"+ "\"value\":\""+dayStr+"\","+ "\"color\":\"#173177\""+ "},"+ "\"remark\":{"+ "\"value\":\"点击跳转\","+ "\"color\":\"#173177\""+ "}"+ "}"+ "}"; System.out.println(params); out.writeBytes(params); out.flush(); out.close(); BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(),"UTF-8")); String line; String responseStr=""; while ((line = reader.readLine()) != null){ responseStr+=line; } System.out.println(responseStr); reader.close(); urlConnection.disconnect(); }catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return ""; } ``` 返回的结果如下 ``` {"errcode":47001,"errmsg":"data format error hint: [IGparA0715ge14]"} ``` 以下是我打印出来的请求json ``` { "touser":"on3mAwuljdY12JuRbua28EUCgW9o", "template_id":"ZvG8sGRKqo2Hk-OFRkHVLbvaeZTX7DDJFyS3G-0mb4A", "url":"http://map.baidu.com/", "topcolor":"#FF0000", "data":{ "first":{ "value":"客官,恭喜您成功注册为VIP", "color":"#173177" }, "keyword1":{ "value":"18520040243", "color":"#173177" }, "keyword2":{ "value":"5", "color":"#173177" }, "keyword3":{ "value":"2014年7月21日 18:36", "color":"#173177" }, "remark":{ "value":"点击跳转", "color":"#173177" } } } ``` 很想知道我错在哪!求有经验的同学指点下

微信公众号开发 调用推送模板消息接口超时

微信公众号开发 调用推送模板消息接口超时,之前一直好好的,今天早上就出现了链接超时的问题,是不是微信的接口出问题了,如果是,怎么把问题反馈给微信,如果不是,请问出现该问题的其他原因是什么?![图片说明](https://img-ask.csdn.net/upload/201610/19/1476861570_820168.png) 出现问题的接口:https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

微信公众号内调用二维码扫描不执行回调方法

最近在开发一个微信公众号,其中使用到了微信的二维码扫描方法, 开发完成后出现很奇怪的问题,Android手机上扫描时js不执行回调方法而是自动打开了新页面, 因为我的二维码扫描出来后是一个页面地址,感觉我配置回调方法不起作用似的, 但这个现象吧也不是毕现的,Android上偶尔会出现,iOS却是正常的,不知道大家有遇到过类似现象没,该如何解决呢? 二维码解析后的信息:https://m.futeplus.com/welcome.html?https://m.futeplus.com/welcome.html?ver=1&sn=6301160401856 js调用代码: $.post(vodka_config_url,{"url":url,"code":code},function(data){ wx.config({ debug: false, appId: data.data.appId, timestamp: data.data.timestamp, nonceStr: data.data.nonceStr, signature: data.data.signature, jsApiList: ['openLocation','getLocation','scanQRCode','chooseWXPay'] }); $('.scan_btn').click(function(){ wx.ready(function(){ wx.scanQRCode({ needResult: 1, desc: '请扫描二维码', scanType: ["qrCode","barCode"],//一维码、二维码 success: function (res) { var reg = new RegExp(".*sn=([0-9]+)$"); var r=res.resultStr.match(reg); if(null!=r){ submitCode(r[1]); }else{ alert("二维码不正确"); } } }); }); }); wx.error(function (res) { alert(res.errMsg); }); });

微信公众号,上传图片后,下载报错,invalid media id

在公众号里面,调用UploadImage的JS方法后,取到返回的serverID,微信文档上说 就是media_id,可以调用下载多媒体接口,取到上传的图片 可调用时,一直报错,invalid media id,无效的媒体ID 一直无法解决,请教各位高手了 谢谢

微信公众号扫一扫scanQRCode接口问题

年前的时候做了个微信公众号调用扫一扫的功能,年后回来有用户反应扫一扫调不出来了,测试后发现IOS没问题,安卓点击之后却没反应,是不是微信更新了的原因?

【求助】微信公众号开发图像处理接口是否还可用?

自己使用微信公众平台测试账号,调用微信公众号的图像处理API,测试了很多次了,都是返回无权限。 {“errcode”:48001,“errmsg”:“api unauthorized hint: [Z4r_Ta08761539!]”} 请教下哪位大神知道,以下微信公众号开发图像处理接口是否还可用?开发文档链接如下: [](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=21565696120rKrYx "") https://mp.weixin.qq.com/wiki?t=resource/res_main&id=21565696120rKrYx 图像处理接口文档 一、接口介绍 1.1 接口功能 本页面提供多项图像处理能力相关的API。 二、二维码/条码识别接口 2.1 请求示例 地址: http://api.weixin.qq.com/cv/img/qrcode?img_url=ENCODE_URL&access_token=ACCESS_TOCKEN 示例1: curl http://api.weixin.qq.com/cv/img/qrcode?img_url=ENCODE_URL&access_token=ACCESS_TOCKEN 示例2: curl -F ‘img=@test.jpg’ ‘http://api.weixin.qq.com/cv/img/qrcode?access_token=ACCESS_TOCKEN’ 说明: 图片支持使用img参数实时上传,也支持使用img_url参数传送图片地址,由微信后台下载图片进行识别。 文件大小限制:小于2M 支持条码、二维码、DataMatrix和PDF417的识别。 二维码、DataMatrix会返回位置坐标,条码和PDF417暂不返回位置坐标。

微信公众号分享接口updateAppMessageShareData 没有回调

由于微信版本的升级,旧版的分享接口已经即将弃用,不少新版本的微信用户反映分享功能有BUG, 看了下文档微信公众号新的分享接口, “请注意,原有的 wx.onMenuShareTimeline、wx.onMenuShareAppMessage、wx.onMenuShareQQ、wx.onMenuShareQZone 接口,即将废弃。请尽快迁移使用客户端6.7.2及JSSDK 1.4.0以上版本支持的 wx.updateAppMessageShareData、updateTimelineShareData 接口” 所以就用了updateAppMessageShareData 这个接口来分享,分享的话是成功了,但是由于 业务关系 需要在分享成功之后做一些操作,按找文档上的代码格式编写了回调函数,但是没有分享成功或取消分享之后没有回调。求解。代码如下 function lqCard(){ var url = window.location.href; var openid = $("#openid").val(); var sign = $("#sign").val(); var remberId= $("#remberId").val(); //alert("remberId:"+remberId+"openid:"+openid); $.ajax({ url: "<@spring.url '/getJSSDKSignature'/>", //请求的url地址 dataType: "json", //返回格式为json data: { "url":url, }, //参数值 type: "GET", //请求方式 success: function(result) { var appId = result.appId; var timestamp = result.timestamp; var nonceStr = result.nonceStr; var signature = result.signature; wx.config({ debug: true, appId: appId, timestamp: timestamp, nonceStr: nonceStr, signature: signature, jsApiList: [ 'updateAppMessageShareData' ] }); wx.ready(function(){ var remark="123"; var url="https://www.xxxx.cn"; var imgURL="https://www.xxxx.cn/xx.jpg"; wx.updateAppMessageShareData({ title: remark, // 分享标题 desc: "点击领取电子凭证", // 分享描述 link: url, imgUrl:imgURL, // 分享图标 },function (res) { alert("[调试信息]"); }); }); wx.error(function(res){ alert("error"); }); } }); } ``` ```

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; } } ```

微信JSSDK调用播放音频接口为什么没有响应?求大神指点!!!!

在做微信语音播放的项目,可是调用后为什么没有动静?wx.ready方法已经通过了,可以alert,但是把检测的JS接口的wx.checkJsApi贴上去也没有什么反应?而且wx.playVoice的接口中localId是否是mediaid?代码如下:求指点。。。。 var timestamp=""; var nonceStr=""; var signature=""; function getVoice(mediaId){ $.ajax({ url : "/getVoice", type : "GET", dataType : "json", success : function(data){ timestamp=data.timestamp; nonceStr=data.nonceStr; signature=data.signature; }, error : function(){ alert("系统故障,请稍后再试!"); } }); } //通过config接口注入权限验证配置,所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用 wx.config({ debug: true, appId: 'wxf8b4f85f3a794e77', timestamp: timestamp, nonceStr: nonceStr, signature: signature, jsApiList: [ 'playVoice' ] }); //通过ready接口处理成功验证 wx.ready(function (){ wx.checkJsApi({ jsApiList: ['playVoice'], // 需要检测的JS接口列表,所有JS接口列表见附录2, success: function(res) { alert(res); // 以键值对的形式返回,可用的api值true,不可用为false // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"} }, fail function (res){ alert(res); } }); }); wx.playVoice({ localId: '' // 需要播放的音频的本地ID,由stopRecord接口获得 });

微信支付提示:调用支付JSAPI缺少参数:total_fee

问题:在iOS版的微信上,调用微信支付,提示:**调用支付JSAPI缺少参数:total_fee**; 但是在Android版的微信上,调用微信支付,支付弹框一闪而过,没有任何提示。 参数值分别是: timeStamp:"1549735394" nonceStr:"mAXvtjnJ9TjfqjDc" package:"prepay_id%3Dwx1001103397948805d12203820692168854" signType: "MD5" paySign:"C87D3CE95B1A73B2F05D7F3404F712BC" 前端代码使用的接口是: ``` // 10 微信支付接口 // 10.1 发起一个支付请求 var useWXPay = function (data) { wx.chooseWXPay({ timeStamp : String(data["timestamp"]), nonceStr : data["nonce_str"], package : escape(data["package"]), signType : data["sign_type"], paySign : data["paySign"], success: function (res) { alert("成功") alert(res) }, fail: function (res) { alert("失败") alert(Object.keys(res)) alert(res.errMsg) } }); } ``` 或者H5的支付请求代码: ``` var useWXPay1 = function (data) { if (typeof WeixinJSBridge == "undefined") { if (document.addEventListener) { document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false); } else if (document.attachEvent){ document.attachEvent('WeixinJSBridgeReady', onBridgeReady); document.attachEvent('onWeixinJSBridgeReady', onBridgeReady); } } else { var appId = $.trim($("#appId").val()) WeixinJSBridge.invoke( 'getBrandWCPayRequest', { "appId" : appId, //公众号名称,由商户传入 "timeStamp" : data["timestamp"], //时间戳,自1970年以来的秒数 "nonceStr" : data["nonce_str"], //随机串 "package" : data["package"], "signType" : data["sign_type"], //微信签名方式 "paySign" : data["paySign"] //微信签名 }, function(res) { // alert("err_code=" + res.err_code) // alert("err_desc=" + res.err_desc) // alert("err_msg=" + res.err_msg) // alert(Object.keys(res)) if(res.err_msg == "get_brand_wcpay_request:ok" ) { // 使用以上方式判断前端返回,微信团队郑重提示: //res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。 } } ); } } ``` 在统一下单时,已传入openid 请求大神的帮助

关于公众号微信支付errcode:40163,code been used,Code重复使用的问题

公众号微信支付errcode":40163,"errmsg":"code been used,Code重复使用的问题,请教一下,这个问题该如何解决,各位提供一下解决方法可以吗

微信测试帐号 URL和token 返回-107错误 大神帮忙看看。。。。

![-107错误](https://img-ask.csdn.net/upload/201601/20/1453254925_493556.png) 这个项目报错,把测试号放到另一个项目是成功的,会不会是服务器时间不准的原因? 求大神看看 {errcode: -107, errmsg: "token check timeout"} errcode: -107 errmsg: "token check timeout"

微信支付接口调用出现如下错误。一直没解决

post data:{"app_signature":"fdb25be5c800c37b8c03466437f247d5d114e6ba","appid":"wx08bf96c2a6bae310","mch_id":"xxxxxxxxxx","noncestr":"fe2b952bd6b9030970b3866b328bd9c7","package":"appid=wx08bf96c2a6bae310&body=%E6%B5%8B%E8%AF%95&fee_type=CNY&input_charset=UTF-8&mch_id=1453907702&nonce_str=fe2b952bd6b9030970b3866b328bd9c7&notify_url=http%3A%2F%2F127.0.0.1%3A8070%2Ftenpay_api_b2c%2FpayNotifyUrl.jsp&out_trade_no=1558399694&sign=52C2328C557CDA7F9AD3F54BB52DD6B4&spbill_create_ip=0%3A0%3A0%3A0%3A0%3A0%3A0%3A1&total_fee=1&trade_type=APP","sign_method":"sha1","timestamp":"1492156720","traceid":"testtraceid001"} resContent:{"errcode":268500762,"errmsg":"package里面的partner不合法"}

用微信js-sdk接口下载图片总报错invalid media_id

我用微信的js-sdk接口的wx.chooseImage选择图片,用wx.uploadImage上传图片,再用http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID上传下载多媒体文件接口下载图片到本地服务器,可总是报错{"errcode":40007,"errmsg":"invalid media_id"}无效媒体ID错误。 1、拍照或从手机相册中选图接口,得到图片的localIds。 wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function (res) { var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片 } }); 2、上传图片接口,得到serverId。 wx.uploadImage({ localId: '', // 需要上传的图片的本地ID,由chooseImage接口获得 isShowProgressTips: 1, // 默认为1,显示进度提示 success: function (res) { var serverId = res.serverId; // 返回图片的服务器端ID } }); 备注:上传图片有效期3天,可用微信多媒体接口下载图片到自己的服务器,此处获得的 serverId 即 media_id,参考文档 ../12/58bfcfabbd501c7cd77c19bd9cfa8354.html 目前多媒体文件下载接口的频率限制为10000次/天,如需要调高频率,请邮件weixin-open@qq.com,邮件主题为【申请多媒体接口调用量】,请对你的项目进行简单描述,附上产品体验链接,并对用户量和使用量进行说明。 3、通过“下载多媒体文件”接口 http请求方式: GET http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID 下载已经上传到微信服务器的图片到本地服务器,但是总提示{"errcode":40007,"errmsg":"invalid media_id"}无效媒体ID错误。 调试了很久,就是弄不懂是什么问题,请高人指点,谢谢。

微信分享到朋友圈的问题,提示config:invalid signature

觉得签名没问题,用参数到微信签名验证页面去验证,签出来的和代码中签的一样,URL也没问题

微信企业号 Java 邀请关注API 报错

我用两种方式,都报错 1:直接调用邀请的API "https://qyapi.weixin.qq.com/cgi-bin/invite/send?access_token=ACCESS_TOKEN" 报错如下 {"errcode":48005,"errmsg":"api obsoleted"} 2:用了第三方(weixin-java-cp-2.5.2.jar),也报同样错 me.chanjar.weixin.common.exception.WxErrorException: {"errcode":48005,"errmsg":"api obsoleted"} 微信没有关注的API了吗?还是企业号的设置有问题?

微信JSSDK config显示OK,checkJsApi显示OK,然后就没有任何反应了,求指导

这是我的测试地址:http://ecapex.top/wx/sample/php/sample.php 以下是我的前端代码: ``` <script> wx.config({ debug: true, appId: '<?php echo $signPackage["appId"];?>', timestamp: <?php echo $signPackage["timestamp"];?>, nonceStr: '<?php echo $signPackage["nonceStr"];?>', signature: '<?php echo $signPackage["signature"];?>', jsApiList: [ // 所有要调用的 API 都要加到这个列表中 'updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage', 'onMenuShareTimeline' ] }); //将分享的数组组成json数组 window.share_config = { "share": { "imgUrl": "http://ecapex.top/upload/partertalents/min/20180629202242.jpg",//分享图,默认当相对路径处理,所以使用绝对路径的的话,“http://”协议前缀必须在。 "desc" : "你真是太棒了",//摘要,如果分享到朋友圈的话,不显示摘要。 "title" : '你真是非常的棒',//分享卡片标题 "link": 'http://ecapex.top',//分享出去后的链接,这里可以将链接设置为另一个页面。 "success":function(){//分享成功后的回调函数 }, 'cancel': function () { // 用户取消分享后执行的回调函数 } } }; wx.ready(function () { // 在这里调用 API //判断当前客户端版本是否支持指定JS接口 wx.checkJsApi({ jsApiList: [ // 所有要调用的 API 都要加到这个列表中 'updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage', 'onMenuShareTimeline' ], // 需要检测的JS接口列表,所有JS接口列表见附录2, success: function(res) { console.log(res) // 以键值对的形式返回,可用的api值true,不可用为false // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"} } }); }); function AppMessage() { wx.updateAppMessageShareData(share_config.share); } function Timeline() { wx.updateTimelineShareData(share_config.share); } function Messages() { wx.onMenuShareAppMessage(share_config.share); } function timelines() { wx.onMenuShareTimeline(share_config.share) } </script> <button onclick="AppMessage()">自定义分享给朋友</button><br> <button onclick="Timeline()">自定义分享到朋友圈</button><br> <button onclick="Messages()">分享给朋友</button> <button onclick="timelines()">分享到朋友圈</button> ``` 后端代码: ``` class JSSDK { private $appId; private $appSecret; public function __construct($appId, $appSecret) { $this->appId = $appId; $this->appSecret = $appSecret; } public function getSignPackage() { $jsapiTicket = $this->getJsApiTicket(); // 注意 URL 一定要动态获取,不能 hardcode. $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $timestamp = time(); $nonceStr = $this->createNonceStr(); // 这里参数的顺序要按照 key 值 ASCII 码升序排序 $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url"; $signature = sha1($string); $signPackage = array( "appId" => $this->appId, "nonceStr" => $nonceStr,//随机字符串 "timestamp" => $timestamp,//时间戳 "url" => $url,//当前网页的URL "signature" => $signature,//签名 "rawString" => $string ); return $signPackage; } //设置签名的随机串并按ASCII 码从小到大排序 private function createNonceStr($length = 16) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $str = ""; for ($i = 0; $i < $length; $i++) { $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); } return $str; } //获取ticket private function getJsApiTicket() { // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例 $data = json_decode($this->get_php_file("jsapi_ticket.php")); if ($data->expire_time < time()) { $accessToken = $this->getAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken"; $res = json_decode($this->httpGet($url)); $ticket = $res->ticket; if ($ticket) { $data->expire_time = time() + 7000; $data->jsapi_ticket = $ticket; $this->set_php_file("jsapi_ticket.php", json_encode($data)); } } else { $ticket = $data->jsapi_ticket; } return $ticket; } //获取accesstoken private function getAccessToken() { // access_token 应该全局存储与更新,以下代码以写入到文件中做示例 $data = json_decode($this->get_php_file("access_token.php")); if ($data->expire_time < time()) { $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret"; $res = json_decode($this->httpGet($url)); $access_token = $res->access_token; if ($access_token) { $data->expire_time = time() + 7000; $data->access_token = $access_token; $this->set_php_file("access_token.php", json_encode($data)); } } else { $access_token = $data->access_token; } return $access_token; } private function httpGet($url,$type='get',$res='json',$arr='') { $ch = curl_init(); if (class_exists('\CURLFile')) { curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true); } else { if (defined('CURLOPT_SAFE_UPLOAD')) { curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); } } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); if($type=='post'){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $arr); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); if($res=='json'){ if( curl_errno($ch) ){ //请求失败 return curl_error($ch); curl_close($ch); }else{ //请求成功 curl_close($ch); return $output; } } } //获取对应文件内容(accesstoken、ticket) private function get_php_file($filename) { return trim(substr(file_get_contents($filename), 15)); } //设置对应文件内容(accesstoken、ticket) private function set_php_file($filename, $content) { $fp = fopen($filename, "w"); fwrite($fp, "<?php exit();?>" . $content); fclose($fp); } } ``` 有没有大佬告诉下,到底是怎么回事啊?我的接口权限、js安全域名都是OK的,方便的话可以加我QQ指点下我825114245

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

一文带你入门Java Stream流,太强了

两个星期以前,就有读者强烈要求我写一篇 Java Stream 流的文章,我说市面上不是已经有很多了吗,结果你猜他怎么说:“就想看你写的啊!”你看你看,多么苍白的喜欢啊。那就“勉为其难”写一篇吧,嘻嘻。 单从“Stream”这个单词上来看,它似乎和 java.io 包下的 InputStream 和 OutputStream 有些关系。实际上呢,没毛关系。Java 8 新增的 Stream 是为...

立即提问
相关内容推荐