支付宝生活号对接-----(二)获取用户信息

记录一下支付宝获取用户的信息

接着上一次支付宝授权之后 我们获取一下用户信息

依旧是用支付宝沙箱环境,但是我用沙箱获取的是登录用户(企业)的营业执照,获取用户信息是同理的

下面这用servlet写的 

https://openapi.alipaydev.com/gateway.do 沙箱接口地址

https://openapi.alipay.com/gateway.do 正式接口地址

  private String resultCode(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String code = null;
        String openid = null;
        String  state= request.getParameter("state");
        code = request.getParameter("auth_code");// 用户授权码
        String cretNo=null;
    
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do",
                AlipayServiceEnvConstantsfs2.APP_ID,
                AlipayServiceEnvConstantsfs2.PRIVATE_KEY, "json", AlipayServiceEnvConstantsfs2.CHARSET, AlipayServiceEnvConstantsfs2.ALIPAY_PUBLIC_KEY, "RSA2");
                
    /*    AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do",
                AlipayServiceEnvConstantsfs2.APP_ID,
                AlipayServiceEnvConstantsfs2.PRIVATE_KEY, "json", AlipayServiceEnvConstantsfs2.CHARSET, AlipayServiceEnvConstantsfs2.ALIPAY_PUBLIC_KEY, "RSA2");
     */
        AlipaySystemOauthTokenRequest tokenRequest = new AlipaySystemOauthTokenRequest();
        tokenRequest.setCode(code);
        tokenRequest.setGrantType(AlipayServiceEnvConstantsfs2.GRANT_TYPE);
        try {

          //  第一步 获取accessToken  令牌
            AlipaySystemOauthTokenResponse oauthTokenResponse = alipayClient.execute(tokenRequest);
            openid = oauthTokenResponse.getUserId();
            String accessToken = oauthTokenResponse.getAccessToken();
            System.out.println("accessToken==============="+accessToken);

         // 第二步  根据令牌去请求接口  获取用户信息
            AlipayClient alipayClient1 = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do",
                    AlipayServiceEnvConstantsfs2.APP_ID,
                    AlipayServiceEnvConstantsfs2.PRIVATE_KEY, "json", AlipayServiceEnvConstantsfs2.CHARSET,
                    AlipayServiceEnvConstantsfs2.ALIPAY_PUBLIC_KEY, "RSA2");
            AlipayUserInfoShareRequest request1 = new AlipayUserInfoShareRequest();
            AlipayUserInfoShareResponse response1 = alipayClient.execute(request1,accessToken);
            if(response1.isSuccess()){
                 System.out.println("调用成功");
                 if((response1.getIsCertified()).equals("T")) {
                     if(response1.getCertType()!=null || response1.getCertType()!="") {
                         //获取用户信息
                     }
                  }
                } else {
                System.out.println("调用失败");
                }
        } catch (AlipayApiException e) {
            //处理异常
            e.printStackTrace();
        }
         String url=state+"?cretNo="+cretNo;//H5要用的参数 比如用户id
         String furl="redirect:"+H5回调地址
     //   System.err.println("重定向地址: "+furl);
         return furl;
    }

 

 

 

 


/**
 * 支付宝服务窗环境常量(demo中常量只是参考,需要修改成自己的常量值)
 *   沙箱
 * @author taixu.zqq
 * @version $Id: AlipayServiceConstants.java, v 0.1 2014年7月24日 下午4:33:49 taixu.zqq Exp $
 */
public class AlipayServiceEnvConstantsfs2 {

    /**支付宝公钥-从支付宝生活号详情页面获取*/
    public static final String ALIPAY_PUBLIC_KEY = "支付宝公钥";
                                                    
    /**签名编码-视支付宝服务窗要求*/
    public static final String SIGN_CHARSET      = "GBK";

    /**字符编码-传递给支付宝的数据编码*/
    public static final String CHARSET           = "GBK";

    /**签名类型-视支付宝服务窗要求*/
    public static final String SIGN_TYPE         = "RSA2";
    
    /**开发者账号PID*/  沙箱
    public static final String PARTNER           = "2088431776038131";

    /** 服务窗appId  */沙箱
    //TODO !!!! 注:该appId必须设为开发者自己的生活号id  
    public static final String APP_ID            = "2016092500594515";


    //私钥
    public static final String PRIVATE_KEY       = '自己生成的私钥';
    
    /**支付宝网关*/
    public static final String ALIPAY_GATEWAY    = "https://openapi.alipaydev.com/gateway.do";

    /**授权访问令牌的授权类型*/
    public static final String GRANT_TYPE        = "authorization_code";
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值