liyiorg / weixin-popular

微信SDK JAVA (公众平台、开放平台、 商户平台、 服务商平台)
Apache License 2.0
2.5k stars 1.06k forks source link

weixin.popular.util.WxaUtil类需要加个方法,针对小程序授权手机号转换成手机号信息 #230

Open zyl-me opened 4 years ago

zyl-me commented 4 years ago

public static WxaUserPhoneInfo decryptUserPhoneInfo(String session_key, String encryptedData, String iv) { try { Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); Key sKeySpec = new SecretKeySpec(Base64.decodeBase64(session_key), "AES"); cipher.init(Cipher.DECRYPT_MODE, sKeySpec, new IvParameterSpec(Base64.decodeBase64(iv))); byte[] resultByte = cipher.doFinal(Base64.decodeBase64(encryptedData)); String data = new String(PKCS7Encoder.decode(resultByte), StandardCharsets.UTF_8); return JsonUtil.parseObject(data, WxaUserPhoneInfo.class); } catch (Exception e) { logger.error("", e); } return null; }

`package weixin.popular.bean.wxa;

public class WxaUserPhoneInfo {

private String phoneNumber;//用户绑定的手机号(国外手机号会有区号)

private String purePhoneNumber;//没有区号的手机号

private String countryCode;//区号

private Watermark watermark;

public String getPhoneNumber() {
    return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {
    this.phoneNumber = phoneNumber;
}

public String getPurePhoneNumber() {
    return purePhoneNumber;
}

public void setPurePhoneNumber(String purePhoneNumber) {
    this.purePhoneNumber = purePhoneNumber;
}

public String getCountryCode() {
    return countryCode;
}

public void setCountryCode(String countryCode) {
    this.countryCode = countryCode;
}

public Watermark getWatermark() {
    return watermark;
}

public void setWatermark(Watermark watermark) {
    this.watermark = watermark;
}

} `

zyl-me commented 4 years ago

public static WxaUserPhoneInfo decryptUserPhoneInfo(String session_key, String encryptedData, String iv) { try { Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); Key sKeySpec = new SecretKeySpec(Base64.decodeBase64(session_key), "AES"); cipher.init(Cipher.DECRYPT_MODE, sKeySpec, new IvParameterSpec(Base64.decodeBase64(iv))); byte[] resultByte = cipher.doFinal(Base64.decodeBase64(encryptedData)); String data = new String(PKCS7Encoder.decode(resultByte), StandardCharsets.UTF_8); return JsonUtil.parseObject(data, WxaUserPhoneInfo.class); } catch (Exception e) { logger.error("", e); } return null; }

zyl-me commented 4 years ago

`package weixin.popular.bean.wxa;

public class WxaUserPhoneInfo {

private String phoneNumber;//用户绑定的手机号(国外手机号会有区号)

private String purePhoneNumber;//没有区号的手机号

private String countryCode;//区号

private Watermark watermark;

public String getPhoneNumber() {
    return phoneNumber;
}

public void setPhoneNumber(String phoneNumber) {
    this.phoneNumber = phoneNumber;
}

public String getPurePhoneNumber() {
    return purePhoneNumber;
}

public void setPurePhoneNumber(String purePhoneNumber) {
    this.purePhoneNumber = purePhoneNumber;
}

public String getCountryCode() {
    return countryCode;
}

public void setCountryCode(String countryCode) {
    this.countryCode = countryCode;
}

public Watermark getWatermark() {
    return watermark;
}

public void setWatermark(Watermark watermark) {
    this.watermark = watermark;
}

} `