- 我将代码提交到体验版后,新功能不开启调试模式就无效果?
我新加了一个功能在本地已走通,然后提交到体验版进行测试。发现无效果,之后我打开调试模式想看看数据值的走向,结果发现只要打开调试模式就功能正常,关闭就不正常。来回关闭打开了好几次后关闭调试模式也功能正常了。但是用其他微信账号来使用时又出现了这个问题? 自助五行哪里的图片路径和描述都是从后台获取的一个集合中的数据 如果这个页面有图片和描述展示就必然有数据这个数据是保存在 app.js文件中的。 [图片] 新功能是 启动一台设备会根据他的五行属性播放相应的音乐,如果没有就播放默认音乐。 播放音乐的指令代码片段,新功能就是在原先的一个方法中插入这个方法的调用,根据逻辑修改命令。 settleProjectCmd(){ let curProject = this.data.m_curProject; let projectCmd = curProject.project_cmd; let bIsBest = this.data.m_bIsBest; // 如果是AI理疗就进入五行音乐的逻辑 if(bIsBest > 0){ let userInfo = this.data.m_userInfo; let wuXing = this.data.m_wuXing; // 如果用户有旺盛的五行体制就是使用 克制的音乐来播放 if(userInfo.user_wu_xing_ai != null && userInfo.user_wu_xing_ai != undefined && userInfo.user_wu_xing_ai != '' ){ return projectCmd+wuXing[userInfo.user_wu_xing_ai].restrain_music; }else{ // 如果用户没有体制或特殊的模式就使用基础的音乐 return projectCmd+DEFAULT_MUSIC; } } // 如果启动的模式是 (720睡眠/亚健康 )或者 (360睡眠/360睡眠/舒缓压力) 就拼接011音乐 if(projectCmd === CMD_START_720 || projectCmd === CMD_START_360 ){ return projectCmd+DEFAULT_MUSIC_SLEEP; } // 如果用户没有体制或特殊的模式就使用基础的音乐 return projectCmd+DEFAULT_MUSIC; }, [图片][图片] 所以我不明白的是为什么 打开调试模式就功能正常(我开调试模式就是想看错误在哪,结果调试就是正常的不开就是无效果的)
07-16 - 没有使用setData()就将page里的data数据更改了?
doTapWuXingCheck(event) { const { id: strCodeID } = event.currentTarget.dataset; let strCodeIDArr = strCodeID.split('-'); let wuXingGPT = this.data.m_wuXingGPT; let wuXingRadio = this.data.m_wuXingRadio; // 修改选择状态,直接取反原先的值 wuXingGPT[strCodeIDArr[0]][strCodeIDArr[1]].on = !wuXingGPT[strCodeIDArr[0]][strCodeIDArr[1]].on; let sum = 0; wuXingGPT.map((items,index) => { // 判断某个五行中是否有选择如果有选择就进行修改单选的图片展示 const result = items.find(item => item.on); if(result != undefined && result != null && result != ''){ wuXingRadio[index].flag = true; }else{ wuXingRadio[index].flag = false; } // 使用reduce函数统计集合中age参数的值总和 const wuXingSum = items.reduce((accumulator, currentValue) => accumulator + currentValue.on, 0); wuXingRadio[index].sum = wuXingSum; sum += wuXingSum; }) console.log("wuXingRadio: ",this.data.m_wuXingRadio); console.log("m_wuXingGPT: ",this.data.m_wuXingGPT); if(sum > 3){ Notify('您已选择超过3项!'); return; } this.setData({ m_wuXingGPT: wuXingGPT, m_wuXingRadio: wuXingRadio }) }, 我记得以前正常的逻辑是:如果大于3这个方法就直接退出,没有调用到setData()方法来修改参数所以 page里的data数据是不会进行更改的。现在却更改了 [图片]
07-09 - <web-view>组件无法进入1688阿里巴巴网站?
我公司在1688上有个商店,现在做了一个小程序希望有个按钮可以跳转到1688的商店。我使用<web-view>来实现跳转,发现商店是准确跳转到了但是一秒不到就之间报错说网址访问不到。 [图片][图片][图片] 我尝试过这几个1688网址来进入都不可以: 1,https://m.1688.com/ 2,https://shop1962p79790768.1688.com/ 3,https://www.1688.com/
06-04 - <web-view>组件无法进入https://qr.1688.com?
我公司在阿里的1688上开了一个店,现在在小程序上添加一个按钮可跳转到1688的移动端网址。但是进去后先展示出了网页过后一秒就报无法访问此网站。 [图片][图片][图片] <web-view src="https://qr.1688.com/s/fcmOt1iy" bindmessage="onWebMessage" bindload="onWebLoad" /> 阿里1688错误网址: 1: https://m.1688.com/?__removesafearea__=1&cbu_sv_id=6174a6e2-9c2c-4fa1-8f1a-df55539ab19e&src_cna=M1jkHrYWvgkCAbfvQyMMwK78&visitorId=6174a6e2-9c2c-4fa1-8f1a-df55539ab19e 2: https://shop1962p79790768.1688.com/page/index.html?spm=0.0.wp_pc_common_header_companyName_undefined.0[图片]
06-03 - 被动回复消息无反应?
服务器(Controller)代码 @RequestMapping(value = "getToken") @GetMapping(produces = "text/plain;charset=utf-8") @ResponseBody public void getToken(HttpServletRequest request, HttpServletResponse response) { if (StringUtils.isBlank(request.getParameter("signature"))) { return; } String msgSignature = request.getParameter("msg_signature"); String signature = request.getParameter("signature"); String timestamp = request.getParameter("timestamp"); String nonce = request.getParameter("nonce"); String echostr = request.getParameter("echostr"); try { if (!wxMpService.checkSignature(timestamp, nonce, signature)) { // 消息签名不正确,说明不是公众平台发过来的消息 response.getWriter().println("非法请求"); return; } if (StringUtils.isNotBlank(echostr)) { // 说明是一个仅仅用来验证的请求,回显echostr response.getWriter().println(Long.valueOf(echostr)); return; } String encryptType = StringUtils.isBlank(request.getParameter("encrypt_type")) ? "raw" : request.getParameter("encrypt_type"); WxMpXmlMessage inMessage = null; if ("raw".equals(encryptType)) { // 明文传输的消息 inMessage = WxMpXmlMessage.fromXml(request.getInputStream()); } else if ("aes".equals(encryptType)) { // 是aes加密的消息 inMessage = WxMpXmlMessage.fromEncryptedXml(request.getInputStream(), weixinService.getWxMpService().getWxMpConfigStorage(), timestamp, nonce, msgSignature); } else { response.getWriter().println("不可识别的加密类型"); return; } log.debug("__获取到的消息__"+inMessage.toString()); String event = inMessage.getEvent(); // 判定是关注公众号操作还是 对公众进行发送消息 if(StringUtils.isNotBlank(event)){ // 这个是关注与取消关注的逻辑操作 this.attentionGzh(inMessage,event); }else { // 回复消息 gzhUserService.passiveReplyMessage(inMessage, response); } inMessage.getEvent(); } catch (Exception e) { e.printStackTrace(); } } // 回复消息 service public String passiveReplyMessage(WxMpXmlMessage inMessage, HttpServletResponse response){ String msgType = inMessage.getMsgType(); if (msgType.equals("text")){ String content = inMessage.getContent(); String xmlTextString = ""; if (content.equals("绑定账号")){ xmlTextString = xmlText(inMessage.getToUser(), inMessage.getFromUser(), "好的"); } if (content.equals("1")){ xmlTextString = xmlText(inMessage.getToUser(), inMessage.getFromUser(), "好的"); } // 回复消息 if (StringUtils.isNotBlank(xmlTextString)){ try { response.setCharacterEncoding("UTF-8"); response.getWriter().println(xmlTextString); }catch (IOException e){ throw new IORuntimeException(e); } } return xmlTextString; } return ""; } 接受数据 xlm已转对象 {"allFieldsMap":{"Content":"1","CreateTime":"1695626434","ToUserName":"gh_","FromUserName":"olB_","MsgType":"text","MsgId":"24275533520139327"},"toUser":"gh_","fromUser":"olB_","createTime":1695626434,"msgType":"text","content":"1","msgId":242,"scanCodeInfo":{},"sendPicsInfo":{"picList":[]},"sendLocationInfo":{},"hardWare":{}} 返回的XML (我服务器的xml名称) xmlTextString <xml><ToUserName><![CDATA[gh_]]></ToUserName><FromUserName><![CDATA[olB_]]></FromUserName><CreateTime>1695626435704</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[好的]]></Content></xml> [图片]
2023-09-25 - 支付回调,wxPayService.parseOrderNotifyV3Result一直报null?
jar包 com.github.binarywang weixin-java-pay 4.5.3.B 观看的接口文档 支付通知APIhttps://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_1_5.shtml JAVA代码 service层 注:数据都已经接受到了 PayNotifyForm 是通知接口传过来的参数 public void payNotify(String appid, PayNotifyForm payNotifyForm, HttpServletResponse response, HttpServletRequest request) throws Exception { // 自己写的创建WxPayService 对象方法 将 密钥证书等等输入 WxPayService wxPayService = this.getWxPayService(appid); SignatureHeader signatureHeader = new SignatureHeader(); signatureHeader.setTimeStamp(response.getHeader("Wechatpay-Timestamp")); signatureHeader.setNonce(response.getHeader("Wechatpay-Nonce")); signatureHeader.setSerial(response.getHeader("Wechatpay-Serial")); signatureHeader.setSignature(response.getHeader("Wechatpay-Signature")); // 这段代码一开始没有加,现在加了还是在报错 SignatureHeader.SignatureHeaderBuilder builder = signatureHeader.builder(); builder.timeStamp(response.getHeader("Wechatpay-Timestamp")); builder.nonce(response.getHeader("Wechatpay-Nonce")); builder.serial(response.getHeader("Wechatpay-Serial")); builder.signature(response.getHeader("Wechatpay-Signature")); WxPayNotifyV3Result notifyV3Result = wxPayService.parseOrderNotifyV3Result(payNotifyForm.getResource().getCiphertext(), signatureHeader); } private WxPayService getWxPayService(String appid){ WxPayConfig payConfig = new WxPayConfig(); payConfig.setAppId(appid); payConfig.setMchId(StringUtils.trimToNull(this.properties.getMchId())); payConfig.setMchKey(StringUtils.trimToNull(this.properties.getMchKey())); payConfig.setKeyPath(StringUtils.trimToNull(this.properties.getKeyPath())); payConfig.setApiV3Key(StringUtils.trimToNull(this.properties.getAPIv3())); payConfig.setPrivateKeyPath(StringUtils.trimToNull(this.properties.getPrivateKeyPath())); payConfig.setPrivateCertPath(StringUtils.trimToNull(this.properties.getPrivateCertPath())); // 可以指定是否使用沙箱环境 payConfig.setUseSandboxEnv(false); WxPayService wxPayService = new WxPayServiceImpl(); wxPayService.setConfig(payConfig); return wxPayService; } 报错代码 wxPayService.parseOrderNotifyV3Result(payNotifyForm.getResource().getCiphertext(), signatureHeader); 报错输出 java.lang.NullPointerException: null 后台输出的一些参数 [图片]
2023-08-08 - 订单中购买了两个商品,一个商品使用了单品券,然后进行售后退款使用了优惠券的商品怎么进行部分退款?
提交 参数 <xml> <out_trade_no>dev_PN00000000000000000000095</out_trade_no> <out_refund_no>RN00000000000000000000027</out_refund_no> <total_fee>2000</total_fee> <refund_fee>1000</refund_fee> <xml> 再根据V3文档修改后的 xml请求参数 <xml> <appid></appid> <mch_id></mch_id> <nonce_str></nonce_str> <sign></sign> <out_trade_no>dev_PN00000000000000000000095</out_trade_no> <out_refund_no>RN00000000000000000000027</out_refund_no> <total_fee>2000</total_fee> <refund_fee>1000</refund_fee> <op_user_id></op_user_id> <notify_url></notify_url> <detail><![CDATA["goods_detail":[{"goods_name":"拉钉","price":10.0,"goods_id":1680779067254693888,"refund_amount":10.0,"refund_quantity":1}]]]></detail> </xml> 微信响应参数 【响应数据】: <xml><return_code><![CDATA[FAIL]]></return_code> <return_msg><![CDATA[不识别的参数detail]]></return_msg> </xml> java使用的maven <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-pay</artifactId> <version>4.5.3.B</version>
2023-08-03 - 后台有19条数据,小程序打印的数据未打开时也是显示19条,为什么底下的length又显示18?
接收数据: [图片] 打印显示的数据: [图片] 后台数据: [图片]
2023-06-19 - 企业付款到个人银行卡 如何开通?为什么我的产品中心中没有这个功能?
为什么我的产品中心只有商家转账到零钱没有企业付款到个人银行卡? [图片]
2023-03-06 - Vant-uploader 组件 accept值为"media" 问题?
代码片段 <van-uploader file-list="{{ fileList }}" deletable="{{ true }}" max-count="4" accept="media" sizeType="['original','compressed']" media-type="['image','video']" multiple camera="back" capture="['album']" max-duration="30" bind:click-preview="preview" preview-full-image="true" bind:after-read="afterImgRead" bind:delete="deleteImg" preview-size="300rpx" disabled="{{!(job.projectManager || job.installWorker)}}"/> 问题一:当 accept值为"media" 手机选择文件无法进入 相册或拍摄 只能进入到微信当中选择一个聊天内的文件 [图片][图片] 问题二:选择视频时组件展示的 是一个文件路径 而不是一个带有赞同图标的图片 [图片] 问题三:选择视频后无法播放视频 点击视频无法触发事件,不知道怎么进行播放视频 问题四:选择微信聊天后进入的 文件展示中没有视频 [图片][图片]
2023-02-28