ZERODAY_GI
ZERODAY_GI
2019-08-15 16:46

spring的@Component组件无法注入?

5
  • spring
  • java

需要注入的类


@Component
public class WXConfig implements com.github.wxpay.sdk.WXPayConfig {



    /**
     * 服务器地址
     */
    @Value("${weChat.domain}")
    private String domain;


    /**
     * 商户Id
     */
    @Value("${weChat.mchId}")
    private String mchId;
    /**
     * 支付key
     */
    @Value("${weChat.key}")
    private String key;

    /**
     * appid
     */
    @Value("${weChat.appId}")
    private String appId;

    /**
     * appSecret
     */
    @Value("${weChat.appSecret}")
    private String appSecret;


    @Override
    public String getAppID() {
        return appId;
    }

    @Override
    public String getMchID() {
        return mchId;
    }

    @Override
    public String getKey() {
        return key;
    }

    @Override
    public InputStream getCertStream() {
        return null;
    }

    /**
     * 连接超时时间
     *
     * @return
     */
    @Override
    public int getHttpConnectTimeoutMs() {
        return 10 * 1000;
    }

    /**
     * 读取超时时间
     *
     * @return
     */
    @Override
    public int getHttpReadTimeoutMs() {
        return 10 * 1000;
    }

    public String getMchId() {
        return mchId;
    }

    public String getAppSecret() {
        return appSecret;
    }

    public String getGrantType() {
        return "authorization_code";
    }

    /**
     * 回调地址
     */
    public String getNotifyURL() {
        return this.domain + "/order/wxPayUnifiedNotify";
    }


}

调用的类


/**
 * 微信相关
 *
 * @author tangchao
 */
@Component
public class WxUtil {


    @Autowired
    private WXConfig wxConfig;

    private final Logger LOG = LoggerFactory.getLogger(this.getClass());


    /**
     * 用户登录
     *
     * @param code          前端登录code
     * @param encryptedData 包括敏感数据在内的完整用户信息的加密数据
     * @param iv            加密算法的初始向量
     * @return 返回用户信息 nickName,avatarUrl,gender,unionid,city,province,country,openid
     * @throws Exception
     */

    public JSONObject loginByWeixin(String code, String encryptedData, String iv) throws Exception {
        WxUtil wxUtil = new WxUtil();

        //根据code去调用接口获取用户openid和session_key
        JSONObject json = wxUtil.getSessionKeyAndOpenid(code);
        System.out.println("返回过来的json数据:" + json.toString());
        //会话秘钥
        String sessionkey = json.get("session_key").toString();
        //用户唯一标识
        String openid = json.get("openid").toString();

        //拿到用户session_key和用户敏感数据进行解密,拿到用户信息。
        String decrypts = wxUtil.decrypt(encryptedData, sessionkey, iv, "utf-8");
        JSONObject jsons = JSONObject.parseObject(decrypts);
        jsons.put("openid", openid);
        return jsons;
    }
}

wxConfig报空指针,为什么?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答

为你推荐

换一换