微信实现APP下单接口(微信支付开发API V3接口调用)

准备工作 :

appid:商户appid

商户证书:商户可登录,在【账户中心】->【API安全】目录下载证书

证书文件名 :apiclient_key.pem

支付证书key:(注意,这里不是下载的那个证书)需要进行一次处理

(网络不好可以通过云盘下载)链接: https://pan.baidu.com/s/1BwJ3DnQ9nBd39L5WPOXj3g?pwd=xqk9 提取码: xqk9 复制这段内容后打开百度网盘手机App,操作更方便哦

下载好后在和他同一目录下执行(为了方便)

$ java -jar CertificateDownloader-1.1.jar -f apiclient_key.pem -k 证书解密密钥 -m 商户号-o 证书输出地址 -s 证书号

开始工作:

引入maven

<dependency>
			<groupId>com.github.wechatpay-apiv3</groupId>
			<artifactId>wechatpay-apache-httpclient</artifactId>
			<version>0.4.7</version>
		</dependency>

编写代码:

/**
     * 获取私钥。
     *
     * @param filename 私钥文件路径  (required)
     * @return 私钥对象
     */
    public static PrivateKey getPrivateKey(String filename) throws Exception {
        String content = new String(Files.readAllBytes(Paths.get(filename)), "utf-8");
        try {
            String privateKey = content.replace("-----BEGIN PRIVATE KEY-----", "")
                    .replace("-----END PRIVATE KEY-----", "")
                    .replaceAll("\s+", "");

            KeyFactory kf = KeyFactory.getInstance("RSA");
            return kf.generatePrivate(
                    new PKCS8EncodedKeySpec(Base64.getDecoder().decode(privateKey)));
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("当前Java环境不支持RSA", e);
        } catch (InvalidKeySpecException e) {
            throw new RuntimeException("无效的密钥格式");
        }
    }

执行替换好参数执行pay方法即可

经验分享 程序员 微信小程序 职场和发展