微信支付
商户号:1507867861 请求内容:<xml> <nonce_str></nonce_str> <sign></sign> <mch_billno></mch_billno> <mch_id></mch_id> <wxappid></wxappid> <send_name>测试商户</send_name> <re_openid></re_openid> <total_num>1</total_num> <total_amount>1</total_amount> <wishing>恭喜发财,大吉大利!</wishing> <scene_id>PRODUCT_2</scene_id> <notify_way>MINI_PROGRAM_JS</notify_way> <act_name>测试小程序红包活动</act_name> <remark>测试红包</remark> </xml> 返回内容:<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[没有权限调用该接口,请先申请该接口的权限]]></return_msg> <result_code><![CDATA[FAIL]]></result_code> <err_code><![CDATA[NO_COMPETENCE]]></err_code> <err_code_des><![CDATA[没有权限调用该接口,请先申请该接口的权限]]></err_code_des> <mch_billno><![CDATA[]]></mch_billno> <mch_id><![CDATA[]]></mch_id> <wxappid><![CDATA[]]></wxappid> <re_openid><![CDATA[]]></re_openid> <total_amount>1</total_amount> </xml>
微信支付-开通H5支付域名,域名总是审核不通过,说是场景不完善,但是没说哪里不完善? 驳回了很多次了,每次都是说不完善。 [图片]
小程序appid:wx5db79bd23a923e8e 小程序名称:草料二维码 我们的小程序是一个二维码内容搭建平台。用户可以自己搭建报名、签到表单,或者展示自己的商品,做成二维码传播。现在有用户希望通过我们的小程序实现收款功能,把钱收到用户自己的商户号。我看到微信支付后台支持“小程序绑定商户号”,但是没有找到明确说明 “一个小程序appid最多能绑定多少个商户号” 。 所以想请教下: 目前官方有没有明确规定小程序可绑定的商户号数量上限?如果有上限,具体是多少?在不同场景下(如跨主体绑定、服务商模式等),这个数量限制是不是会不同?
微信服务商代特约商户发起支付,用户付款一直提示微信当前交易行为异常,为保护你的资金安全,暂时无法支付,请打开发起交易的APP重新下单 [图片]
[图片] [图片]
使用主动查询投诉信息和实时获取投诉信息的其他API时签名是可以通过的可以正常使用,但在创建/更新微信投诉回调地址时就报签名错误 SIGN_ERROR {"code":"SIGN_ERROR","detail":{"detail":{"issue":"sign not match"},"field":"signature","location":"authorization","sign_information":{"method":"POST","sign_message_length":79,"truncated_sign_message":"POST\n/v3/merchant-service/complaint-notifications\n1758868606\n1758868606921756\n\n","url":"/v3/merchant-service/complaint-notifications"}},"message":"错误的签名,导致验签失败"}
[图片]
已经符合会员卡开放范围类目,但是卡卷里面没有会员卡功能。 [图片] [图片] [图片]
微信小程序接入了收付通,想要平台收取百分5的费用,用户支付完但是钱全到二级商户底下,怎么处理
因内部对账及入账需要,我司希望获取名下账户的实时流水,以便及时识别账户收入并通知对应销售同事。目前业务对数据的实时性有较高要求。 在实际操作中,我们希望获取的是「https://pay.weixin.qq.com/index.php/xphp/cmktfundflow/capital_flow#/」该页面所展示的流水数据。 我们已查阅相关接口文档并咨询客服,目前仅能通过「https://pay.weixin.qq.com/doc/v3/partner/4013080595」该接口获取流水信息,但该接口提供的是T+1数据,无法满足实时对账需求。 相比之下,支付宝已提供类似接口(如「https://opendocs.alipay.com/open/dae3ac99_alipay.data.bill.accountlog.query?scene=common&pathHash=c20f0806」),默认向商户开放,无需额外申请权限,且接入流程顺畅高效。 微信支付应该具备实现此类实时接口的能力,期待能尽快推出相应功能,以提升商户的使用体验。 感谢关注,盼复。
目前间联商户入驻和修改都上送了 service_phone 客服电话,但是支付完成页始终无法显示客服电话。商户那边也没有接到拨测,请问还有什么要素需要满足?收单机构单独申请开通?
微信商户的APP支付为什么需要已上架的App才可以开通? 这个规则是否太奇怪了? 上架前需要进行支付的开发-测试才能上架。 为什么需要上架后才能开通微信APP支付呢? 难以理解。
ProfitSharingComponent profitSharingComponent = getSpProfitSharingComponent(wxApiV3PubKey); CreateOrderRequest createOrderRequest = new CreateOrderRequest(); createOrderRequest.setAppid(config.getSpAppId()); createOrderRequest.setTransactionId(wxSubledgerVO.getWXPAYID()); createOrderRequest.setOutOrderNo(wxSubledgerVO.getPAYORDERID()); createOrderRequest.setSubAppid(wxSubledgerVO.getAPPID()); createOrderRequest.setSubMchid(bsPos.getMCHID()); JSONArray jsonArray = buildReceivers(wxSubledgerVO); List receivers = JSONUtil.toList(jsonArray, CreateOrderReceiver.class); createOrderRequest.setReceivers(receivers); createOrderRequest.setUnfreezeUnsplit(true); OrdersEntity ordersEntity = profitSharingComponent.createOrder(createOrderRequest); public static ProfitSharingComponent getSpProfitSharingComponent(Config wxApiV3PubKey) { return new ProfitSharingComponent.Builder().config(wxApiV3PubKey).build(); } @Bean("wxApiV3PubKey") public Config getConfig() { return new RSAPublicKeyConfig.Builder() .merchantId(this.spMchId) //微信支付的商户号 .privateKeyFromPath(this.privateKeyPath) // 商户API证书私钥的存放路径 .publicKeyFromPath(this.pubKeyPath) //微信支付公钥的存放路径 .publicKeyId(this.pubKeyId) //微信支付公钥ID .merchantSerialNumber(this.mchSerialNo) //商户API证书序列号 .apiV3Key(this.apiV3Key) //APIv3密钥 .build(); } [图片] 接口返回错误: [{ "code": "SIGN_ERROR", "detail": { "detail": { "issue": "sign not match" }, "field": "signature", "location": "authorization", "sign_information": { "method": "POST", "sign_message_length": 428, "truncated_sign_message": "POST\n/v3/profitsharing/orders\n1758793006\nJsak1h7GydhlpdBcYJGnqElXt1S1hkI3\n{\"sub_mc\n", "url": "/v3/profitsharing/orders" } }, "message": "错误的签名,验签失败" }]HttpRequest[{ "http_method": "POST", "url": "https://api.mch.weixin.qq.com/v3/profitsharing/orders", "uri": "https://api.mch.weixin.qq.com/v3/profitsharing/orders", "headers": { "headers": { "Authorization": "WECHATPAY2-SHA256-RSA2048 mchid=\"******\",nonce_str=\"Jsak1h7GydhlpdBcYJGnqElXt1S1hkI3\",timestamp=\"1758793006\",serial_no=\"---我留空了----\",signature=\"JMqFfZitQVO0PZeU5BRYOFQ1Peyu5fK+QeRW7mxkT88DubROuw1AfkYIMxvVRU9AMYdNz2w6RlzlgHBy0hisni6ngnk/BXjOhdRyIwvkcH4DHqtWL7AaNSzuLKIfWSBrMtNkZynaO2kQpNwHPVugUCAy9Rhw2P+iNB23e+JkU2XhJ1RMg8AhBJHoD0COBvMG9+euqUok0SYzK8HV8GFb5gTpAReeyVu4iY1sx/dvU6oqCo26a+EjZZjsvpmC6mG8lonrjdT4D0/R18Kz02Fj8m9iFbUyrT5aAdSyhsb5QnKE/7g+lr2dEkl9pWsZmGcwGLeoVhNIS5cH6Ga4oQ0vNg==\"", "Accept": "application/json", "User-Agent": "WechatPay-Java/0.2.15 (Windows 11/10.0) Java/1.8.0_321 Credential/WechatPay2Credential Validator/WechatPay2Validator okhttp3/null", "Content-Type": "application/json", "Wechatpay-Serial": "---我留空了----" } }, "body": { "body": "{\"sub_mchid\":\"****\",\"appid\":\"****\",\"sub_appid\":\"****\",\"transaction_id\":\"****\",\"out_order_no\":\"****\",\"receivers\":[{\"type\":\"PERSONAL_SUB_OPENID\",\"account\":\"---我留空了----\",\"amount\":100,\"description\":\"分账来源为-****的订单\"}],\"unfreeze_unsplit\":true}" } }]
public static String encryptUserName(String plaintext,String wechatpayCertPath) throws Exception { final String transformation = "RSA/ECB/OAEPWithSHA-256AndMGF1Padding"; try (FileInputStream fis = new FileInputStream(wechatpayCertPath)) { CertificateFactory cf = CertificateFactory.getInstance("X.509"); X509Certificate certificate = (X509Certificate) cf.generateCertificate(fis); PublicKey publicKey = certificate.getPublicKey(); Cipher cipher = Cipher.getInstance(transformation); cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] cipherData = cipher.doFinal(plaintext.getBytes(StandardCharsets.UTF_8)); return Base64.getEncoder().encodeToString(cipherData); } catch (NoSuchAlgorithmException | NoSuchPaddingException e) { throw new IllegalArgumentException("The current Java environment does not support " + transformation, e); } catch (InvalidKeyException e) { throw new IllegalArgumentException("RSA encryption using an illegal publicKey", e); } catch (BadPaddingException | IllegalBlockSizeException e) { throw new IllegalArgumentException("Plaintext is too long", e); } }
首先你要区分证书相关概念
1、商户API证书(2个pem文件1个P12文件)包含商户私钥/商户公钥对
2、微信平台证书(用工具下载 或接口https://pay.weixin.qq.com/doc/v3/merchant/4012551764下载两种方式获取)-- ---可以获取到 【微信平台证书序列号】和和密文ciphertext,解密后可以得到平台证书内容。
平台证书文件名类似于wechatpay_123456777B4A9CC78902B44B65E04B9751CE12.pem
3、微信支付公钥,替代2的微信支付平台证书,商户后台申请下载。
公钥id类似:PUB KEY ID 0117000800002025045698789500001779
你的apiclient_key.pem和apiclient_cert.pem都属于1商户API证书。你需要下载使用2的微信平台证书加密敏感信息。
小程序和商户主体不一样,但都是企业资质,可以绑定商户进行支付吗
为什么有赞这种微信小程序提现可以提现到私人银行卡?
"code":"NOT_ENOUGH","message":"商户运营账户资金不足,充值后可以原单号发起重试,请勿更换商户单号" [图片] 功能已经开通了,在后台手动操作发起转账 提示无权限,是为啥?? [图片]
请问我使用 sdk 调用的下单的时候,总是返回以下错误是怎么回事?publicKeyId[PUB_KEY_ID_0113214043012xxxxxxxxxxx] and serialNumber[7B77373C3A93AA83xxxxxxxxxxxxxxxxxx] are not equal 返回的 Wechatpay-Serial 应该是 publicKeyId 啊,使用下面方式的时候这里传的也是 publicKeyId // 可以根据实际情况使用publicKeyFromPath或publicKey加载公钥 2 Config config = 3 new RSAPublicKeyConfig.Builder() 4 .merchantId("1900007291") //微信支付的商户号 5 .privateKeyFromPath("/Users/yourname/yourpath/apiclient_key.pem") // 商户API证书私钥的存放路径 6 .publicKeyFromPath("/Users/yourname/yourpath/pub_key.pem") //微信支付公钥的存放路径 7 .publicKeyId("PUB_KEY_ID_00000000000000000000000000000000") //微信支付公钥ID 8 .merchantSerialNumber("5157F09EFDC096DE15EBE81A47057A72********") //商户API证书序列号 9 .apiV3Key("F09E**") //APIv3密钥 10 .build(); 为什么下单返回的header里的Wechatpay-Serial变成了序列号,什么原因?之前用的是v2,第一次用v3版本,按道理不会用到平台证书啊。 商户后台平台证书已经是过期的。 [图片]
支付通知回调数据解密 报 tag mismatch 的错误。此问题如何解? [图片]
小程序商户号的管理员收到这个信息,这个是做什么的,很紧急吗,需要去主动设置一下吗,不操作的话会有什么后果吗,会影响到什么吗。如果操作具体需要怎么操作呢 [图片]
你在商家红包开通小程序红包了吗?