支付宝扫码登录

    @Value("${alipay.app_id}")
    private String APP_ID_PROD;//app_id
    @Value("${alipay.app_public_key}")
    private String ALIPAY_PUBLIC_KEY;//支付宝公钥
    @Value("${alipay.app_private_key}")
    private String APP_PRIVATE_KEY;//支付宝私钥
    /**
     * Alipay客户端
     */
    private AlipayClient alipayClient;

    /**
     * 个人用户的
     */
    private static final String ALIPAY_BORDER_PROD = "https://openapi.alipay.com/gateway.do";
    /**
     * 沙箱
     */
    private static final String ALIPAY_BORDER_DEV = "https://openapi-sandbox.dl.alipaydev.com/gateway.do";

    @Override
    public void afterPropertiesSet() throws Exception {
        alipayClient = new DefaultAlipayClient(ALIPAY_BORDER_PROD, APP_ID_PROD, APP_PRIVATE_KEY, "json", "UTF-8", ALIPAY_PUBLIC_KEY, "RSA2");
    }
public void getOpenId(String code, HttpServletRequest httpServletRequest) throws Exception  {
        String accessToken = getAccessToken(code());
        if (!StringUtil.isNullOrEmpty(accessToken)) {
            //获取用户openId
            String openId = getUserInfoByToken(accessToken);

            //todo 开始你的后续操作
            
    }
}

 只能获取openid 无法获取手机号

public String getAccessToken(String authCode) {
        AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
        request.setCode(authCode);
        request.setGrantType("authorization_code");
        try {
            AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClient.execute(request);
            return oauthTokenResponse.getAccessToken();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
public String getUserInfoByToken(String token) {
        AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest();
        try {
            AlipayUserInfoShareResponse response = alipayClient.execute(request, token);
            if (response.isSuccess()) {
                return response.getOpenId();
            }
            System.out.println("根据 access_token获取用户信息失败!");
           return null;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

 测试获取code

https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=商户的APPID&scope=auth_user&redirect_uri=回调url

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

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值