From 3e9ae6ed0f798aa9a9b2f0b57333ce26c578307c Mon Sep 17 00:00:00 2001 From: youda Date: Sun, 27 Apr 2025 13:12:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/route/app.php | 4 +- app/common/server/WechatRefund.php | 42 +++++++++++++++--- app/common/ssl/1712082923/apiclient_cert.p12 | Bin 0 -> 2774 bytes app/common/ssl/1712082923/apiclient_cert.pem | 25 +++++++++++ app/common/ssl/1712082923/apiclient_key.pem | 28 ++++++++++++ .../ssl/1712082923/证书使用说明.txt | 18 ++++++++ app/common/ssl/1712608964/apiclient_cert.p12 | Bin 0 -> 2782 bytes app/common/ssl/1712608964/apiclient_cert.pem | 25 +++++++++++ app/common/ssl/1712608964/apiclient_key.pem | 28 ++++++++++++ .../ssl/1712608964/证书使用说明.txt | 18 ++++++++ app/common/ssl/1713344509/apiclient_cert.p12 | Bin 0 -> 2774 bytes app/common/ssl/1713344509/apiclient_cert.pem | 25 +++++++++++ app/common/ssl/1713344509/apiclient_key.pem | 28 ++++++++++++ .../ssl/1713344509/证书使用说明.txt | 18 ++++++++ app/common/ssl/1713597386/apiclient_cert.p12 | Bin 0 -> 2774 bytes app/common/ssl/1713597386/apiclient_cert.pem | 25 +++++++++++ app/common/ssl/1713597386/apiclient_key.pem | 28 ++++++++++++ .../ssl/1713597386/证书使用说明.txt | 18 ++++++++ 18 files changed, 323 insertions(+), 7 deletions(-) create mode 100644 app/common/ssl/1712082923/apiclient_cert.p12 create mode 100644 app/common/ssl/1712082923/apiclient_cert.pem create mode 100644 app/common/ssl/1712082923/apiclient_key.pem create mode 100644 app/common/ssl/1712082923/证书使用说明.txt create mode 100644 app/common/ssl/1712608964/apiclient_cert.p12 create mode 100644 app/common/ssl/1712608964/apiclient_cert.pem create mode 100644 app/common/ssl/1712608964/apiclient_key.pem create mode 100644 app/common/ssl/1712608964/证书使用说明.txt create mode 100644 app/common/ssl/1713344509/apiclient_cert.p12 create mode 100644 app/common/ssl/1713344509/apiclient_cert.pem create mode 100644 app/common/ssl/1713344509/apiclient_key.pem create mode 100644 app/common/ssl/1713344509/证书使用说明.txt create mode 100644 app/common/ssl/1713597386/apiclient_cert.p12 create mode 100644 app/common/ssl/1713597386/apiclient_cert.pem create mode 100644 app/common/ssl/1713597386/apiclient_key.pem create mode 100644 app/common/ssl/1713597386/证书使用说明.txt diff --git a/app/api/route/app.php b/app/api/route/app.php index c685419..ecbcf95 100755 --- a/app/api/route/app.php +++ b/app/api/route/app.php @@ -221,5 +221,5 @@ Route::any('getFloatBall', 'Index/getFloatBall'); // // getUserAccount -// Route::any('getUserAccount', 'User/getUserAccount'); -// Route::any('createUser', 'User/createUser'); +Route::any('getUserAccount', 'User/getUserAccount'); +Route::any('createUser', 'User/createUser'); diff --git a/app/common/server/WechatRefund.php b/app/common/server/WechatRefund.php index f91bdb7..a0d74fb 100755 --- a/app/common/server/WechatRefund.php +++ b/app/common/server/WechatRefund.php @@ -20,10 +20,10 @@ class WechatRefund extends MyController $merchant_prefix = null; $miniprogram_prefix = null; - if (!empty($info['send_num']) && strpos($info['send_num'], 'MH_') === 0) { + if (!empty($info['send_num']) &&( strpos($info['send_num'], 'MH_') === 0|| strpos($info['send_num'], 'FH_') === 0)) { $prefixInfo = WxPayHelper::extractOrderPrefix($info['send_num']); - // 新格式返回为数组,包含商户前缀和可能的小程序前缀 + // 新格式返回为数组,包含商户前缀和可能的小程序前缀 if (is_array($prefixInfo)) { $merchant_prefix = $prefixInfo['merchant_prefix'] ?? null; $miniprogram_prefix = $prefixInfo['miniprogram_prefix'] ?? null; @@ -213,14 +213,46 @@ class WechatRefund extends MyController $merchant = $wxpayConfig['merchant']; } - // 优先使用商户配置中的证书路径,如果未设置则使用默认路径 + // 优先使用商户配置中的证书路径,如果未设置则使用按商户ID查找 $ssl_cert = isset($merchant['ssl_cert']) && !empty($merchant['ssl_cert']) ? $merchant['ssl_cert'] - : $path . 'app/common/ssl/apiclient_cert.pem'; + : ''; $ssl_key = isset($merchant['ssl_key']) && !empty($merchant['ssl_key']) ? $merchant['ssl_key'] - : $path . 'app/common/ssl/apiclient_key.pem'; + : ''; + + // 如果没有指定证书路径,尝试按商户ID查找 + if (empty($ssl_cert) || empty($ssl_key)) { + $mch_id = isset($merchant['mch_id']) ? $merchant['mch_id'] : ''; + + if (!empty($mch_id)) { + // 按商户ID构建证书路径 + $merchant_cert_dir = $path . 'app/common/ssl/' . $mch_id . '/'; + + // 检查商户证书目录是否存在 + if (is_dir($merchant_cert_dir)) { + // 如果ssl_cert未指定且商户目录下存在证书文件,则使用该路径 + if (empty($ssl_cert) && file_exists($merchant_cert_dir . 'apiclient_cert.pem')) { + $ssl_cert = $merchant_cert_dir . 'apiclient_cert.pem'; + } + + // 如果ssl_key未指定且商户目录下存在密钥文件,则使用该路径 + if (empty($ssl_key) && file_exists($merchant_cert_dir . 'apiclient_key.pem')) { + $ssl_key = $merchant_cert_dir . 'apiclient_key.pem'; + } + } + } + } + + // 如果商户目录下没有找到证书,则使用默认路径 + if (empty($ssl_cert)) { + $ssl_cert = $path . 'app/common/ssl/apiclient_cert.pem'; + } + + if (empty($ssl_key)) { + $ssl_key = $path . 'app/common/ssl/apiclient_key.pem'; + } $ch = curl_init(); //设置超时 diff --git a/app/common/ssl/1712082923/apiclient_cert.p12 b/app/common/ssl/1712082923/apiclient_cert.p12 new file mode 100644 index 0000000000000000000000000000000000000000..b08ea45a824225aa97f3be817c8b061a64502da1 GIT binary patch literal 2774 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 a`dPG_RJ+mFzlHXIz`+YbD7#F5{J#KN94XEK literal 0 HcmV?d00001 diff --git a/app/common/ssl/1712608964/apiclient_cert.pem b/app/common/ssl/1712608964/apiclient_cert.pem new file mode 100644 index 0000000..edbc190 --- /dev/null +++ b/app/common/ssl/1712608964/apiclient_cert.pem @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIENDCCAxygAwIBAgIUP1ZFM6WeQLp+1bnc5p7jfNebMeEwDQYJKoZIhvcNAQEL +BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT +FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg +Q0EwHhcNMjUwNDA3MDgzMDI2WhcNMzAwNDA2MDgzMDI2WjCBjTETMBEGA1UEAwwK +MTcxMjYwODk2NDEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTkwNwYDVQQL +DDDoi4/lt57mmbror63kupHop4bmmbrog73orr7lpIfnp5HmioDmnInpmZDlhazl +j7gxCzAJBgNVBAYTAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBALwbJXzIvbEF3e/tnh150YW95ZaCUUiziOnWBcoG +9iXS8OmQDZVtaIMhVhVpm+1ujO9g10WYze26noRmqUUcr7Ez9y64/kPC2pRuuCKW +gwoqFvOLfvVQ8s2mIq1WFwfJCpCaB6pUxqDF+CvQspi9/dN9zn1c2yI25mLKhzKE +OKVzHxD3fZCm1c+wDfMMi3tybPUZyqDMgzwEvJuOd2tvGYH6Hi+qkVDGAFY1mh3j +xkra8lscC5t8epU286kzr4oTvX6BnWRdWXRBh2YwnhUbAEeiRMepCB8oWqNyo3HF +/udaTNRstLPVC61xqO5/jBcEc+oyqfR4n7M6Q7KnaWmu/C8CAwEAAaOBuTCBtjAJ +BgNVHRMEAjAAMAsGA1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGE +aHR0cDovL2V2Y2EuaXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0 +MjIwRTUwREJDMDRCMDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFC +NjU0MjJFMTJCMjdBOUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEB +CwUAA4IBAQAWjcb44BODqXXM+xVeJWEWJ5E4AipE4rTGRvNM6A2jbxQ7TVPOZg7d +HzWhGVnpFUPXnplzWLa7yFuLoTseTIo0tsXuQP2eAhvfJVhzmCvA6PCpeaEZ04Nx +BsU3MezO3M37GvrkLKVlsjBKwPzhrEiwuTm6g7rC9x+N69/+E7OodTPN4mO5D2+i +0IUJvEHrVsGIfgWnEmfmedc9FqFvFxa/rSjHTkt9kkc4DQdNFsXV2nPi7fxMZA2V +iohkCmuBUSrHUZPLtWWL02XTYwlXIUZtLc7DvZyyEq65N05s1+GFPih3b2hQSLs1 +GHBrEYt+Oc4jThOncTIYl8xXuwpzsdGz +-----END CERTIFICATE----- diff --git a/app/common/ssl/1712608964/apiclient_key.pem b/app/common/ssl/1712608964/apiclient_key.pem new file mode 100644 index 0000000..48ba768 --- /dev/null +++ b/app/common/ssl/1712608964/apiclient_key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC8GyV8yL2xBd3v +7Z4dedGFveWWglFIs4jp1gXKBvYl0vDpkA2VbWiDIVYVaZvtbozvYNdFmM3tup6E +ZqlFHK+xM/cuuP5DwtqUbrgiloMKKhbzi371UPLNpiKtVhcHyQqQmgeqVMagxfgr +0LKYvf3Tfc59XNsiNuZiyocyhDilcx8Q932QptXPsA3zDIt7cmz1GcqgzIM8BLyb +jndrbxmB+h4vqpFQxgBWNZod48ZK2vJbHAubfHqVNvOpM6+KE71+gZ1kXVl0QYdm +MJ4VGwBHokTHqQgfKFqjcqNxxf7nWkzUbLSz1Qutcajuf4wXBHPqMqn0eJ+zOkOy +p2lprvwvAgMBAAECggEAChg22cx4CZD0CRUqYBCSgufe80XJEOq5lTrsEpxvBzab +wRz+7Z7ydd8LHJkPSh2dqJb81npNys0yBo7v1Iqmjw7n2/UHiCFj04VhklGbdKcv +liBNTuLqNMkOoVi2Ya+TRpFNigGEq0oUeF15yCKiBYCB3U5nYB2sHW8a9EYOOCqu +sx3RWw+J2bMzOIRH7aiRhconsSnoL4twNYLGVClg/bzk2HgQLMZfrhPJMDEwLAXJ +QNhV+h4qWbRc0WhZKMuT8mgVl9M4OgMCDm/DOc79fIp8GcnOmX77hbo+o/oOPESP +F853KRkZ7zdHWkn1cZQ9e3fHKRL/6xI/lpB4JUxOyQKBgQD1q06AhEKJeKG5rfDx +c7aVbKB3kaOPGb2HZobE3zZi+YvOG1TPfJRjYfW/sNw30So7JsZ9bBF5m/EdB9JJ +mA3pMpfbe/qswWORkvhjqwaLVOKUnOXvIeUMRbjvTlExpF0Uc+9ED7N1X8Vk94Ir +zbpBQ8T606Zu1uu8r6EowTIV8wKBgQDEBChV3DaFK9DBVDYjK2/o1LUx6rjCiBCi +P83XdOCgeCJsg32r7lum91hvyolQOaOFTD0vFuCrh04+cdZBr5XTR1M6q/vkcD9r +kNlV4xzhAG9teN8qgmzLcHL/mtpT01hmIoFyIPIgSfH0zS+exe2a+nstWwp1IbxR +hnpMwhOj1QKBgHUEyVrcJRl4VYitevR4CsN4P6NUwxTZzPae9pj2PeC9P0PIrwg6 +LjB8q+NIKk2IG1abrLZ3cId9qUcLv7YAcLfguob4sjnx0Cy6VgiboX1izJ6/caML +gR/sYh/TLUe5JAEnDBReajwBh3QFlYKp9ws5ba2QfVmUlCuHePuBswrTAoGAHkPi +EnfA90jvn5ooDcAcNF/7ZiyuwGKP5u1hE/5Y3I4QCp823UAdaKdSQViNYRS1OdSu +scGfiPyIST38bgH1aTzfDfUWHIx0TmB8HjXF9LvDeKysEH043SSMrQi04zKDuKll +QUDzAadJM5om2yYGbOJ1+GfRMoq18ASKh6WDsM0CgYBBFOBBVuiJKVg7yL+OJWEO +g5dd+Ayd+lr2PRq5hZRIlNE2v4q3/0QoGQ0bnksR8mL/C7flk67paFhjFxflyQyo +5lEMUxEXFsGs/Zn4yhuzfnZylBg2XO1J/qjgFDC+UpDOCQEEaeGJyHcVUb+LDZ+f +NhIIrUEgT3K5KW2vG3zwIw== +-----END PRIVATE KEY----- diff --git a/app/common/ssl/1712608964/证书使用说明.txt b/app/common/ssl/1712608964/证书使用说明.txt new file mode 100644 index 0000000..041befb --- /dev/null +++ b/app/common/ssl/1712608964/证书使用说明.txt @@ -0,0 +1,18 @@ +欢迎使用微信支付! +附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户号(如:1900006031) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem +备注说明: + 由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 \ No newline at end of file diff --git a/app/common/ssl/1713344509/apiclient_cert.p12 b/app/common/ssl/1713344509/apiclient_cert.p12 new file mode 100644 index 0000000000000000000000000000000000000000..b8bbdb18df295f7dd9ce7bf49fde26175457a701 GIT binary patch literal 2774 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 Sjv-tT!~jjb_Ip-jF6Lj|*)N>{ literal 0 HcmV?d00001 diff --git a/app/common/ssl/1713344509/apiclient_cert.pem b/app/common/ssl/1713344509/apiclient_cert.pem new file mode 100644 index 0000000..ef3e3a3 --- /dev/null +++ b/app/common/ssl/1713344509/apiclient_cert.pem @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIEKDCCAxCgAwIBAgIUTPj9YVXJQMSktAxEeT3IyQNUVm8wDQYJKoZIhvcNAQEL +BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT +FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg +Q0EwHhcNMjUwNDE2MDk1MDUxWhcNMzAwNDE1MDk1MDUxWjCBgTETMBEGA1UEAwwK +MTcxMzM0NDUwOTEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMS0wKwYDVQQL +DCToi4/lt57nq7nor63nvZHnu5znp5HmioDmnInpmZDlhazlj7gxCzAJBgNVBAYT +AkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBALVG8sOFVRBR4AXlIJnp3I5NOrh1XfCNqLP4HBuogvKfeIyW7WWPn4Gv +i5mI2v5XgbTA7dRzcxTAU08J5ZSkVQxWvy2qapSRwro0xyqrX60jZK3L8dnYtwPm +N/OtVVWdNtecNkK9C8YGHYFB7UgN6JY8ZXDXjZnfnTQFSUK43X/mlLcW4rTpDk6x +xPECaiuzCP7/4IOTbIzxFwHvYYapi2TW6omnWVw84rEN+5ldv/i7xZBIIrPzi99k +wBMr4ntppnN2emO5di8vMjJEfCy1Yx6I6VjxKQdMsEQXnCerXSI4L4CT93bHFpNv +bM181ARnQ7Ixm48A9O/37QsllSjiYDMCAwEAAaOBuTCBtjAJBgNVHRMEAjAAMAsG +A1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2Y2Eu +aXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJDMDRC +MDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJCMjdB +OUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQCE+N++ +UU8e8J/s8nO/xKW2s3wA4Wf0ceh6QUMrJM8WUKmuOXMWK3zg7ujLIMIniBoBj647 +IFuVpj9Cc/iZ9itAPorYbGYgZZ7Fp1hIN3NympXxv56Bm2yR8k2Sde6mAlbCWWVp +f65+pOZx+E3lUGaMBzRSsfIQUIdxhpvPJxLrswRBY2bdrrz0pDUN7eGE7uvF5nzz +Cs0Hdp9w2IPZD8jk8CgHobWyD7C0c+55jji6TiYIfsbWPG7UJDqvs7IlAVxYPz/R +CUQVpcoSQOlXk2tSrPeUa7huneZQPX/UpSyDkLJ/EndZeFggUgM6ItK+CHRhjhCI +JiEZQMHeZFP86nsc +-----END CERTIFICATE----- diff --git a/app/common/ssl/1713344509/apiclient_key.pem b/app/common/ssl/1713344509/apiclient_key.pem new file mode 100644 index 0000000..7f80168 --- /dev/null +++ b/app/common/ssl/1713344509/apiclient_key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC1RvLDhVUQUeAF +5SCZ6dyOTTq4dV3wjaiz+BwbqILyn3iMlu1lj5+Br4uZiNr+V4G0wO3Uc3MUwFNP +CeWUpFUMVr8tqmqUkcK6NMcqq1+tI2Sty/HZ2LcD5jfzrVVVnTbXnDZCvQvGBh2B +Qe1IDeiWPGVw142Z3500BUlCuN1/5pS3FuK06Q5OscTxAmorswj+/+CDk2yM8RcB +72GGqYtk1uqJp1lcPOKxDfuZXb/4u8WQSCKz84vfZMATK+J7aaZzdnpjuXYvLzIy +RHwstWMeiOlY8SkHTLBEF5wnq10iOC+Ak/d2xxaTb2zNfNQEZ0OyMZuPAPTv9+0L +JZUo4mAzAgMBAAECggEARxvppuDqmVhEtItI2pduOTP6UNlZXD91agNtozvbAimk +NCIQRcKtI0YlULjqjtLswmbb5HbVMdKv21VahZBg/FIa9GLhJB55cGm7pvVKtrQn +jjVuTbJBOHpagHACBW+CT9mrP0rBD5DeihG+boFmN2jBsh4cIbwiAoIAVvgFi2HR +/Jr7BXANsbyD5yka8uNrQR5eq5vJnOmVY2p95uiayP0lGMbi/A7x8nBY5NFYBrpQ +1j2ZyFYtQnAj1EMt9w0TbMH04vuuUpaUatgxmePCUoyYdEDHaBaG6cTXD3ePr98Z +kv/vf80fotPIl3lJCCSG9p3O6O8EtZbTVUFike60AQKBgQDwCjitdu2W6Q2Ha1Hq +8VvtgvJ6/liANjYO+VdhibUg19oXUQIW46PVW/Lp2MdQxCjYGz2Oi2CTgw/IMnAg +5MKgXR/o+O0WwhlsFBuLKhYls1Qi6qbidJSChm/9w5kA+GJOMVq5Ri8uQCGQM8qP +LLRhJj+C4itEPRBB99p0sgvRswKBgQDBVILWUYJYls/hPBwaGDh0iyHpgPvHAl/f +eYS/fHjCzW+4MjFkD1e1K6hcJZRGaq6nqoLpLjDZIFS/HQJQ9hlvtA8X1zccAgH8 +wMmoscoY1H4nz78lYmyCBbaWV3+go+SGHPsAIl3/WUjjdXhtiV+lImIg5J6+33tG +vOQLHv73gQKBgHfVwoHnE6n5Y0Wt8FGIeUpTy1ZX0DsB1W8YT+Vj6EcjO7/UM2TV +9J65rsXL8YWCyJlK0CpvrqE2FxTtCUmCqx+AHkQiscpg0GxChZWuRyw/IMvltbbs +WI/pKdPYaHQxjHJY9V/1h+xhG+Bv2rorqUmu3Jos60i/63Pjlu4XTQs9AoGAErqq +NjMNSqHJn8tf+ZMxHPFBpsptGdl8Cj1Og/J+DHk0goayTDxERfPlyo+FbtD0/J9D +MW3dI5vDOgSIbel5i13JPIkH+LmlEaRnpOUcbA1h719r6CZB1tLQ3n25iol2IRv7 +oQazToKK0iZWNV5imq/bC866JkmmOrMf8IffMYECgYEA1uLGRgdhYA5l/muZrHZe +L+fXN2ssxPXDd3X2JdtD/bZU+17bWmnSotgOmBWgeiMea6PdqzpS2rTxrPVPFBR3 +XRWD1ATDUMaWCkZpdOvnqm9ozjA+28bw9izR3k9gEeEjdbEC1Ugr5jgpMDgv+B9I +rszAiVh6UQUb7B02A6GipZM= +-----END PRIVATE KEY----- diff --git a/app/common/ssl/1713344509/证书使用说明.txt b/app/common/ssl/1713344509/证书使用说明.txt new file mode 100644 index 0000000..041befb --- /dev/null +++ b/app/common/ssl/1713344509/证书使用说明.txt @@ -0,0 +1,18 @@ +欢迎使用微信支付! +附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户号(如:1900006031) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem +备注说明: + 由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 \ No newline at end of file diff --git a/app/common/ssl/1713597386/apiclient_cert.p12 b/app/common/ssl/1713597386/apiclient_cert.p12 new file mode 100644 index 0000000000000000000000000000000000000000..32c619c8ec20c5a2538a64eb95399c5a7a26870b GIT binary patch literal 2774 zcmY+^X*kr676$p7WfS9~72$5)7h3VQKSWG?(Lad&L-@mK_}WLFbxT=^g@)H42>^(S6LQOMSi+W{Iqx~v^$n6>}m(Gz456t&1sJH#gB z8}B+-R)e|hWOX;Z@W|^I^Q;WUwv#U5_;KB$z+H5B?I8*6ex%oz+SN?63`>rU_*#iR zfcgi97)&w{uYW!oNIoA>lXcoVdTTtWj7~G6-}qcZYkl@v|9_;l46#&S z8H4o%7RjY@Iz30aoB9ZhA1+SAL^iOv1Im^2R;qajanpYImM>+f_1OvH8>x`eyFvy) z_nu+S>k$2j3ZEp7yDT*k8#A-G(eUJWJy5qpns=q2{SK>ToGw!>S*b&VW-S#+r^}Ww< zIQOfgr^Foo7$hsw!CW|X)}Qi=tEjVa%;GVLs-RtetNB`bUDoeQ?r0EL3d; zo*QK{NaR1ztX!RrBu+9zCiBuB$R_87Ik|q1*Rgy?WS>wAD3sxQd#9n9iEEm5 zR9I#q!Z7#xU=Ze>rq)uLFj&68MGzgxgxE!4iY9c+h2K;n+T8Q|Li)pMf;iCcy^#WWPWqZ$L(FW>l%&l zIXlM6H~kB2sO-pD>VEE!8{1>6AZ_;nqskg4`-kO&bv)dhYw-BeFC`QApd!-Gn~GQT zwMrCU_`oH|`QOBCmq)jFmh5Sl&hE>Htr35oaV;im^8Cpml(spDq*@N@O%wT2)y6vo znH}Xh+9r#io@@PL700wiR<5x9^48mL#&>=YZ_0g1`N5HFiCTG z+Ev*`4`V@{EfMRtNh;(es*~HJvwpe!%D>kATdy$Zn7=S;4OV08VREz>dY})lZ(O3) z!%zQ_H6gW%D?Sv_`gDs_d7^;&2}{_nQqWn2>yrP>%FGwNIRPY9s5Xuw1=8u3;f2f% zcUBK)9d(QLbs!Nzj=WHfeT^r0b~9+Rqm9}gnZ45V-4)Y`EIw8r4`WId=FVQ8-xm)S z^<#=fhMk8b=lxfhlAGp@6zmc>2Hwe^#k7eIaPJUhGTL@GwP!d89^Ak##?^Vl+2muADv3H6>GHCDc^j+U70Aua9U{ zxEZ111o{|@tK9(I=q>cojkiuHSXXI^{uBg^2dTFtBtBBiWMk>G8F6%JG81CS+zF)h`%HGh{OoRmL4y_b$%HOyklunF9`31{9p>pQKBf^mMy}FmBJ{+Da=7WS-ocW zU|u^IWKS+siKp%O4$t5lko~B%%AD2q-3spTAA?8dWq(9A5NN}!W@~nKQkNcBz^FQR z0XhXsrKsk)to?lBsqJL-qxH{u{gWI6cBI7R0;{**Vp_*nfins^K!IaQ?mUW6y%ItQ z=O`#vh{W+o$#iDV@ptb=ZD*756R#q0yY5}rehO_HEpkkY!i5c2-VCz~3|O>Re*$`? zM}FuR7H#iP!F!@Dl3!EWFa$DH8dLb$dvhhYIg4r|amsC+3Y zd^_t(b*=^r9AmoyTt-p?$b{hQ0_VxU;+AM#%0GZZ;<5urZIV*w5XR%6Z@w<=62)T@ zWsfGNWNS6NkxGg^DM`zAkDU4VL=1g!(f(4q9KqJZc9aoVT2Wk8`I8FXW7o@s9(!A_ z0Y*&bv(U#`xEPXbLyos-tC{GK*7)+dHTp#swnbh6(eyU3IajSg&04 zZAt(9g4$X%8_`5aGG%P-YklmZ(7SEV^hlljbjB;>b{1=8LCcSkUB1*;#JGih>ol=% zY0S8dOK{MQJtRZE(K@WXC7{*DIvNT|<()3iLpjEndDfxCbM5CZT4 z+NYBr5CFIXuBYX6ng#$aC@~ZQMFWG1GEjjzp#X%nVgg_J+zg-B67~iu`5AhVByC9t Ofs=a~lI1xT3I77wWe&~& literal 0 HcmV?d00001 diff --git a/app/common/ssl/1713597386/apiclient_cert.pem b/app/common/ssl/1713597386/apiclient_cert.pem new file mode 100644 index 0000000..a9d4096 --- /dev/null +++ b/app/common/ssl/1713597386/apiclient_cert.pem @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIEKzCCAxOgAwIBAgIUUKc5BQgwf2K/HhV7l37VmPAjakowDQYJKoZIhvcNAQEL +BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT +FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg +Q0EwHhcNMjUwNDE2MTAwNDA2WhcNMzAwNDE1MTAwNDA2WjCBhDETMBEGA1UEAwwK +MTcxMzU5NzM4NjEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTAwLgYDVQQL +DCfoi4/lt57mmbror63kupHnvZHnu5znp5HmioDmnInpmZDlhazlj7gxCzAJBgNV +BAYTAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAK+oeeFXzXHIwqsCoFmfTlcKG3sGZnwWUSw0iasBOi0I4nPB96bc +0z9OnYsethIcO2EhUEWxxa7kI2R6/Gh8bw+MYKj3b9KNp+nPKYQkoQf34XPCJKQ7 +Xai7w5b4/xyjgFFF09x6swI+4oMQC6dxAI13RffU5yKaXIECh9vHHb+8C69aRJfo +qw9Gl9g0Z76OiJgRQcG/udEpbJsPkNywSGMsf7xZrbpv7KkWQeHaRC3MGZLu9T0p +8b02bFJjaoQmfItovHogApMZSuLZ5fJnMm2Dr9GFowessUPEDQOyOYqr5r5YpWkV +wQgnohi4+IL1o42opQ3yO7SCYZRkDj2nXPECAwEAAaOBuTCBtjAJBgNVHRMEAjAA +MAsGA1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2 +Y2EuaXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJD +MDRCMDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJC +MjdBOUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQCQ +xhnEUjMb7uY1cfNLxECo+VvTvxF/Er62aDAH609oCttQICUxwXchahB8OXbhZaqb +TzS7aQPhFk4o436iTZ3NeRyCuRqdnfV57drwZjsPFlJQuTLKBCHhnSuIm1kOW41u +c3jm6hF38Q4dZKNqwjKmSD5PbQldjMfjlJ6QN0HHzURsKG1djfgAPpG6jTOob8RZ +o7gyuJLauYsWd9FlaCeDsSM45IyFoPCGgupNQau2iHK8xtQOeb4xwDUAxMV0juKT +61cO0y7Knmkl4R9C09QA+fzAr0yU2OXjipAQCdKJH4eTSq7SnktM0KFER57Y/Srb +Q0LKHAFrhAjoW36qsEqd +-----END CERTIFICATE----- diff --git a/app/common/ssl/1713597386/apiclient_key.pem b/app/common/ssl/1713597386/apiclient_key.pem new file mode 100644 index 0000000..7fd04b0 --- /dev/null +++ b/app/common/ssl/1713597386/apiclient_key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCvqHnhV81xyMKr +AqBZn05XCht7BmZ8FlEsNImrATotCOJzwfem3NM/Tp2LHrYSHDthIVBFscWu5CNk +evxofG8PjGCo92/SjafpzymEJKEH9+FzwiSkO12ou8OW+P8co4BRRdPcerMCPuKD +EAuncQCNd0X31OcimlyBAofbxx2/vAuvWkSX6KsPRpfYNGe+joiYEUHBv7nRKWyb +D5DcsEhjLH+8Wa26b+ypFkHh2kQtzBmS7vU9KfG9NmxSY2qEJnyLaLx6IAKTGUri +2eXyZzJtg6/RhaMHrLFDxA0DsjmKq+a+WKVpFcEIJ6IYuPiC9aONqKUN8ju0gmGU +ZA49p1zxAgMBAAECggEAAXB29zK5+zmy5qXR3IoioTHzAbIOuuuP5LXVfvI2oNHW +0S4AsnxSus0RG2e4BDP5BJW6S6fmP8WcyKD9WnnSiyUSUbAdWXNRsefBplSKgT81 +uLYZiML3xH8tXhpSNNDeJ0xULRVQTC9pubsy7T9Oytn0V9CFyFHNej0kEdfy1XRY +gtoz/WczlK/PNrplw/gt+3OD83z8mZix9If/y+/8qzKZaLiDUM0WhnwNXEDbeExC +SDJuGclVuv3mrvV0uQAYtxuV1OqsnDHlg/ynls0CNPbmRfFn70ySC7FOi43BqTJC ++JmT0YdH5YRD7TUm3aVfx2Q2yR8Pjr8fPxmSY8zb8QKBgQDoMsZUNlueWFFtYfm+ +tSTyf3/KNhCoSLOYWlLJ9WeSpnj6g9YcfnacZZ+YsI3CHcvK0mH0qb8O/29zPH0l +EnvLqx5U8+hQaoMcS4GVxf3Uc5VKh1qOJpV5ghsnGVLoQ+TkmJ6hC8oFhodytFXc +y6J50LSYiP+MYJYCE8Q0/ebmDQKBgQDBqgC0+nzZSCwJT8zHXz+oYy0p1o8WBbKW +K8iJ6cVSfaVn/PX2oF6zJhuuSnYdZmrRKCMHJZBM5QtMlCoeIp30eSzgX1yhDxQs +vWbRJe3kbMVIwu6YmGNUPAJomp2qcjIw7qRddgm9/Ir/fpHKxQkRiXh+S9CDj6qW +skpIJePddQKBgQC+4+80kDOl68mVeTSOWfF0AumV3fi3wH0VRTxGmB976qwOl4/Q +gQ8V6F3ac1s3OLOvnGG3eE2AEPMY86OWdKmdeKJJCPP2GHqNKm3wKYNRw2v6h2gk +8Qd1i0azUBhepmJopCfVEhIVlNGJtUPZbve12aR+ujIMv+LS9lkZj5rhiQKBgQCI +JDFhCGHyASlr1lxXn57Jiga6zalCyviTVu4f/WWIquk3Y/2oxW4tNFHrQU8tNc1L +gZK2OHLri2xZBiNhkeZGcVTZ2k/srQP6u57m0moc1VYO43IFdcMF+TWcQW0q4CJm +gaysQwlwNHOmTlzBFahdWq2I41UO11UNoQJVG8XG7QKBgQC+/aP6KvyT750qINN0 +Pa0eK4vf3WHkggAxhM9c/AeLzH2eFi29jNmGtd/Kx3W0MuEcHD9tHaEGidd3lU3j +PPkRkNOxdMqyMuHWqzo8i0sCPRHE3/J78Ew27w5HKnTY2RM/k1EntE19/DL9YDLQ +BsQIsxqbFbxPzC+1udDEhkQg6A== +-----END PRIVATE KEY----- diff --git a/app/common/ssl/1713597386/证书使用说明.txt b/app/common/ssl/1713597386/证书使用说明.txt new file mode 100644 index 0000000..041befb --- /dev/null +++ b/app/common/ssl/1713597386/证书使用说明.txt @@ -0,0 +1,18 @@ +欢迎使用微信支付! +附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 +证书属于敏感信息,请妥善保管不要泄露和被他人复制。 +不同开发语言下的证书格式不同,以下为说明指引: + 证书pkcs12格式(apiclient_cert.p12) + 包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 + 部分安全性要求较高的API需要使用该证书来确认您的调用身份 + windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户号(如:1900006031) + 证书pem格式(apiclient_cert.pem) + 从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem + 证书密钥pem格式(apiclient_key.pem) + 从apiclient_cert.p12中导出密钥部分的文件,为pem格式 + 部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 + 您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem +备注说明: + 由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书, 2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载 \ No newline at end of file