SDK和开发工具 您所在的位置:网站首页 postman保存路径 SDK和开发工具

SDK和开发工具

2023-04-30 06:56| 来源: 网络整理| 查看: 265

为了便于开发者使用国密,微信支付提供了 Java SDK 和一系列开发工具。

# Java SDK

微信支付 Java SDK(wechatpay-java (opens new window))已支持国密。

# 安装 # Gradle 项目

在你的构建文件中加入以下依赖

1implementation 'com.github.wechatpay-apiv3:wechatpay-java:0.2.1'2implementation 'com.github.wechatpay-apiv3:wechatpay-java-shangmi:0.2.1'# Maven 项目

在你的 POM 文件中加入以下依赖

12 com.github.wechatpay-apiv33 wechatpay-java4 0.2.1567 com.github.wechatpay-apiv38 wechatpay-java-shangmi9 0.2.110# 示例代码

先使用 SMConfig 初始化具体的业务服务,再调用服务提供的业务接口。国密的签名、验签会注入请求的各个环节。

1package com.wechat.pay.java.service;23import com.wechat.pay.java.core.Config;4import com.wechat.pay.java.shangmi.SMConfig;5import com.wechat.pay.java.service.payments.jsapi.JsapiService;6import com.wechat.pay.java.service.payments.jsapi.model.QueryOrderByIdRequest;7import com.wechat.pay.java.service.payments.model.Transaction;8910public class QuickStart {1112 /** 商户号 */13 public static String merchantId = "";14 /** 国密的商户API私钥路径 */15 public static String privateKeyPath = "";16 /** 国密的商户API证书序列号 */17 public static String merchantSerialNumber = "";18 /** 国密的微信支付平台证书路径 */19 public static String wechatPayCertificatePath = "";20 /** 微信支付 APIv3 密钥 */21 public static String apiV3Key = "";2223 public static void main(String[] args) {24 Config config =25 new SMConfig.Builder()26 .merchantId(merchantId)27 .privateKeyFromPath(privateKeyPath)28 .merchantSerialNumber(merchantSerialNumber)29 .addWechatPayCertificateFromPath(wechatPayCertificatePath)30 .build();31 JsapiService service = new JsapiService.Builder().config(config).build();32 QueryOrderByIdRequest request = new QueryOrderByIdRequest();33 // 设置业务参数34 request.setMchid("****");35 request.setTransactionId("420***");36 Transaction transaction = service.queryOrderById(request);37 }38}

更多信息请参考 shangmi/README.md (opens new window)。

# Postman 脚本

微信支付 APIv3 Postman 脚本 (opens new window) 已支持国密。

你可以

Fork 方式导入脚本 (opens new window)(推荐) 本地导入脚本 (opens new window)

并参考 国密-商户参数模版 (opens new window) 在环境变量中设置参数

shangmi:值为 true。 mchid:必填,商户号。 merchant_serial_no:必填,商户 API 证书序列号。 apiclient_key.pem:必填,PEM 格式的商户 API 私钥。 pubkey.pem:必填,PEM 格式的商户 API 国密公钥。

这样便能使用 Postman 发送国密请求了。你不用自行计算签名,脚本会使用国密 SM2 计算签名。

# 国密工具

我们提供了签名验签和加解密工具,供商户进行本地验证 SM2/SM3/SM4 的计算结果。下载地址如下:

Windows (opens new window) MacOS (opens new window) # 如何从 PEM 文件导出16进制的密钥

国密工具只接收16进制的私钥和公钥。PKCS8 编码的国密私钥 PEM 文件,包含了私钥和公钥。我们需从中提取16进制的私钥和公钥。

openssl 1.1.1 支持了国密私钥证书,我们可以使用它解析私钥 PEM 文件。

1➜ openssl ec -in apiclient_key.pem -text -noout2read EC key3Private-Key: (256 bit)4priv:5 fd:4f:52:6b:3e:5c:78:31:90:84:50:4c:7f:f7:07:6 22:1d:be:ab:92:f3:be:1a:db:f0:bd:92:23:8b:0f:7 51:1f8pub:9 04:7b:cd:47:f7:5e:a1:9d:04:c0:a7:2b:4d:a7:0f:10 57:dd:1b:3f:93:37:cc:5d:d1:24:18:81:b9:13:43:11 19:39:bf:69:a5:5e:f6:b4:67:10:c7:e1:72:45:23:12 d0:f6:46:dd:69:4d:24:83:97:6f:6e:85:0d:46:63:13 78:fa:8b:2f:7e14ASN1 OID: SM2

如图所见,priv 为16进制私钥,pub 为16进制公钥。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有