你好,我也碰到了一样的问题,小程序支付,统一下单接口返回正常,小程序调起支付就报错 缺少total_fee 你解决了吗?
微信调用支付JSAPI缺少参数:total_fee,支付失败按照微信官方文档步骤第一步统一下单,没有问题可以正常返回[图片] 但是在这里的时候显示签名不通过 [图片] 支付调用时显示 [图片] 调用失败请问怎么回事。
2019-03-15同样出现这个问题,package 拼接没有问题,就是一直提示缺少参数。
预支付接口返回成功,小程序端调用支付JSAPI缺少参数: total_fee预支付接口返回成功,小程序端调用支付JSAPI缺少参数: total_fee。 我的是开发环境,请问有什么原因会导致这个错误
2019-03-14我也碰到小程序支付问题了,但我是提示 {err_code: "-1", err_desc: "调用支付JSAPI缺少参数: total_fee", errMsg: "requestPayment:fail"} 你知道是啥原因吗? [图片] 这个是我打印的值? 你上面的问题 sign值是要重新签名的,nonce_str 是随机的。 参与签名的字段 有官方文档: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=3[图片]
APP支付调起微信支付返回-1各位大佬,在接入微信支付的时候,调用统一下单接口能正常返回数据,在返回数据的时候服务器这边对返回的字段进行从新签名,但当客户端去发起支付的时候,SendReq返回的是true。搜了下社区大家遇到的问题,也尝试了一遍还是不行。 返回重新签名的代码: [代码]/// <summary>[代码][代码] [代码][代码]/// 获取支付信息[代码][代码] [代码][代码]/// </summary>[代码][代码] [代码][代码]/// <param name="prepay_id"></param>[代码][代码] [代码][代码]/// <returns></returns>[代码][代码] [代码][代码]private[代码] [代码]string[代码] [代码]GetPayReqInfo([代码][代码]string[代码] [代码]prepay_id,[代码][代码]string[代码] [代码]nonce_str)[代码][代码] [代码][代码]{[代码][代码] [代码][代码]//随机字符串[代码][代码] [代码][代码]//string nonce_str = new Random().Next(0, 99999).ToString();[代码][代码] [代码][代码]//时间戳[代码][代码] [代码][代码]string[代码] [代码]timeStamp = MFDSAUtil.GetTimestamp().ToString();[代码] [代码] [代码][代码]string[代码] [代码]package = [代码][代码]"Sign=WXPay"[代码][代码];[代码] [代码] [代码][代码]string[代码] [代码]temp = [代码][代码]string[代码][代码].Format([代码][代码]"appid={0}&noncestr={1}&package={2}&partnerid={3}&prepayid={4}×tamp={5}&key={6}"[代码][代码],[代码][代码] [代码][代码]appid,nonce_str,package,mch_id,prepay_id,timeStamp,payKey);[代码] [代码] [代码][代码]//签名[代码][代码] [代码][代码]string[代码] [代码]tsign = Utils.MD5Encrypt32(temp).ToUpper(); [代码][代码]//签名MD5大写形式[代码] [代码] [代码][代码]LitJson.JsonData data = [代码][代码]new[代码] [代码]LitJson.JsonData();[代码][代码] [代码][代码]data[[代码][代码]"partnerId"[代码][代码]] = mch_id; [代码][代码]//商户号[代码][代码] [代码][代码]data[[代码][代码]"prepayId"[代码][代码]] = prepay_id; [代码][代码]//统一下单编号[代码][代码] [代码][代码]data[[代码][代码]"nonceStr"[代码][代码]] = nonce_str; [代码][代码]//随机字符串[代码][代码] [代码][代码]data[[代码][代码]"timeStamp"[代码][代码]] = timeStamp; [代码][代码]//时间戳[代码][代码] [代码][代码]data[[代码][代码]"package"[代码][代码]] = package;[代码][代码] [代码][代码]data[[代码][代码]"sign"[代码][代码]] = tsign; [代码][代码]//签名[代码][代码] [代码][代码]return[代码] [代码]LitJson.JsonMapper.ToJson(data);[代码][代码] [代码][代码]}[代码]然后我检查了应用签名跟appid,还有商户id都是没有问题,但还是不行。有几个疑问 统一下单返回数据中有sign字段,调起微信支付是直接用这个签名吗 如果1的问题不成立,那么返回数据中的nonce_str字段值是要参与重新签名,还是使用发起统一下单请求的nonce_str值,或者是重新随机 参与重新签名的字段是否是这六个:appid,noncestr,package,partnerid,prepayid,timestamp,key 忘有经验的大佬,官方指导下
2019-03-14可以用微信提供的接口? <img src="https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=<{$ticket}>" width="120" height="120" />
小程序生成二维码B类接口在生成二维码时,前台返回得是全是图片二进制 类似这种: $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������?�M'G������3��R�K9f$���(���������f������R���4xু��U���m],��^�t�M�g�u�P��9��,�.Ry�!G�w?g��_��c��O���7|Z�O�_����Ņ��< ����tZ����zU��V�Kխ� .t�N����Im�&���h��(��$��'��I��P? 这个该怎么处理??难道在后台保存,然后返回直接路径
2018-08-17你可以先打印一下post数据。看下和文档对比看看,有啥不一样。
公众号调试工具获取的open_id,但发送消息使用该id报错open_id无效下面是最后一步,发送失败的代码,报的错是无效的open_id""{\"errcode\":40003,\"errmsg\":\"invalid openid hint: [A5nx.a00694107]\"}"" [代码]@GetMapping[代码][代码](value=[代码][代码]"/send-message"[代码][代码])[代码][代码] [代码][代码]@ResponseBody[代码][代码] [代码][代码]public[代码] [代码]String sendMessage() [代码][代码]throws[代码] [代码]Exception{[代码][代码] [代码][代码]String url=[代码][代码]"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=12_s8UlgaPk6ZXQb8ONnQhaDsM4zmofZsPJn6J9G5LR22Cw0M6ZYVueQir2ok4nc7cZ0OB2t6ht3mbNT_dWVvbyFKXJczmJYHBYG0eZp6qQmWfA5geZQLLGa_wpJq4opRtAdNoCOkdov2nJVpPCYRGjACAUNC"[代码][代码];[代码][代码] [代码][代码]Map<String, String> map=[代码][代码]new[代码] [代码]HashMap<>();[代码][代码] [代码][代码]map.put([代码][代码]"template_id"[代码][代码],[代码][代码]"7tXGcdQ776bSvHE92yY6Bo4epJ7N6764uf4F1obUods"[代码][代码]);[代码][代码] [代码][代码]map.put([代码][代码]"touser"[代码][代码], [代码][代码]"oqauU03Yql7kdVd-H09pj8lg5psw"[代码][代码]);[代码][代码] [代码][代码]JSONObject packJsonmsg = packJsonmsg([代码][代码]"first"[代码][代码],[代码][代码]"测试"[代码][代码], [代码][代码]"2"[代码][代码], [代码][代码]"测试"[代码][代码], [代码][代码]"2017-5-2 10:49:38"[代码][代码],[代码][代码]"mark"[代码][代码]);[代码][代码] [代码][代码]map.put([代码][代码]"data"[代码][代码],packJsonmsg.toJSONString());[代码][代码] [代码][代码]HttpKit.setCharSet([代码][代码]"UTF-8"[代码][代码]);[代码][代码] [代码][代码]//执行post请求[代码][代码] [代码][代码]String post = HttpKit.post(url, map, packJsonmsg.toJSONString());[代码][代码] [代码][代码]return[代码] [代码]post;[代码][代码] [代码][代码]}[代码][代码] [代码][代码]/**[代码][代码] [代码][代码]* 打包一个模板数据[代码][代码] [代码][代码]* auther:W.Z[代码][代码] [代码][代码]* date:2018年8月8日[代码][代码] [代码][代码]*/[代码][代码] [代码][代码]public[代码] [代码]JSONObject packJsonmsg(String firstString,String keyword11, String keyword21, String keyword31, String keyword41,String remarkString){[代码][代码] [代码][代码]JSONObject json = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]try[代码] [代码]{[代码][代码] [代码][代码]JSONObject keywordfirst = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]keywordfirst.put([代码][代码]"value"[代码][代码], firstString);[代码][代码] [代码][代码]json.put([代码][代码]"first"[代码][代码], keywordfirst);[代码][代码] [代码][代码]JSONObject keyword1 = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]keyword1.put([代码][代码]"value"[代码][代码], keyword11);[代码][代码] [代码][代码]json.put([代码][代码]"keyword1"[代码][代码], keyword1);[代码][代码] [代码] [代码] [代码][代码]JSONObject keyword2 = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]keyword2.put([代码][代码]"value"[代码][代码], keyword21);[代码][代码] [代码][代码]json.put([代码][代码]"keyword2"[代码][代码], keyword2);[代码][代码] [代码][代码]JSONObject keyword3 = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]keyword3.put([代码][代码]"value"[代码][代码], keyword31);[代码][代码]// keyword3.put("color", "#173177");[代码][代码] [代码][代码]json.put([代码][代码]"keyword3"[代码][代码], keyword3);[代码][代码] [代码][代码]JSONObject keyword4 = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]keyword4.put([代码][代码]"value"[代码][代码], keyword41);[代码][代码]// keyword4.put("color", "#173177");[代码][代码] [代码][代码]json.put([代码][代码]"keyword4"[代码][代码], keyword4);[代码][代码] [代码][代码]JSONObject remark = [代码][代码]new[代码] [代码]JSONObject();[代码][代码] [代码][代码]remark.put([代码][代码]"value"[代码][代码], remarkString);[代码][代码]// remark.put("color", "#173177");[代码][代码] [代码][代码]json.put([代码][代码]"keyword4"[代码][代码], remark);[代码][代码] [代码][代码]} [代码][代码]catch[代码] [代码](JSONException e) {[代码][代码] [代码][代码]e.printStackTrace();[代码][代码] [代码][代码]}[代码][代码] [代码][代码]return[代码] [代码]json;[代码][代码] [代码][代码]}[代码] ---------------------------------------------------------------------------------------------------------- 附上步骤 1.首先在调试工具获取accessToken----成功 [图片] 2.第二,获取所有的公众号粉丝 open_id [图片] 3.调用相关api接口,见最上面代码 4.执行失败 [图片] 我的open_id是在微信官方DEBUG地址调试的"https://mp.weixin.qq.com/debug/"取得的应该是对的啊, 有人知道为什么没
2018-08-17自己顶一下,希望有经验的人进来,指点一下,网上找了2个礼拜的问题都没有详细说明的?不懂的也可以提个思路看下是哪里有问题。
微信模板消息消息发送,总是发送2条?有人帮忙看下吗?急!!!最近在做微信公众号的模板消息发送,总是一次发送2条重复消息。 按照微信提供的文档,意思是模板消息发送成功,会有一个事件推送作为是否送达消息的标识,推送到设置的服务器路径下,可以直接回复success或者空字符串,表示告知微信,消息已经传达成功了。 但是,为什么我这么写,没有效果? 代码如下: 1.模板消息发送代码: public function send_message_template() { $wx = new WeixinInterface(); $config['send_data'] = [ 'first' => [ 'value'=>'首页测试接口', //反馈标题 ], 'keyword1' => [ 'value'=> '怎么调用2次?' //反馈内容 ], 'keyword2' => [ 'value'=>date('Y-m-d H:i:s',time()), //反馈时间 ], 'remark' => [ 'value'=>'点击查看详情',//返回链接提示文字 'color'=>'#1b6d85' ] ]; $res = $wx->send_tmplmsg('oHojo0lb6bzbutxx52-nYUpeacg', 'lyVn1mNnFRDGTX5DQkS8J4TZ-Q99MokWsbbjzPcZ3DA', $config); dd($res); } 2.服务器接收到事件推送的代码: //事件推送 public function responseMsg($responseMsg = ['msgType'=>'text','msg'=>'']) { //请求进来 返回success ignore_user_abort(true); ob_start(); //打开输出控制缓冲 echo 'success'; // 返给微信服务器的字符串 header('Connection: close');//关闭http header('Content-Length: ' . ob_get_length()); header('X-Accel-Buffering: no');//nginx ob_end_flush(); ob_flush(); flush(); exit;} 明明我在公众号输入任意文本后,不会报 “该公众号服务异常,请稍后重试”,这个没有报错,不是代表success有成功吗?为什么模板消息发送还是会发送两条???? 而且按照文档里说的,不是会响应5秒吗?我消息刚发送,就直接推送2条,不合理吧?还是同一秒??? [图片] 还有,文档里说的,消息排重?具体怎么实现?最好给个实例,十分感谢!!!
2018-08-07怎么解决的?
客服消息-返回微信success,但客服消息显示 :小程序暂时无法提供服务已经验证通过, 使用的是明文+密文 接受到的信息为: {"signature":"228853fb2a13db989dd6cf822b623ffbbe76e154","timestamp":"1497466436","nonce":"112153535","openid":"olFj50BFk5x1QUtmWnjvC3ugr7Lg","encrypt_type":"aes","msg_signature":"26e30dde0c364ab9f97af8d5fe6a981ebd92d655"} 我返回 echo "success" 客服提示: 无法提供服务,稍后重试 [代码][代码]服务器收到请求必须做出下述回复,这样微信服务器才不会对此作任何处理,并且不会发起重试,否则,将出现严重的错误提示。详见下面说明: [代码]1、直接回复success(推荐方式) 2、直接回复空串(指字节长度为0的空字符串,而不是结构体中content字段的内容为空)[代码][代码] [代码] 问题:不是返回 字符串 'success' 就成功吗?
2018-08-07