微信支付
[图片]
您好,我们这边业务场景是这样的,想将租房的场景线上化,支持免押租房,押金从1000-10000不等。每个月自动划扣房租款,想咨询一下,您这边的免押金额是多少,免密代扣金额是多少
商家转账接口是一个新的接口用来替换商家转零钱,目前只看到普通商户模式下的接口文档,没有找到服务商的接口文档,但服务商管理后台 产品里有商家转账这个产品,所以想知道服务商模式 是否有 商家转账接口,如果有api地址在哪?
[图片]
return_code=SUCCESS,return_msg=OK,result_code=FAIL,err_code_des=无效的openid,err_code=PARAM_ERROR { "appid", appid }, { "mch_id", mch_id }, { "nonce_str", nonceStr }, { "body", accStr }, { "out_trade_no", Guid.NewGuid().ToString("N") }, { "total_fee",price }, { "spbill_create_ip", request1.UserHostAddress.ToString() }, { "notify_url", "https://www.maya-maya.cn:8083/api/WechatPay/payNotify" }, { "trade_type", "JSAPI" }, { "openid", openid }//, { "sign", "" } openid可以取到值,但是通不过。客户端如下 wx.login({ success: (res) => { if (res.code) { this.setData({openid: res.code}); console.log(res.code); // 发起支付请求 wx.request({
/cgi-bin/mch/customs/customdeclareorder接口 支付单申报海关 cert_check_result 返回DIFFERENT,检查了微信实名认证和平台上传的订购人信息是一致的。 用户反馈之前好用,突然不能用了,请问这是为什么?
[图片] 这个是富掌柜SAAS平台的提示,问了富掌柜SAAS平台的人,说是我小程序触发了下图其中一条微信规则, [图片] 那么请问我小程序触发了什么微信规则?求官方回复。小程序APPID:wx04908005826115dc
在开发和体验版唤起微信支付都没有问题,点击“确认支付”就弹出这个框。 微信支付的产品中已经申请了jsapi支付。[图片] 支付失败,失败原因:requestPayment:fail jsapi has no permission,event=requestPayment.runningState=foregroundpermissionMsg=permission got.detail=jsapi has been banned,appld=wx757ff70065295b09
对于微信支付服务商模式,我不需要获取用户的sub_openid,是不是就可以不给特约商户绑定sub_appid了,就用服务商的appid调支付接口
申请交易账单 https://pay.weixin.qq.com/doc/v3/merchant/4012791907 微信资金账单详细说明 https://pay.weixin.qq.com/doc/v3/merchant/4013071249 我正在做用接口获取微信的交易账单和资金账单,以自动同步到数据库中 现在碰到一个问题是,如何唯一确定单笔明细,做到幂等,防止重复同步明细 比方说用户导入的场景,用户下载了23号账单,和当月所有账单,先导入23号账单,再导入当月账单,那么我需要在当月账单导入时,判断数据是否已经在数据库中 微信交易账单我可以设置一个 唯一单号=IF(交易状态="SUCCESS",微信订单号,微信退款单号) 我不确定资金账单是否可以这样设置 唯一单号=业务凭证号&收支类型 从我导出的资金账单来看,微信支付业务单号、资金流水单号、业务凭证号都会重复 一笔交易结算时会拆成两笔资金明细,收入和手续费支出 如果我用收支类型拼接业务凭证号来防重,看起来是可以实现的 但是我怕后续微信业务变动时,会出现一笔收入和多笔支出 [图片] 微信交易账单表头 交易时间 公众账号ID 商户号 特约商户号 设备号 微信订单号 商户订单号 用户标识 交易类型 交易状态 唯一单号 付款银行 货币种类 应结订单金额 代金券金额 微信退款单号 商户退款单号 退款金额 充值券退款金额 退款类型 退款状态 商品名称 商户数据包 手续费 费率 订单金额 申请退款金额 费率备注 微信资金账单表头 记账时间 微信支付业务单号 资金流水单号 业务名称 业务类型 收支类型 收支金额(元) 账户结余(元) 资金变更提交申请人 备注 业务凭证号
如何判断当前选择或查看当前商户的API版本?目前是小程序V2可用,新增APP方式应该选择V2还是V3?如果APIV2下,androidAPP是否可以用最新的SDK还是旧版SDK?
[图片]商户号有一段时间没有使用,现在重新使用,已进行商户权限的恢复处理。重新生成api证书和生成密钥。现在发放红包显示签名错误,请问下怎么解决
佣金提现时,偶尔出现“超出商户单日转账额度,核实产品设置是否准确” 是什么原因导致的
商户号微信支付分可以给多个小程序appid使用吗? 目前通过商户号关联的APPID绑定了。但是新的APPID无法使用支付分服务。请问这个能否实现?或者有要求appID和商户号同一主体吗?
[图片] 查看文档发现同类问题,但是目前问题手机的微信是最新版的,还是出现了空白页。
因为域名和返回的根证书所解析的域名不一致,无法直接调用微信的公共域名接口,https://api.mch.weixin.qq.com,需要走网络专线,怎么申请
为什么在微信支付平台里面的产品大全中找不到商户支付到零钱?
timeStamp,packageVal,paySign,appId,"signType":"RSA",nonceStr 感觉都是对的,云函数返回调用成功,就是无法唤起微信支付组件,看了相关问题,说是 小程序有B2B类目,我的也有,然后在小程序类目里删除了b2b类目,但是返回错误一样,还需要怎么处理吗?
使用场景,1:我司想开发一个小区线上缴物业费的APP和小程序,现在是我司如果能申请一个0.2%手续费的资格,后我们发展二级商户(也就是物业公司)我们在给二级商户能自定义手续费(可以0.2%-5%),请各位大神看是否可以后实现
@Override public R transferBill(String transactionId, String openId, Integer money) { Map map = new HashMap<>(); String appid = APPID; map.put("appid", appid); String value = String.valueOf(transactionId); map.put("transfer_scene_id", "1000"); //发放场景 map.put("out_bill_no", value); map.put("openid", openId); map.put("transfer_amount", money); map.put("transfer_remark", "openId"); // data.put("user_recv_perception", "CashReward"); map.put("user_recv_perception", "现金奖励"); //用户感知 List list = new ArrayList<>(); Map subMap = new HashMap<>(2); //商家明细单号 subMap.put("info_type", "活动名称"); //转账金额 subMap.put("info_content", "佣金提现"); Map subjectMap = new HashMap<>(2); //商家明细单号 subjectMap.put("info_type", "奖励说明"); //转账金额 subjectMap.put("info_content", "业务推广佣金"); list.add(subMap); list.add(subjectMap); map.put("transfer_scene_report_infos", list); OkHttpClient okHttpClient = new OkHttpClient(); com.wechat.pay.java.core.http.HttpClient httpClient = new DefaultHttpClientBuilder().config(rsaAutoCertificateConfig).okHttpClient(okHttpClient).build(); HttpHeaders headers = new HttpHeaders(); headers.addHeader("Accept", MediaType.APPLICATION_JSON.getValue()); headers.addHeader("Content-Type", MediaType.APPLICATION_JSON.getValue()); headers.addHeader("Wechatpay-Serial", ConstantPropertiesUtils.MERCHANT); String s = JSONUtil.toJsonStr(map); JsonRequestBody build = new JsonRequestBody.Builder() .body(s) .build(); com.wechat.pay.java.core.http.HttpRequest executeSendGetHttpRequest = new HttpRequest.Builder() .httpMethod(HttpMethod.POST) .url("https://api.mch.weixin.qq.com/v3/fund-app/mch-transfer/transfer-bills") .headers(headers) .body(build) .build(); HttpResponse execute = null; try { execute = httpClient.execute(executeSendGetHttpRequest, Response.class); ResponseBody body = execute.getBody(); String string = body.toString(); Map responseMap = JSONObject.parseObject(string, Map.class); Response serviceResponse = execute.getServiceResponse(); log.info("返回体{}",serviceResponse.toString()); return R.ok(responseMap); } catch (Exception e) { e.printStackTrace(); } return null; } 以下是接口的报错信息: com.google.gson.JsonIOException: Failed making field 'java.security.cert.Certificate#type' accessible; either increase its visibility or write a custom TypeAdapter for its declaring type. at com.google.gson.internal.reflect.ReflectionHelper.makeAccessible(ReflectionHelper.java:38) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:286) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:130) at com.google.gson.Gson.getAdapter(Gson.java:556) at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(CollectionTypeAdapterFactory.java:53) at com.google.gson.Gson.getAdapter(Gson.java:556) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:160) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:294) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:130) at com.google.gson.Gson.getAdapter(Gson.java:556) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:160) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:294) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:130) at com.google.gson.Gson.getAdapter(Gson.java:556) at com.google.gson.Gson.fromJson(Gson.java:1226) at com.google.gson.Gson.fromJson(Gson.java:1137) at com.google.gson.Gson.fromJson(Gson.java:1047) at com.google.gson.Gson.fromJson(Gson.java:982) at com.wechat.pay.java.core.http.HttpResponse$Builder.build(HttpResponse.java:101) at com.wechat.pay.java.core.http.AbstractHttpClient.assembleHttpResponse(AbstractHttpClient.java:108) at com.wechat.pay.java.core.http.AbstractHttpClient.execute(AbstractHttpClient.java:48) at com.lzsh.mini.payment.service.impl.WeixinServiceImpl.transferBill(WeixinServiceImpl.java:993) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:716) at com.lzsh.mini.payment.service.impl.WeixinServiceImpl$$SpringCGLIB$$0.transferBill() at com.lzsh.mini.payment.controller.WeixinController.sendMoney(WeixinController.java:104) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:527) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) at com.lzsh.common.web.filter.RepeatableFilter.doFilter(RepeatableFilter.java:30) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) at com.lzsh.common.web.filter.TraceIdFilter.doFilter(TraceIdFilter.java:34) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) at cn.dev33.satoken.filter.SaServletFilter.doFilter(SaServletFilter.java:150) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) at cn.dev33.satoken.filter.SaPathCheckFilterForJakartaServlet.doFilter(SaPathCheckFilterForJakartaServlet.java:55) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) at com.lzsh.common.web.filter.XssFilter.doFilter(XssFilter.java:38) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) at com.lzsh.common.encrypt.filter.CryptoFilter.doFilter(CryptoFilter.java:69) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.lang.String java.security.cert.Certificate.type accessible: module java.base does not "opens java.security.cert" to unnamed module @33afa13b at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178) at java.base/java.lang.reflect.Field.setAccessible(Field.java:172) at com.google.gson.internal.reflect.ReflectionHelper.makeAccessible(ReflectionHelper.java:35) ... 102 more com.wechat.pay.java.core.exception.ServiceException: Wrong HttpStatusCode[401] 结果就是,钱扣了,但是接口还是报错了.排查了一天了都不知道是什么原因 请大佬指教!!!