博雅网站html_人力资源和社会保障部官网_泰州高端模板建站_微信小程序快捷方式 public class WechatPayConfig {/*** 应用编号*/private String appId;/*** 商户号*/private String mchId;/*** 服务商商户号*/private String slMchId;/*** APIv2密钥*/private String apiKey;/*** APIv3密钥*/private String apiV3Key;/*** 支付通知回调地址*/private String notifyUrl;/*** 退款回调地址*/private String refundNotifyUrl;/*** API 证书中的 key.pem*/private String keyPemPath;/*** 商户序列号*/private String serialNo;/*** 微信支付V3-url前缀*/private String baseUrl;/*** 获取商户的私钥文件* @param keyPemPath* @return*/public PrivateKey getPrivateKey(String keyPemPath){InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(keyPemPath);if(inputStream==null){throw new RuntimeException("私钥文件不存在");}return PemUtil.loadPrivateKey(inputStream);}/*** 获取证书管理器实例* @return*/@Beanpublic Verifier getVerifier() throws GeneralSecurityException, IOException, HttpCodeException, NotFoundException {log.info("获取证书管理器实例");//获取商户私钥PrivateKey privateKey = getPrivateKey(keyPemPath);//私钥签名对象PrivateKeySigner privateKeySigner = new PrivateKeySigner(serialNo, privateKey);//身份认证对象WechatPay2Credentials wechatPay2Credentials = new WechatPay2Credentials(mchId, privateKeySigner);// 使用定时更新的签名验证器,不需要传入证书CertificatesManager certificatesManager = CertificatesManager.getInstance();certificatesManager.putMerchant(mchId,wechatPay2Credentials,apiV3Key.getBytes(StandardCharsets.UTF_8));return certificatesManager.getVerifier(mchId);}/*** 获取支付http请求对象* @param verifier* @return*/@Bean(name = "wxPayClient")public CloseableHttpClient getWxPayClient(Verifier verifier) {//获取商户私钥PrivateKey privateKey = getPrivateKey(keyPemPath);WechatPayHttpClientBuilder builder = WechatPayHttpClientBuilder.create().withMerchant(mchId, serialNo, privateKey).withValidator(new WechatPay2Validator(verifier));// 通过WechatPayHttpClientBuilder构造的HttpClient,会自动的处理签名和验签,并进行证书自动更新return builder.build();}/*** 获取HttpClient,无需进行应答签名验证,跳过验签的流程*/@Bean(name = "wxPayNoSignClient")public CloseableHttpClient getWxPayNoSignClient(){//获取商户私钥PrivateKey privateKey = getPrivateKey(keyPemPath);//用于构造HttpClientWechatPayHttpClientBuilder builder = WechatPayHttpClientBuilder.create()//设置商户信息.withMerchant(mchId, serialNo, privateKey)//无需进行签名验证、通过withValidator((response) -> true)实现.withValidator((response) -> true);// 通过WechatPayHttpClientBuilder构造的HttpClient,会自动的处理签名和验签,并进行证书自动更新return builder.build();}">

室内设计软件免费

霸气的建筑公司名字、集团网站建设公司流程、永久使用、不限域名、东莞网站建设哪家技术好

重庆网站建设服务商?

博雅网站html_人力资源和社会保障部官网_泰州高端模板建站_微信小程序快捷方式

公司邮箱的正确格式杭州今天最新消息济南seo的网站中文域名怎么注册多少费用空间站最新消息低代码开发平台的设计与实现seo系统源码出售北京商场客流量排行福州网站建设案例分析北京商场需要48小时核酸吗产品彩页设计用什么软件网上接单的网站推广网课赚佣金青岛视频制作公司宜兴专业网站建设公司简述什么是网页淮南日报官网常州广告公司建行app下载手机银行网上手机商城系统甘肃兰州简介建筑企业管理平台fba物流公司5g站长工具seo综合查询中央广播电视总台2023主持人大赛唐山软件开发公司站长资源平台发布需求的平台泰安招聘人才网最新招聘广州app兰州市网络科技有限公司

猜你喜欢

  • 友情链接:
  • 免费下载文件的网站 网站策划书内容不包括 网站在线客服系统如何配置 企业网站可分为哪四种类型 互联网创业项目的服务商 徐州工程交易网官网