用的什么开发语言?建议在客户端http配置项,把keep-alive关了,情况会好很多
调用微信退款接口有时候返回:未能创建 SSL/TLS 安全通道,有没有知道啥原因?大部分情况都能正常调用退款,偶尔出现这种情况,然后过了一会又可以了
1天前你是说订阅的这个吗? https://pay.weixin.qq.com/index.php/public/cms/content_detail?platformType=0&lang=zh&id=135003 如是,则服务商只能是「被分账方」才会有通知 分账动账成功变动(PROFITSHARING.SUCCESS)通知(JSON) 1、此功能仅针对分账接收方。2、分账动账金额变动后,微信会把相关变动结果发送给需要实时关注的分账接收方。 分账动账成功回退(PROFITSHARING.RETURN)通知(JSON) 1、此功能仅针对分账接收方。2、分账动账金额变动后,微信会把相关变动结果发送给需要实时关注的分账接收方。 被通知的URL是通过商户平台【分账动账通知设置页面】中配置的通知url,必须为https协议。如果链接无法访问,商户将无法接收到微信通知。必须为直接可访问的url,不能携带参数。示例:notify_url:https://pay.weixin.qq.com/wxpay/123456789
请问新版一次性订阅beta版支持服务商模式的支付订单吗?我们小程序的分账模式是服务商模式,请问这种支付订单可以使用新版订阅进行订单状态推送吗?
2天前紧急情况下,打 95017 联系客服,或者在线客服 https://support.pay.weixin.qq.com/online-service
切换微信公钥验签,作废平台证书之后,公钥页签页不见了,这是什么原因?支付公钥已经申请成功了,并且从平台证书切换到公钥模式了,然后微信平台证书作废后,公钥入口不见了,是为什么呢 [图片]
2天前这域名是有CDN的,CDN的IP那可海量了
https://api.mch.weixin.qq.com 对应的集群IP地址是否可以提供我这里服务器网络首先,出和入都需要白名单操作,从服务器请求https://api.mch.weixin.qq.com 需要知道 https://api.mch.weixin.qq.com 的IP地址。
2天前PHP 应该看这个sdk及示例代码,不走失不迷失 https://wechatpay.im/openapi/v3/refund/domestic/refunds
调微信退款接口时报“错误的签名,验签失败”?调用的接口:https://api.mch.weixin.qq.com/v3/refund/domestic/refunds; 退款代码(PHP): static public function tuikuan($money_fen,$total,$out_trade_no,$reason="协商退款"){ $url = 'https://api.mch.weixin.qq.com/v3/refund/domestic/refunds'; $data = [ "out_trade_no"=>$out_trade_no,//商户订单号 "out_refund_no"=>$out_trade_no,//商户退款单号 "reason"=>$reason,// "notify_url"=>"https://api.huodongbaobao.com/pay/weixinpay_tuikuan_notify",//退款结果回调url "amount"=>[ "refund"=>$money_fen,//退款金额,单位为分。示例值:100 "total"=>$total,//原支付交易的订单总金额,单位为分。示例值:100 "currency"=>"CNY" ], ]; $header = [ "Accept: application/json", "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36", self::getSign($url,json_encode($data)), ]; $res = curl($url,$data,true,$header); if(!isset($res['body'])){ return ["status"=>"error","msg"=>"微信申请退款请求失败"]; } $data = json_decode($res['body'],true); if( isset($data['refund_id']) && isset($data['status']) && !empty($data['refund_id']) && !empty($data['status']) ){ $res_status = $data['status'];//$data['status']枚举值:SUCCESS:退款成功 CLOSED:退款关闭 PROCESSING:退款处理中 ABNORMAL:退款异常 if($res_status == "SUCCESS"){ return ["status"=>"ok","data"=>"success"]; }else if($res_status == "PROCESSING"){ return ["status"=>"ok","data"=>"processing"]; }else{ return ["status"=>"error","msg"=>"退款异常"]; } } $msg = isset($data['code']) ? $data['code'] : ""; $msg .= isset($data['message']) ? "【".$data['message']."】" : ""; return ["status"=>"error","msg"=>$msg]; } 生成签名的代码: static private function getSign($url,$body,$http_method = "POST",$timestamp = 0,$nonce = ""){ $url_parts = parse_url($url); $canonical_url = ($url_parts['path'] . (!empty($url_parts['query']) ? "?{$url_parts['query']}" : "")); if(empty($timestamp)){ $timestamp = time(); } if(empty($nonce)){ $nonce = makeCode(32,true); } $message = $http_method."\n".$canonical_url."\n".$timestamp."\n".$nonce."\n".$body."\n"; openssl_sign($message, $raw_sign, file_get_contents(config("app.weixin_mchid_api_cert_pem")), 'sha256WithRSAEncryption'); $sign = base64_encode($raw_sign); $schema = 'WECHATPAY2-SHA256-RSA2048'; $token = sprintf('mchid="%s",serial_no="%s",nonce_str="%s",timestamp="%d",signature="%s"',config("app.weixin_mchid"),config("app.weixin_mchid_api_cert_serial"), $nonce, $timestamp, $sign); return "Authorization: " . $schema . " " . $token; } 入参: ( [out_trade_no] => 20250**********82541 [out_refund_no] => 2025030**********541 [reason] => 协商退款 [notify_url] => https:/xx.yy.com/pay/weixinpay_tuikuan_notify [amount] => Array ( [refund] => 1 [total] => 1 [currency] => CNY ) ) 打印出的参数: 生成签名用的数据: POST /v3/refund/domestic/refunds 1742202164 hixtc7j4db12swud1t8dczq2mm44hg7f {"out_trade_no":"20250309********41","out_refund_no":"202503091516*******1","reason":"\u534f\u5546\u9000\u6b3e","notify_url":"https:\/\/xx.yy.com\/pay\/weixinpay_tuikuan_notify","amount":{"refund":1,"total":1,"currency":"CNY"}} 生成的header Authorization: Authorization: WECHATPAY2-SHA256-RSA2048 mchid="16*******",serial_no="4498A8**********************770B",nonce_str="wol00jmmj*********mpc31ebyaik7j",timestamp="1742204700",signature="OCWMkxGsGHb6yJb3pwEF0eiEYwHe2T7ohW0BKTSETJHyyaQZY19wD8oGlgR**************9JCHeZ/CYQfdB7lIQBv+kVlfXfMZWIo34pInzZonTHe6v7Avt/RCJx75IqKImcgUs9I2mPBguv85Fk7Za/+TTgRL4Kz78WF+KCdyfg/cpTa65mU6tXeh/SKcuQpZK/mrHp2uYZrULmbDbUEJHWYLpKTcbwix/u1yxBJxL493l+qdLzw0CRW5COGksVvD7uBG5XLf0YUuxNOSXxZzapXSWwftgLAK2WPqO31r**************AEkIfFTyBZEJLycDApbUfNTPw==" 最终的问题: 调用微信退款接口后,微信返回下述内容: {"code":"SIGN_ERROR","detail":{"detail":{"issue":"sign not match"},"field":"signature",………………message":"错误的签名,验签失败"} 我小程序上有一个退款功能,电脑端管理后台也有一个退款功能,小程序端退款功能的代码和电脑端退款功能的代码是处于两个地方,但代码内容是一模一样的(复制的),二者使用的是同一套证书、密钥,小程序上的支付、退款功能都好用,但电脑端的退款功能就不好用,请求退款接口时提示上面的报错内容,调试了很久,确实没找到问题原因,请大家帮忙看看。
2天前需要
公众号认证完之后小程序还需要认证费用吗?公众号认证完之后小程序还需要认证费用吗?
2天前-----BEGIN RSA PRIVATE KEY----- 是PKCS#1 格式的私钥, -----BEGIN PRIVATE KEY----- 是 PKCS#8格式的私钥,可以互换; RSA_PKCS1_PADDING 填充模式在高版本OpenSSL(3.2)已经是标记废弃的填充模式(存在漏洞)部分开发语言已经不支持这种填充模式的加密了
财付通免输卡号绑卡测试秘钥这个文档中为啥两个私钥?财付通免输卡号绑卡测试秘钥,文档中两个私钥(一个是java用的)一个公钥,怎么理解?这个公钥跟这两个私钥都能够匹配?https://pay.weixin.qq.com/wiki/doc/apiv3/download/%E8%B4%A2%E4%BB%98%E9%80%9A%E5%85%8D%E8%BE%93%E5%8D%A1%E5%8F%B7%E7%BB%91%E5%8D%A1%E6%B5%8B%E8%AF%95%E7%A7%98%E9%92%A5.pdf
2天前值得你收藏的网址 https://wechatpay.im/
商家转账开发文档2025年1月15号之前的,官方文档没有了吗,如果要去看之前的在哪里看?[图片]
2天前apiclient_cert.pem 文件是 商户API证书,不是平台证书,搞错了
为什么请求转账参数老是不对?[图片]报错结果是message: "The `certs(794AE336004807322B73B9F05564B6A6263DB269)` contains the merchant's certificate serial number(794AE336004807322B73B9F05564B6A6263DB269) which is not allowed here.
星期一 11:12nodejs建议用 https://wechatpay.js.org/
微信支付下单接口 /v3/pay/transactions/jsapi 报错 400?{"level":30,"time":1742134233537,"pid":2227109,"hostname":"iZ7xvhr9e4wz59k6hz96noZ","reqId":"req-74","res":{"statusCode":400},"err":{"message":"Request failed with status code 400","name":"AxiosError","stack":"AxiosError: Request failed with status code 400\n at settle (/project/node_modules/axios/dist/node/axios.cjs:2031:12)\n at IncomingMessage.handleStreamEnd (/project/node_modules/axios/dist/node/axios.cjs:3148:11)\n at IncomingMessage.emit (node:events:529:35)\n at endReadableNT (node:internal/streams/readable:1400:12)\n at process.processTicksAndRejections (node:internal/process/task_queues:82:21)\n at Axios.request (/project/node_modules/axios/dist/node/axios.cjs:4258:41)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async Object.<anonymous> (/project/src/router/wx.js:65:12)","config":{"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false},"adapter":["xhr","http","fetch"],"transformRequest":[null],"transformResponse":[null],"timeout":0,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"env":{},"headers":{"Accept":"application/json","Content-Type":"application/json","Authorization":"WECHATPAY2-SHA256-RSA2048 mchid=\"1639740100\",nonce_str=\"BA476C32BFD54A4061592B8B48F3007D\",signature=\"cK2vwVIt+6UHkPamnJLdIPaOyfDLxSCxfJeRmalALCZBSCkL5y9Ox1AWfGJxd1qPIaOytcZzVceJEsQVhVNoNL0Sqopc6nXU+FB+sedEwgjj+cPFX2fAKqXZZ25+zRr+nPbXR/fGNcpCw0g2b53G9gr3VZWD/GA8W5yzT+lb8PzCoQOSLAdUsquXscuUMvnXL7pJUzoXNYMCr7/at/xYZTX+QKOcb5a3HUMrg9eXAM0FuE9V0mRrnWEB8o+GfHIs4YSBlHKR6NrGd4QKWC0FXeFqHu5i4EEYutLm9unz1I5k1+GL/35iGkVbOe1MMiQgzK6tuZzfCoRdYXF6ChoZNQ==\",timestamp=\"1742134233\",serial_no=\"384F842C4F75E92BD29BAB111111BD411958D3B7\"","User-Agent":"axios/1.8.1","Content-Length":"231","Accept-Encoding":"gzip, compress, deflate, br"},"method":"post","url":"https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi","data":"{\"appid\":\"wx623ed1364cfa311c\",\"mchid\":\"1639740100\",\"description\":\"开通会员\",\"out_trade_no\":\"wpb1742134232309\",\"notify_url\":\"https://www.wpbjiuy/client\",\"amount\":{\"total\":1},\"payer\":{\"openid\":\"041Rxu000JgSTT1jx64008OR8X0Rxu0A\"}}","allowAbsoluteUrls":true},"code":"1111","status":400},"msg":"Request failed with status code 400"}
星期一 11:07