第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

【九月打卡】第8天 Java支付全家桶 企業(yè)級(jí)各類支付手段一站式解決方案(5-5)

標(biāo)簽:
活動(dòng)

课程名称:Java支付全家桶 企业级各类支付手段一站式解决方案

主讲老师:神思者

课程内容:

今天课程学习的主要知识点内容包括:
编写后端Controller类的的接口方法,使用 Swagger 调试后端接口。

课程收获:

1、编写后端Controller类的的接口方法,其主要代码如下:

    @Login
    @PostMapping("/nativeAppPayOrder")
    @ApiModelProperty("小程序付款")
    public R nativeAppPayOrder(@RequestBody PayOrderForm form, @RequestHeader HashMap<String, String> header) {
        ValidatorUtils.validateEntity(form);
        String token = header.get("token");
        long userId = Convert.toLong(jwtUtils.getClaimByToken(token).getSubject());
        long orderId = form.getOrderId();

        OrderEntity order = orderService.getOne(
                Wrappers.<OrderEntity>lambdaQuery()
                        .eq(OrderEntity::getId, orderId)
                        .eq(OrderEntity::getUserId, userId)
                        .last("limit 1")
        );
        if (null == order) {
            return R.error("不是有效订单");
        }
        String amount = Convert.toStr(order.getAmount().multiply(new BigDecimal(100)).intValue());

        // 其他校验
        // 验证购物券是否有效
        // 验证团购活动是否有效

        // 向微信平台发送请求,创建支付订单
        try {
            String code = IdUtil.fastSimpleUUID();
            WXPay wxPay = new WXPay(myWXPayConfig);
            Map<String ,String> map = new HashMap<>();
            map.put("out_trade_no", code);
            map.put("total_fee", amount);
            map.put("attach", "附加数据-xx分店");
            map.put("body", "订单备注-NATIVE支付测试");
            map.put("nonce_str", WXPayUtil.generateNonceStr());
            map.put("spbill_create_ip", "127.0.0.1");
            map.put("notify_url", "https://haiten.virs.top/renren-fast/app/wx/recievePayMessage");
            map.put("trade_type", "NATIVE");
            Map<String, String> result = wxPay.unifiedOrder(map);
            String prepayId = result.get("prepay_id");
            if (null != prepayId && 0 != prepayId.length()) {
                order.setCode(code);
                order.setPrepayId(prepayId);
                orderService.updateById(order);

                String codeUrl = result.get("code_url");
                return R.ok().put("codeUrl", codeUrl);
            } else {
                return R.error("微信支付模块故障");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return R.error("微信支付模块故障");
        }
    }

关键点:
(1)Native 支付不需要传 openid 字段;
(2)支付方式传参的时候,需要改成 NATIVE,需要注意的是这里只能填大写的 NATIVE,不能填小写或驼峰形式;
(3)关于数字签名,xwPay的方法里面以及该封装了数据签名的实现,所以不需要额外做数据签名,如果需要手工数据签名,则应该使用 WXPayUtil.generateSignatrue(map, key) 方法生成;
(4)注意需要保存接口返回的微信支付id: prepay_id;
(5)提取接口放回里面的 code_url,后续用于生成二维码图片返回给前端;

2、使用 Swagger 调试后端接口
关键点:
(1)Swagger 页面的路径:http://localhost:8080/renren-fast/swagger-ui.html
(2)先使用 Swagger 调用登录接口,获取返回的 token,并保存到页面顶端的 Authorize 处,让 Swagger 记住令牌;
(3)调试后端的 Native 支付订单接口;

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消