设置微信小程序支付失效时间

在抽奖项目中,为防止用户在开奖后支付,本文介绍了如何设置微信小程序支付的2分钟失效时间。通过调用微信支付接口,传入相应参数,确保用户在弹窗后的两分钟内完成支付,否则提示失效。
摘要由CSDN通过智能技术生成

深圳中盼物联网科技有限公司

背景

我们之前做了一个有关抽奖的项目,到了开奖时间之后会自动开奖,这里涉及到了一个问题,当用户参与了抽奖之后前端弹出支付窗口,用户可能不会马上支付一直停留在支付页面,但是我们需要让用户在开奖之前支付或者开奖了之后就不允许用户支付了,这里就需要设置支付的一个失效时间。

比如:设置失效时间为2分钟,在支付窗口弹出来之后的两分钟之内才可以支付,两分钟之后支付的话会提示已经失效。

正文

设置失效时间的功能是微信提供的,你只需要在调起支付接口时,传入相应的参数即可。
当用户点击参与抽奖之后创建订单,然后返回调起支付接口需要的参数给前端,前端弹出支付窗口给用户支付。

话不多说直接贴代码:

	/**
     * @Author Lucas
     * @Email  27555595@qq.com
     * @Description  //TODO	创建订单
     * @Date 2020/8/12 13:26
     **/
	public Map createOrder(//忽略参数...) {
   
		// 忽略创建订单的代码。。。。。。
		// 创建订单成功之后,返回调起支付接口需要的参数给前端。
		Map map = wxSpPay(outTradeNo, amount, openId, startTime, endTime);
		return map;
	}
	/**
     * @Author Lucas
     * @Email  27555595@qq.com
     * @Description  //TODO	生成调起支付接口需要的参数
     * @Date 2020/8/12 13:26
     * @Param orderId   支付流水号
     * @Param payAmount 支付金额
     * @Param openId    用户的openId
     * @Param startTime 支付的开始时间
     * @Param endTime   支付的失效时间
     **/
	public Map wxSpPay(String orderId, double payAmount, String openId, String startTime, String endTime) {
   
			// 生成prepay_id
	        String prepayId = wxPayInitialization(orderId, payAmount, openId, WxRequest.WX_SP_PAY, startTime, endTime);
	        if (StringUtils.isBlank(prepayId)) {
   
	            throw new PayException("签名错误!");
	        }
	        Map<String, String> map = new TreeMap<String, String>();
	        map.put(WxRequest.evokePaymentJSAPI.APPID, wxConfig.getSpAppId());
	        map.put(WxRequest.evokePaymentJSAPI.TIMESTAMP, IdentityUtil.getTimeStamp());
	        map.put(WxRequest.evokePaymentJSAPI.NONCESTR, IdentityUtil.uuid());
	        map.put(WxRequest.evokePaymentJSAPI.PACKAGE, "prepay_id=" + prepayId);
	        map.put(WxRequest.evokePaymentJSAPI.SIGNTYPE, IdentityUtil.SIGN_TYPE_MD5);
	        try {
   
	            map.put(WxRequest.evokePaymentJSAPI.PAYSIGN, IdentityUtil.createSign(map
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值