收藏
回答

jsapi调起支付失败提示支付验证签名失败?

	wxPayInvoke(payRes, openid) {

				var url = window.location.href;

				let that = this

				//获取js签名

				wx.config({

					debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

					appId: payRes.data.appId, // 必填,公众号的唯一标识

					timestamp: payRes.data.timeStamp, // 必填,生成签名的时间戳

					nonceStr: payRes.data.nonceStr, // 必填,生成签名的随机串

					signature: payRes.data.paySign, // 必填,签名

					jsApiList: ['chooseWXPay'], // 必填,需要使用的JS接口列表

					openId: openid

				});




				//发起微信支付

				wx.ready(function() {

					wx.chooseWXPay({

						appId: payRes.data.appId,

						timeStamp: payRes.data.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符

						nonceStr: payRes.data.nonceStr, // 支付签名随机串,不长于 32

						package: payRes.data.packageVal,

						signType: 'RSA', 
						paySign: payRes.data.paySign, // 支付签名

						success: function(res) {

							uni.showToast({

								icon: 'none',

								title: '支付成功'

							})

						},

						cancel: function(res) {

							//提示引用的是mint-UI里toast




							setTimeout(() => {

								uni.showToast({

									icon: 'none',

									title: '已取消支付'

								})




							}, 2000)

							//window.history.go(-1) //跳转到上一页

						},

						fail: function(res) {

							uni.showToast({

								icon: 'none',

								title: '支付失败,请重试'

							})

							// window.history.go(-1) //跳转到上一页

							// setTimeout(() => {

							// 	uni.showToast({

							// 		icon: 'none',

							// 		title: '支付失败,请重试'

							// 	})

							// }, 2000)

						}

					});

				});

			},

			上述是我uniapp的代码


下面是java的
           com.wechat.pay.java.service.payments.jsapi.model.PrepayRequest request = new PrepayRequest();
            // 订单号
            String orderNo = getOrderNo();
            // 元转换为分
            Integer totalAmountInFen = convertYuanToFen(totalAmount); // 假设金额为100元
            // 设置金额
            com.wechat.pay.java.service.payments.jsapi.model.Amount amount = new Amount();
            amount.setTotal(totalAmountInFen);
            amount.setCurrency("CNY");
            request.setAmount(amount);
            // 设置公众号或小程序的 AppID
            request.setAppid(wxPayProperties.getAppId());
            // 设置商户号
            request.setMchid(wxPayProperties.getMchId());
            // 设置支付者信息
            com.wechat.pay.java.service.payments.jsapi.model.Payer payer = new Payer();
            payer.setOpenid(openid);
            request.setPayer(payer);
            // 设置商品描述
            request.setDescription(tPaidGroup.getGroupContent());
            // 设置商品标记(可选)
            request.setGoodsTag(tPaidGroup.getGroupName());
            // 设置回调地址
            request.setNotifyUrl(wxPayProperties.getNotifyUrl());

            // 设置商户系统内部订单号
            request.setOutTradeNo(orderNo);

            // 调用接口
            PrepayWithRequestPaymentResponse response = service.prepayWithRequestPayment(request);
            return response;
之后提示我

回答关注问题邀请回答
收藏

1 个回答

  • Memory (私信不回复)
    Memory (私信不回复)
    03-27

    换WeixinJSBridge.invoke方法

    03-27
    有用 1
    回复 2
    • 王迪冉
      王迪冉
      03-28
      OKOK  同事用的wx.的方法出问题了,哥们我支付后收不到回调是怎么办
      03-28
      回复
    • Memory (私信不回复)
      Memory (私信不回复)
      03-28回复王迪冉
      V3?先检查是否有设置V3key,地址外网是否可以访问
      03-28
      回复
登录 后发表内容