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 0000000..b08ea45 Binary files /dev/null and b/app/common/ssl/1712082923/apiclient_cert.p12 differ diff --git a/app/common/ssl/1712082923/apiclient_cert.pem b/app/common/ssl/1712082923/apiclient_cert.pem new file mode 100644 index 0000000..caec788 --- /dev/null +++ b/app/common/ssl/1712082923/apiclient_cert.pem @@ -0,0 +1,25 @@ +-----BEGIN CERTIFICATE----- +MIIEKDCCAxCgAwIBAgIUUFMnCJAwxyz4kMNlFByTZXo+tJkwDQYJKoZIhvcNAQEL +BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT +FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg +Q0EwHhcNMjUwNDA3MDkwODI2WhcNMzAwNDA2MDkwODI2WjCBgTETMBEGA1UEAwwK +MTcxMjA4MjkyMzEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMS0wKwYDVQQL +DCTmtbfljZflubvmvKvnvZHnu5znp5HmioDmnInpmZDlhazlj7gxCzAJBgNVBAYT +AkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBAL292ZSMPgwXucmQ26rIZjaSYCRyh1BErz/uk6/c5UWBsmmJqLohIeF8 +LzDBT/kwVPoChJSAO2dQ2xtCqqzvfjB13Jz5aju5HK1Fpe6fQkWQ6QOC7B15Fo8B +QZ1G4SuztvH3H5ghwNoH2hHmxG9McdcI4KsuUl2PjJW/C0EaBHJ67DdtolWaQuhQ +B5C7PTvZ747kLBMeSSVAWTWbAX/ceyP4FCDiEmpWeiTMkqmmUoCwGr/cynmsgJvR +2wlbJo/MLD/cuqzhwSMpWx5QBZ6aIhH3uAIC8azbVAT68txQd1wM8aBxbh8Lix05 +iq+5M1eYBWa0h8pr2hbKh/9HMdgxPl8CAwEAAaOBuTCBtjAJBgNVHRMEAjAAMAsG +A1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2Y2Eu +aXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJDMDRC +MDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJCMjdB +OUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQBdi2IW ++gMqzCHTAFcuq0i5fQFLan02QBmorOimMU+G3fUKtOm9XhJrCF4ajz+aYH8cpwV/ +FmfhG0bJ6YFn601m0PTQ6RkiJlZWe0YoZ3VSvvfZQ8GaqY+AZ3CvlOqxZ8kc7KX+ +rotYe6NtY/oXOjfDodoRjZaa5piu4dHhCzBI0yj50L3EUfSVWZATBkGsvffhUSvy +p6HqQLcAkkIqdwh0+p5ntUgHoXP0yH3k52IEMgoLwqZeR5TOGKN7t0EHfNZTzXVc +ZujwDgGukW4ADofPVrXwqVgxnnKgpb3KFvssz/Yt1VqpvjemKZO+rGZabvaT8Zz8 +d99FDLbLIeNFgmqO +-----END CERTIFICATE----- diff --git a/app/common/ssl/1712082923/apiclient_key.pem b/app/common/ssl/1712082923/apiclient_key.pem new file mode 100644 index 0000000..e430178 --- /dev/null +++ b/app/common/ssl/1712082923/apiclient_key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC9vdmUjD4MF7nJ +kNuqyGY2kmAkcodQRK8/7pOv3OVFgbJpiai6ISHhfC8wwU/5MFT6AoSUgDtnUNsb +Qqqs734wddyc+Wo7uRytRaXun0JFkOkDguwdeRaPAUGdRuErs7bx9x+YIcDaB9oR +5sRvTHHXCOCrLlJdj4yVvwtBGgRyeuw3baJVmkLoUAeQuz072e+O5CwTHkklQFk1 +mwF/3Hsj+BQg4hJqVnokzJKpplKAsBq/3Mp5rICb0dsJWyaPzCw/3Lqs4cEjKVse +UAWemiIR97gCAvGs21QE+vLcUHdcDPGgcW4fC4sdOYqvuTNXmAVmtIfKa9oWyof/ +RzHYMT5fAgMBAAECggEAM8EZHB+0vO+ryYMtp8PJvZDnkIl8xzQ06SdWOV3zW6Yo +2AiocTygVTTeWlogSkQYqakOKMNhcKjpWuIwU8NvlCBR8K9HfsrbO5gHzrK6DOed +50tKxC9HK/KXxyKSQK1gdVeG0qRCSjZiEQf1BLbBRnoxbf/Qj5ycKCxYEYXbOK49 +cNVil7HS9118Tc2AMriyE7Uf2By+LVD2vjwcwVPCcAngKafunQSXOjHoulIhBbN7 +D72OQ5i/a/PdNeB8mZLNtlydRFk8+NByqPh4FBi3P78BEHeuemkI3H8vO9MgpaPg +4ClPHI7qdaFrGbtNINegW0WKioZzsxcQFPPHuPkWYQKBgQD8b3lM8uT6rmxaRSE9 +2TKFtBd0BXkXw9AoClCZK+B8LLJimVh7xpXpUAdUbnR6NCBpu/NnxDsJnS6+vTdU +F7aFJle+wKvGGEtRSUmBP9VOlA2pS/GIU/FUDDuS1sY8F3YO0usykj/K7zOIzYFR +wuy2nu3/Z8oND/z9p+tstRG+jQKBgQDAa76qx6K9z+iM/2N+CTi69l1PF5qtXrNx +Ko/21C1vW+o1dcc4vQaQC+sQzVdgAZHqI1n567RxfEUmIBCKFytfl9qDf7y/9Cmp +ALAeVxTcTpDa/eQO3eBFqey/WwfKSzoM9oIPs4w8w3pW9jutn17RLGU9SSBsQK1N +ODK+00IbmwKBgD0vk9o34ZJ1ZqP2r5j7JUjNHwYrMW+2MaUS4vhNb0sJ1m8Zth3C +Q6HamPw5DZh1PAoE2XmkUZ8B70uiN1/1o3LgmVIOB1SrnM3mEp/2ZfB26FzJoJCn +sA3sLSBpWIFGOoJbU1DdrAK3OemFzjuQIKofGZbXhFzoLC0bX2/o75UdAoGAI/L9 +SELL8NJrDAyate1bH/LvM9uhFkrfE4F0LBUv9+IgO6Spd7w5Aah4Xkc+z7z7WdcI +9FxI9frVoG3VKTdy7wUb2f1/cg1Xyy9JuCFk0FQNVByjAvQI9nrstEN5jR3I1qsn +WW+d/6w1qxGNzL49pK66q1yCJjdfKVIaiPRHIYkCgYAji4UNebI2Yyjgq51U4Ia7 +ARnr1a8udSA26/A0JCaZ5OLPlHXfEXjdyJA0PBvVa1DS01QYtA8l76fmJoSoPxGD +CiWV8/B/7dUQVyaYeiAHiTIYarp1m7w2rhPfEeHqSkt58+0ywtcnSxh5qLVAuQ87 +l8cWDX7WhEKST2o7wM9wmQ== +-----END PRIVATE KEY----- diff --git a/app/common/ssl/1712082923/证书使用说明.txt b/app/common/ssl/1712082923/证书使用说明.txt new file mode 100644 index 0000000..041befb --- /dev/null +++ b/app/common/ssl/1712082923/证书使用说明.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/1712608964/apiclient_cert.p12 b/app/common/ssl/1712608964/apiclient_cert.p12 new file mode 100644 index 0000000..6635c72 Binary files /dev/null and b/app/common/ssl/1712608964/apiclient_cert.p12 differ 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 0000000..b8bbdb1 Binary files /dev/null and b/app/common/ssl/1713344509/apiclient_cert.p12 differ 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 0000000..32c619c Binary files /dev/null and b/app/common/ssl/1713597386/apiclient_cert.p12 differ 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