您的位置:首页 > 新闻 > 热点要闻 > 哪学网页设计好_南山老品牌网站建设_seo建站是什么_百度快照的作用是什么

哪学网页设计好_南山老品牌网站建设_seo建站是什么_百度快照的作用是什么

2025/2/25 1:56:03 来源:https://blog.csdn.net/u012643122/article/details/142765973  浏览:    关键词:哪学网页设计好_南山老品牌网站建设_seo建站是什么_百度快照的作用是什么
哪学网页设计好_南山老品牌网站建设_seo建站是什么_百度快照的作用是什么

JS:

					request.post('/vip/pay', {//这是自己写的java支付接口id: this.vipInfo.id,payWay: 'alipay-mini'}).then((res) => {let success = (res2) => {//前端的支付成功回调函数this.$refs.popup.close();// 支付成功刷新当前页面setTimeout(() => {this.doGetVipInfo(this.vipInfo.id);}, 2500)}let fail = (res) => {//支付失败,进行提示util.showToast(this.$t('pay.fail'))}let payObj = {"provider": "alipay","orderInfo": res.data.tradeNo,success,fail};console.log("支付>>>" + JSON.stringify(payObj));uni.requestPayment(payObj);//uniapp提供的统一支付接口,可以在支付宝小程序内调起支付宝支付界面}).finally(() => {})

Java:

    /*** 会员卡支付*/@PostMapping("/pay")@RepeatSubmitpublic R<Object> pay(@RequestBody AppVipPayVo pay) {long tradeId = payTradeService.save(pay.payWay(), pay.getPayAmount(), pay.getVipId(), TradeTypeEnum.VIP.getCode());//创建自己的交易订单if (StrUtil.equals(payWay, PayWayEnum.MIN_ALIPAY.getCode()) || StrUtil.equals(payWay, PayWayEnum.ALIPAY.getCode())) {return aliPayRequest(tradeId, pay.getPayAmount(), pay.payWay(), "https://xxx.xxx.xxx/vip/alipayCallback","会员卡");}return R.fail();}//发起支付宝支付private Object aliPayRequest(Long tradeId, BigDecimal payMoney, String payWay, String notifyUrl, String subject) {AliPayConfig ali = new AliPayConfig();//获取商户的支付配置AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", ali.getAppId(), ali.getPrivateSign(), "json", StandardCharsets.UTF_8.name(), ali.getPublicKey(), ali.getSignType());if (StrUtil.equals(payWay, PayWayEnum.MIN_ALIPAY.getCode())) {//支付宝小程序AlipayTradePayModel bizContent = new AlipayTradePayModel();bizContent.setBuyerOpenId(LoginHelper.getLoginUser().getToken());bizContent.setOutTradeNo(String.valueOf(tradeId));//存入我们自己的流水号bizContent.setTotalAmount(String.valueOf(payMoney));bizContent.setSubject(subject);AlipayTradeCreateRequest aliRequest = new AlipayTradeCreateRequest();aliRequest.setNotifyUrl(notifyUrl);aliRequest.setBizModel(bizContent);try {AlipayTradeCreateResponse response = alipayClient.execute(aliRequest);if (response.isSuccess()) {return response;}throw new ServiceException(response.getSubMsg());} catch (AlipayApiException e) {throw new ServiceException(e.getErrMsg());}}if (StrUtil.equals(payWay, PayWayEnum.ALIPAY.getCode())) {//支付宝AlipayTradeAppPayModel bizContent = new AlipayTradeAppPayModel();bizContent.setOutTradeNo(String.valueOf(tradeId));//存入我们自己的流水号bizContent.setTotalAmount(String.valueOf(payMoney));bizContent.setSubject(subject);AlipayTradeAppPayRequest aliRequest = new AlipayTradeAppPayRequest();aliRequest.setNotifyUrl(notifyUrl);aliRequest.setBizModel(bizContent);try {AlipayTradeAppPayResponse response = alipayClient.sdkExecute(aliRequest);if (response.isSuccess()) {return response.getBody();}throw new ServiceException(response.getSubMsg());} catch (AlipayApiException e) {throw new ServiceException(e.getErrMsg());}}return R.ok();}/*** 回调*/@PostMapping("/alipayCallback")@SaIgnorepublic String alipayCallback(HttpServletRequest request) {Map<String, String> params = ServletUtils.getParamMap(request);StaticLog.info("支付宝支付回调={}", JSONObject.toJSONString(params));String outTradeNo = params.get("out_trade_no");//拿到我们自己的流水号String tradeNo = params.get("trade_no");String tradeStatus = params.get("trade_status");String gmtPayment = params.get("gmt_payment");LambdaQueryWrapper<PayTrade> eq = Wrappers.<PayTrade>lambdaQuery().eq(PayTrade::getId, outTradeNo).isNull(PayTrade::getOutTradeNo).eq(PayTrade::getTradeStatus, TradeStatusEnum.WAIT_PAY.getCode());PayTrade trade = PayTradeMapper.selectOne(eq);if (ObjectUtil.isNull(trade) || !"TRADE_SUCCESS".equals(tradeStatus)) {StaticLog.info("支付信息不存在或支付失败");return "failure";}AliPayConfig ali = new AliPayConfig();//获取商户的支付配置boolean signVerified = AlipaySignature.rsaCheckV1(params, ali.getPublicKey(),StandardCharsets.UTF_8.name(), ali.getSignType());if (!signVerified) {StaticLog.info("验签失败");return "failure";}long orderId = trade.getOrderId();//这个是业务订单ID,也就是VIP表的IDlong payTime = DateUtil.parse(gmtPayment, NORM_DATETIME_FORMATTER).getTime() / 1000;paySuccess(tradeNo, payTime, outTradeNo, orderId, trade.getUserId());return "success";}//支付成功业务逻辑private void paySuccess(String tradeNo, long payTime, String outTradeNo, long orderId, Long userId) {//修改订单状态payTradeMapper.update(null, new LambdaUpdateWrapper<PayTrade>().set(PayTrade::getTradeStatus, TradeStatusEnum.PAY_SUCCESS.getCode()).set(PayTrade::getOutTradeNo, tradeNo).set(PayTrade::getPayTime, payTime).set(PayTrade::getHasNotify, true).eq(PayTrade::getId, outTradeNo));}

pom.xml:

        <dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.39.150.ALL</version></dependency>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com