publicKeyId[] and serialNumber[] 这两组里,必须有一组,你这是啥都没配的缘故
publicKeyId[] and serialNumber[] are not equal?[图片]
1天前看这里 https://wechatpay.im/guide/getting-started#init
微信支付平台证书是什么,从哪里获取?我有工具生成的apiclient_cert.p12,apiclient_cert.pem,apiclient_key.pem,还有微信支付公钥pub_key.pem。但是微信支付平台证书是啥? 如果是apiclient_cert.pem 会返回错误:The `certs(*****)` contains the merchant's certificate serial number(*****) which is not allowed here.
星期五 11:55这是开启了debug模式才会执行,不然咋debug提示呢
微信jssdk 1.6.0版本下有一个非法alert,官方是否该去掉下?持续大概一周多了,没人知道吗https://res.wx.qq.com/open/js/jweixin-1.6.0.js [图片]
星期五 11:36代码都有,cv拿走 https://wechatpay.im/openapi/v3/fund-app/mch-transfer/transfer-bills
V3的sdk是否支持v3/fund-app/mch-transfer/transfer-billsV3的sdk是否支持v3/fund-app/mch-transfer/transfer-bills
03-24用的什么开发语言?建议在客户端http配置项,把keep-alive关了,情况会好很多
调用微信退款接口有时候返回:未能创建 SSL/TLS 安全通道,有没有知道啥原因?大部分情况都能正常调用退款,偶尔出现这种情况,然后过了一会又可以了
03-19你是说订阅的这个吗? 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版支持服务商模式的支付订单吗?我们小程序的分账模式是服务商模式,请问这种支付订单可以使用新版订阅进行订单状态推送吗?
03-18紧急情况下,打 95017 联系客服,或者在线客服 https://support.pay.weixin.qq.com/online-service
切换微信公钥验签,作废平台证书之后,公钥页签页不见了,这是什么原因?支付公钥已经申请成功了,并且从平台证书切换到公钥模式了,然后微信平台证书作废后,公钥入口不见了,是为什么呢 [图片]
03-17这域名是有CDN的,CDN的IP那可海量了
https://api.mch.weixin.qq.com 对应的集群IP地址是否可以提供我这里服务器网络首先,出和入都需要白名单操作,从服务器请求https://api.mch.weixin.qq.com 需要知道 https://api.mch.weixin.qq.com 的IP地址。
03-17PHP 应该看这个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 1742463956 evhvqt02e7b125wsuienffzt4bgzv7mt {"out_trade_no":"20250309151620582541","out_refund_no":"20250309151620582541","reason":"\u534f\u5546\u9000\u6b3e","notify_url":"https:\/\/api.huodongbaobao.com\/pay\/weixinpay_tuikuan_notify","amount":{"refund":1,"total":1,"currency":"CNY"}} 生成的header Authorization: Kimj2a4kl/A8zG/xtGG5RneTVRrHVBvkDaccFhK1NzXwP1GReutazJtdKXpOOXl6rtwx/ke4DzV8zmt8XHUunX/3wIPZ3DZrlV/F+xM9lX3um1VudL6yxLovB4djfcloO0QlzN8XzRhf1k9f25hvDiBgAMzZ9omNp06Xigpnjy2lgaTS/CpihjG2j+qKtHg0t/cIvVdfkYW59cX/t+XBRNBGozFpTm6OnxqnbCj/r90da1GQ20AZQMjYl3X4gWBIOqyBrCt5yJk2atFq/6fRA2Zc3cFzwSlTJjx11phIyGsrgG5X+JVosTW1eWGceDNGhoFy6vJmU6C8HSNWSW9kzQ==authorization-admin: Authorization: WECHATPAY2-SHA256-RSA2048 mchid="165****008",serial_no="4498A82FCC548B7B4932AA4939807C395109770B",nonce_str="evhvqt02e7b125wsuienffzt4bgzv7mt",timestamp="1742463956",signature="Kimj2a4kl/A8zG/xtGG5RneTVRrHVBvkDaccFhK1NzXwP1GReutazJtdKXpOOXl6rtwx/ke4DzV8zmt8XHUunX/3wIPZ3DZrlV/F+xM9lX3um1VudL6yxLovB4djfcloO0QlzN8XzRhf1k9f25hvDiBgAMzZ9omNp06Xigpnjy2lgaTS/CpihjG2j+qKtHg0t/cIvVdfkYW59cX/t+XBRNBGozFpTm6OnxqnbCj/r90da1GQ20AZQMjYl3X4gWBIOqyBrCt5yJk2atFq/6fRA2Zc3cFzwSlTJjx11phIyGsrgG5X+JVosTW1eWGceDNGhoFy6vJmU6C8HSNWSW9kzQ==" ~ 最终的问题: 调用微信退款接口后,微信返回内容打印如下: Array ( [request_header] => POST /v3/refund/domestic/refunds HTTP/1.1 Host: api.mch.weixin.qq.com 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 Authorization: WECHATPAY2-SHA256-RSA2048 mchid="16****008",serial_no="4498A82FCC548B7B4932AA4939807C395109770B",nonce_str="evhvqt02e7b125wsuienffzt4bgzv7mt",timestamp="1742463956",signature="Kimj2a4kl/A8zG/xtGG5RneTVRrHVBvkDaccFhK1NzXwP1GReutazJtdKXpOOXl6rtwx/ke4DzV8zmt8XHUunX/3wIPZ3DZrlV/F+xM9lX3um1VudL6yxLovB4djfcloO0QlzN8XzRhf1k9f25hvDiBgAMzZ9omNp06Xigpnjy2lgaTS/CpihjG2j+qKtHg0t/cIvVdfkYW59cX/t+XBRNBGozFpTm6OnxqnbCj/r90da1GQ20AZQMjYl3X4gWBIOqyBrCt5yJk2atFq/6fRA2Zc3cFzwSlTJjx11phIyGsrgG5X+JVosTW1eWGceDNGhoFy6vJmU6C8HSNWSW9kzQ==" Content-Type: application/json; charset=utf-8 Content-Length:229 [request_body] => {"out_trade_no":"20250309151620582541","out_refund_no":"20250309151620582541","reason":"协商退款","notify_url":"https:\/\/api.huodongbaobao.com\/pay\/weixinpay_tuikuan_notify","amount":{"refund":1,"total":1,"currency":"CNY"}} [header] => HTTP/1.1 401 Unauthorized Server: nginx Date: Thu, 20 Mar 2025 09:45:57 GMT Content-Type: application/json; charset=utf-8 Content-Length: 377 Connection: keep-alive Keep-Alive: timeout=8 Cache-Control: no-cache, must-revalidate X-Content-Type-Options: nosniff Request-ID: 08D5C7EFBE061053189DDFEEA30620A8B50128DA38-269546525 Content-Language: zh-CN [body] => {"code":"SIGN_ERROR","detail":{"detail":{"issue":"sign not match"},"field":"signature","location":"authorization","sign_information":{"method":"POST","sign_message_length":307,"truncated_sign_message":"POST\n/v3/refund/domestic/refunds\n1742463956\nevhvqt02e7b125wsuienffzt4bgzv7mt\n{\"out_tr\n","url":"/v3/refund/domestic/refunds"}},"message":"错误的签名,验签失败"} ) 最下面的[body]中返回了报错信息:{"code":"SIGN_ERROR","detail":{"detail":{"issue":"sign not match"},"field":"signature","location":"authorization","sign_information":{"method":"POST","sign_message_length":307,"truncated_sign_message":"POST\n/v3/refund/domestic/refunds\n1742463956\nevhvqt02e7b125wsuienffzt4bgzv7mt\n{\"out_tr\n","url":"/v3/refund/domestic/refunds"}},"message":"错误的签名,验签失败"} 我小程序上有一个退款功能,电脑端管理后台也有一个退款功能,小程序端退款功能的代码和电脑端退款功能的代码是处于两个地方,但代码内容是一模一样的(复制的),二者使用的是同一套证书、密钥,小程序上的支付、退款功能都好用,但电脑端的退款功能就不好用,请求退款接口时提示上面的报错内容,调试了很久,确实没找到问题原因,请大家帮忙看看。
03-17需要
公众号认证完之后小程序还需要认证费用吗?公众号认证完之后小程序还需要认证费用吗?
03-17