收藏
回答

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}&timestamp={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都是没有问题,但还是不行。有几个疑问

  1. 统一下单返回数据中有sign字段,调起微信支付是直接用这个签名吗

  2. 如果1的问题不成立,那么返回数据中的nonce_str字段值是要参与重新签名,还是使用发起统一下单请求的nonce_str值,或者是重新随机

  3. 参与重新签名的字段是否是这六个:appid,noncestr,package,partnerid,prepayid,timestamp,key

忘有经验的大佬,官方指导下

最后一次编辑于  03-14  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

1 个回答

  • 丹丹
    丹丹
    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

    03-14
    赞同
    回复 6
    • UnityCoyote
      UnityCoyote
      03-14

      感谢回复,我是App的支付,跟小程序的支付重签的参数还是有区别的,这个noncestr字段我也尝试自己随机和用统一下单接口返回的noncestr参与重签,也还是不行


      我看你的错误,应该是你在请求的时候缺少这个total_fee总金额值,也就是要支付的金额总价格。

      03-14
      回复
    • 丹丹
      丹丹
      03-14回复UnityCoyote

      小程序 wx.requestPayment 这个是不用带金额的,金额在统一下单那边就带了的。所以很郁闷。 抱歉没注意到你是app支付


      03-14
      回复
    • 丹丹
      丹丹
      03-14回复UnityCoyote

      https://blog.csdn.net/chenan0408/article/details/79043615   百度了一个App支付返回-1的,你看看有没有帮助

      03-14
      回复
    • UnityCoyote
      UnityCoyote
      03-14回复丹丹

      好的,谢谢,看了下,也试过,还不行,有点尴尬

      03-14
      回复
    • 🤔
      🤔
      03-21

      你好,你们有么有遇到过在商户平台更换了应用签名之后,调用支付一直返回-1的问题呢。望解答!谢谢

      03-21
      回复
    查看更多(1)