- 使用微信的sdk掉用商户号转账到用户零钱接口报错?
com.wechat.pay.java.core.exception.ServiceException: Wrong HttpStatusCode[403] httpResponseBody[{"code":"NO_AUTH","message":"当前商户号接入升级版本功能,暂不支持使用升级前功能,请在产品中心-商家转账-前往功能查看接口文档"}] HttpRequest[{"http_method":"POST","url":"https://api.mch.weixin.qq.com/v3/transfer/batches","uri":"https://api.mch.weixin.qq.com/v3/transfer/batches", 由于微信支付接入比较早以前的商户号api私钥文件不见了,这次使用的是通过平台证书的方式加载privatekey,其他信息都是用的v3以及公钥,具体加载代码如下 KeyStore keyStore = KeyStore.getInstance("PKCS12"); FileInputStream fis = new FileInputStream("D:/apiclient_cert.p12"); String password = "xxx"; keyStore.load(fis, password.toCharArray()); fis.close(); // 获取别名 Enumeration<String> aliases = keyStore.aliases(); String alias = aliases.nextElement(); // 获取私钥 privateKey = (PrivateKey) keyStore.getKey(alias, password.toCharArray()); 这样加载之后构造config Config config = new RSAPublicKeyConfig.Builder() .merchantId("xxx") .privateKey(privateKey) .publicKey("xxx") .publicKeyId("xxx") .merchantSerialNumber("xxx") .apiV3Key("xxx") .build(); 就是这样构建参数之后请求sdk的接口 TransferBatchService service = new TransferBatchService. Builder(). config(getRsaPublicKeyConfig()). build(); InitiateBatchTransferRequest request = new InitiateBatchTransferRequest(); request.setAppid("xxx"); request.setOutBatchNo("12345678"); request.setBatchName("测试转账"); request.setBatchRemark("测试转账"); request.setTotalAmount(100L); request.setTotalNum(1); List<TransferDetailInput> transferDetailList = new ArrayList<>(); TransferDetailInput transferDetailInput = new TransferDetailInput(); transferDetailInput.setTransferAmount(100L); transferDetailInput.setTransferRemark("测试转账"); transferDetailInput.setOpenid("xxx"); transferDetailInput.setOutDetailNo("12345678"); transferDetailList.add(transferDetailInput); request.setTransferDetailList(transferDetailList); //场景可以为空 // request.setTransferSceneId(); // request.setNotifyUrl(""); InitiateBatchTransferResponse response = service.initiateBatchTransfer(request); System.out.println(response); 请问这是什么原因
2025-10-21 - 小程序地图导航体验版可以,线上版本无法点击开启导航?
[图片] 上图有个地图导航的功能,点击地图开启导航,体验版没有问题,线上版本,点击无法开启导航,搜索微信社区说是审核的时候设置用户隐私开启地点定位,也开启了,还是没用
2024-09-27 - 发布消息订阅报错?
<dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-miniapp</artifactId> <version>4.6.0</version> </dependency> 使用这个sdk,给微信发布订阅消息。设置模板 [图片] 然后代码 WxMaSubscribeMessage message = new WxMaSubscribeMessage(); message.setTemplateId("41N-qxn-T-Rv--YS"); message.setToUser("oGrk"); message.setPage("https://www.baidu.com"); List<WxMaSubscribeMessage.MsgData> subscribeDataList = new ArrayList<>(); WxMaSubscribeMessage.MsgData subscribeData = new WxMaSubscribeMessage.MsgData(); subscribeData.setName("账号"); // 你在小程序自定义的key(比如“商家名称”) subscribeData.setValue("123"); //key对应的内容 WxMaSubscribeMessage.MsgData subscribeData1 = new WxMaSubscribeMessage.MsgData(); subscribeData1.setName("密码"); // 你在小程序自定义的key(比如“商家名称”) subscribeData1.setValue("123"); //key对应的内容 subscribeDataList.add(subscribeData); subscribeDataList.add(subscribeData1); message.setData(subscribeDataList); try { wxMaService.getMsgService().sendSubscribeMsg(message); 之后一直报错 me.chanjar.weixin.common.error.WxErrorException: 错误代码:47003, 错误信息:模板参数不准确,可能为空或者不满足规则,errmsg会提示具体是哪个字段出错,微信原始报文:{"errcode":47003,"errmsg":"argument invalid! data.character_string4.value i rid: 66d866bc-0ad4cc27-608fd25f"} 不太清楚是哪个环节出了问题,看了文档,内容也没有超过文档的说明
2024-09-04 - 使用weixin-java-miniapp 获取用户信息 WxMaUserInfo为空或者数据不对?
maven依赖为 <dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-miniapp</artifactId> <version>4.6.0</version> </dependency> WxMaUserInfo userInfo = wxMaService.getUserService().getUserInfo(sessionKey, encryptedData, iv); 获取用户信息为null或者全部不正确 具体调用如下 [图片] [图片] [图片] 如上图,登录获取sessionkey都是正常,传过来的加密数据也经过了校验,但是获取用户信息失败。
2024-06-19 - h5支付生成的url要如何才能打开?
现在是接入微信h5支付,我已经调试通了下单接口,可以生成url,但是这个url在浏览器打不开,后端已经生成了url,那么客户端应该也只是浏览器打开这个链接,请问如何才能打开这个链接呢?
2021-10-12