微信支付 APIv3 Java SDK微信支付 APIv3 Java SDK,里面有详细说明github 地址:https://github.com/wechatpay-apiv3/wechatpay-java注意:开发可以根据这里的说明操作就好了,下面我写一下可能大家不理解的点 。
com.github.wechatpay-apiv3:wechatpay-java代码中的配置-例如:
/** 商户号 */public static String merchantId = "1901174254";/** 商户API私钥路径 */public static String privateKeyPath = "apiclient_key.pem";/** 商户证书序列号 */public static String merchantSerialNumber = "54776TTTF8F77EXXX3641FAB5F940FII11C65347";/** 微信支付平台证书路径 */public static String wechatPayCertificatePath = "wechatpay_3A4AF69999DF01F39BB08C21C1C29B6AA17C074N.pem";/** 微信支付 APIv3 密钥 *//** 如果微信支付平台证书,已经下载好了 , apiV3Key 就不需要了 */public static String apiV3Key = "B3AQsC17C6UFooIRCAaXRUvaq8PInN60";
如果微信支付平台证书,已经下载好了,github里这个代码就不用看了 。package com.wechat.pay.java.service;import com.wechat.pay.java.core.Config;import com.wechat.pay.java.core.RSAConfig;import com.wechat.pay.java.service.certificate.CertificateService;import java.nio.charset.StandardCharsets;import java.security.cert.X509Certificate;import java.util.List;/** 下载微信支付平台证书为例 */public class QuickStart {/** 商户号 */public static String merchantId = "";/** 商户API私钥路径 */public static String privateKeyPath = "";/** 商户证书序列号 */public static String merchantSerialNumber = "";/** 微信支付平台证书路径 */public static String wechatPayCertificatePath = "";/** 微信支付 APIv3 密钥 */public static String apiV3Key = "";public static void main(String[] args) {Config config =new RSAConfig.Builder().merchantId(merchantId).privateKeyFromPath(privateKeyPath).merchantSerialNumber(merchantSerialNumber).wechatPayCertificatesFromPath(wechatPayCertificatePath).build();CertificateService certificateService = new CertificateService.Builder().config(config).build();List<X509Certificate> certificates =certificateService.downloadCertificate(apiV3Key.getBytes(StandardCharsets.UTF_8));}}
支付的第一步:微信支付前需要拿到预支付id(prepayId),才能支付,所有支付的第一步是预支付import com.wechat.pay.java.core.Config;import com.wechat.pay.java.core.RSAConfig;import com.wechat.pay.java.service.payments.jsapi.JsapiService;import com.wechat.pay.java.service.payments.jsapi.model.Amount;import com.wechat.pay.java.service.payments.jsapi.model.Payer;import com.wechat.pay.java.service.payments.jsapi.model.PrepayRequest;import com.wechat.pay.java.service.payments.jsapi.model.PrepayResponse;public class JsapiExample {public static void main(String[] args) {Config config =new RSAConfig.Builder().merchantId(merchantId).privateKeyFromPath(privateKeyPath).merchantSerialNumber(merchantSerialNumber).wechatPayCertificatesFromPath(wechatPayCertificatePath).build();JsapiService service = new JsapiService.Builder().config(config).build();PrepayRequest request = new PrepayRequest();Amount amount = new Amount();amount.setTotal(100);request.setAmount(amount);request.setAppid("wxa9d9651ae******");request.setMchid("190000****");request.setDescription("测试商品标题");request.setNotifyUrl("https://notify_url");request.setOutTradeNo("out_trade_no_001");Payer payer = new Payer();payer.setOpenid("oLTPCuN5a-nBD4rAL_fa********");request.setPayer(payer);PrepayResponse response = service.prepay(request);System.out.println(response.getPrepayId());}}
还需要知道的:微信平台给的用户openid,并不是一个用户的唯一ID,不能多个小程序同时使用 。也就是说,在小程序A中拿到的用户openid 和 在小程序B中拿到的用户openid 是不一样的 。
【微信支付v3接口的 官方 Java SDK】
推荐阅读
- 2022支付宝蚂蚁庄园8月28日答案
- 蜘蛛的丝是从哪里吐出来的?
- 睡觉时磨牙是因为肚子里有虫吗?
- 支付宝蚂蚁庄园8月29答案
- 驱动开发:内核封装WSK网络通信接口
- 支付宝小鸡今日答题答案
- 为什么剪指甲时不会感到疼?
- 哪种级别的橄榄油营养价值更高?
- 支付宝蚂蚁庄园今天正确答案8.31
- 删除的微信好友怎么找回