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

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

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

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

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

主讲老师:神思者

课程内容:

支付宝用户登陆的Web方法的开发设计和实现,其步骤主要包括引入支付宝参数配置、引入支付宝支付SDK的maven包坐标、编写参数封装类、读取配置文件中的支付宝参数和支付宝用户登陆逻辑控制的实现代码。

课程收获:

1、引入支付宝参数配置
打开后端项目,在配置文件 application.yml 处引入支付宝参数配置,具体配置方式入下:

application:
  wxpay:
    ......
  alipay:
    gateway: 支付宝网关
    microApp:
      app-id: 支付宝小程序APPID
      public-key: 公钥
      private-key: 私钥

2、引入支付宝支付SDK的maven包坐标
https://github.com/alipay/alipay-sdk-java-all 网站获取支付宝支付SDK的maven包坐标,在后端项目的pom文件中进行引入,就引入方式如下:

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

3、编写参数封装类
编写参数封装类 ZfbLoginForm,其主要代码如下:

@Data
@ApiModel(value = "支付宝登录表单")
public class ZfbLoginForm {
    @ApiModelProperty(value = "临时登陆凭证")
    @NotBlank(message="临时登陆凭证不能为空")
    private String authCode;

    @ApiModelProperty(value = "昵称")
    @NotBlank(message="昵称不能为空")
    private String nickname;

    @ApiModelProperty(value = "头像URL")
    @NotBlank(message="头像URL不能为空")
    private String photo;

}

4、读取配置文件中的支付宝参数
新建 ZfbController 接口类,在这个文件内读取配置文件中的支付宝参数,具体实现如下:

    @Value("${application.alipay.microApp.app-id}")
    private String microApp_appId;

    @Value("${application.alipay.microApp.public-key}")
    private String microApp_publicKey;

    @Value("${application.alipay.microApp.private-key}")
    private String microApp_privateKey;

    @Value("${application.alipay.gateway}")
    private String gateway;

5、支付宝用户登陆逻辑控制的实现
使用支付宝SDK,实现支付宝用户登陆逻辑控制,其主要核心代码如下:

    @PostMapping("login")
    @ApiOperation("登录")
    public R login(@RequestBody ZfbLoginForm form) {
        //表单校验
        ValidatorUtils.validateEntity(form);

        AlipayClient client = new DefaultAlipayClient(gateway, microApp_appId,
                microApp_privateKey, "json", "UTF-8", microApp_publicKey,
                "RSA2");
        AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
        request.setGrantType("authorization_code");
        request.setCode(form.getAuthCode());
        try {
            AlipaySystemOauthTokenResponse response = client.execute(request);
            if (response.isSuccess()) {
                String userId = response.getUserId();
                UserEntity user = new UserEntity();
                user.setOpenId(userId);
                QueryWrapper wrapper = new QueryWrapper(user);
                int count = userService.count(wrapper);
                if (count == 0) {
                    user.setNickname(form.getNickname());
                    user.setPhoto(form.getPhoto());
                    user.setType(2);
                    user.setCreateTime(new Date());
                    userService.save(user);
                }
                user = new UserEntity();
                user.setOpenId(userId);
                wrapper = new QueryWrapper(user);
                user = userService.getOne(wrapper);
                long id = user.getUserId();

                String token = jwtUtils.generateToken(id);

                Map<String, Object> result = new HashMap<>();
                result.put("token", token);
                result.put("expire", jwtUtils.getExpire());

                return R.ok(result);
            } else {
                return R.error("登陆授权失败");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return R.error("登陆授权失败");
        }
    }

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

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

評論

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

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

100積分直接送

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

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

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

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

幫助反饋 APP下載

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

公眾號

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

舉報(bào)

0/150
提交
取消