Commit a1aa57cb by banice

config添加

parent b7ed3eaa
......@@ -2,5 +2,3 @@
Homestead.json
Homestead.yaml
/storage/logs
/lib/wx/Wx.php
/storage/cert
<?php
/**
* Created by PhpStorm.
* User: suhangyang
* Date: 2018/4/28
* Time: 下午1:54
*/
namespace Lib\wx;
use Lib\tool\ArrayToXml;
use Mockery\Exception;
use Log;
/**
* 微信公共类
* Class Wx
* @package Lib\wx
*/
class Wx
{
const SSLCERT_PATH = __DIR__ . '/cert/apiclient_cert.pem';
const SSLKEY_PATH = __DIR__ . '/cert/apiclient_key.pem';
/**
* 生成签名
*
* @param array $content
*
* @return string
*/
public static function sign(array $content)
{
$content = array_filter($content, function ($value) {
return filled($value);
});
ksort($content);
$str = '';
foreach ($content as $key => $value) {
if (!empty($value)) {
$str .= $key . '=' . $value . '&';
}
}
$str .= 'key=' . env('WX_APP_KEY');
Log::debug($str);
return strtoupper(md5($str));
}
/**
* 验签
*
* @param array $response
*
* @return bool
*/
public static function validateSign(array $response)
{
if (!isset($response['sign'])) {
throw new Exception('response does not have sign');
}
$responseSign = $response['sign'];
unset($response['sign']);
$validateSign = Wx::sign($response);
return $responseSign === $validateSign;
}
/**
* @param string $xml
*
* @return mixed
*/
public static function xmlToArray(string $xml)
{
return json_decode(json_encode(simplexml_load_string($xml, 'SimpleXmlElement', LIBXML_NOCDATA)), true);
}
/**
* @param array $content
*
* @return string
*/
public static function arrayToXml(array $content)
{
$arrayToXml = new ArrayToXml();
return $arrayToXml->arrayToXml($content);
}
}
-----BEGIN CERTIFICATE-----
MIIEaDCCA9GgAwIBAgIDdYNiMA0GCSqGSIb3DQEBBQUAMIGKMQswCQYDVQQGEwJD
TjESMBAGA1UECBMJR3Vhbmdkb25nMREwDwYDVQQHEwhTaGVuemhlbjEQMA4GA1UE
ChMHVGVuY2VudDEMMAoGA1UECxMDV1hHMRMwEQYDVQQDEwpNbXBheW1jaENBMR8w
HQYJKoZIhvcNAQkBFhBtbXBheW1jaEB0ZW5jZW50MB4XDTE3MDEwNDA1MDAxMVoX
DTI3MDEwMjA1MDAxMVowgZgxCzAJBgNVBAYTAkNOMRIwEAYDVQQIEwlHdWFuZ2Rv
bmcxETAPBgNVBAcTCFNoZW56aGVuMRAwDgYDVQQKEwdUZW5jZW50MQ4wDAYDVQQL
EwVNTVBheTEtMCsGA1UEAxQk5p2t5bee5Y2H6bmP54Wn5piO56eR5oqA5pyJ6ZmQ
5YWs5Y+4MREwDwYDVQQEEwgxNzQ2Nzc3MTCCASIwDQYJKoZIhvcNAQEBBQADggEP
ADCCAQoCggEBALtVW5iih4ErzBrUkkU0GxmpJQxX+855sNPzGmMSM7aGFv5SVChh
Je5bVpkEPEw0xelS6h/A8g1twQlZ/3lXYd3JQv0J2aK6yIZwTNbIQG1tjmZ432MF
OIDBFreKjH+mY2yKijR+9KIn9ZdCt/44gB7ww8ynXMzqMdLiW6hQtS3WVA7U8swd
XFpl27+ydPNJkX4XkZsOXpZZKlUxgRP9vsd/BpE7nrtAXtmAVaD+0FmZpnPg1r5c
SpI7tmPDFBl0loW6Td03bzGYkwzKi++CI+f3S0IK+gI19TWxr9afubogu/+b468S
YdIMQS6I2B3pSrDal+ZrjPFB9GsHnrMUJEcCAwEAAaOCAUYwggFCMAkGA1UdEwQC
MAAwLAYJYIZIAYb4QgENBB8WHSJDRVMtQ0EgR2VuZXJhdGUgQ2VydGlmaWNhdGUi
MB0GA1UdDgQWBBTkus4vE+080GpWbHTXouCXH1CanzCBvwYDVR0jBIG3MIG0gBQ+
BSb2ImK0FVuIzWR+sNRip+WGdKGBkKSBjTCBijELMAkGA1UEBhMCQ04xEjAQBgNV
BAgTCUd1YW5nZG9uZzERMA8GA1UEBxMIU2hlbnpoZW4xEDAOBgNVBAoTB1RlbmNl
bnQxDDAKBgNVBAsTA1dYRzETMBEGA1UEAxMKTW1wYXltY2hDQTEfMB0GCSqGSIb3
DQEJARYQbW1wYXltY2hAdGVuY2VudIIJALtUlyu8AOhXMA4GA1UdDwEB/wQEAwIG
wDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAjANBgkqhkiG9w0BAQUFAAOBgQBkX0J7
+KkfALIp00dSk37GjSfN35/K4lr//c5XarTw++wQJL9o6teaXTblnRqr6q2xt1uB
wvHUoYEmOCz/+7p8vpdcAWnOZP844Qwhxy+9iq471AaqCFtghgYhH0WtnBLUyYbu
KrpIsYBoqnGPPdFV7kXslKfhyOSkM/UnEX4/ug==
-----END CERTIFICATE-----
\ No newline at end of file
-----BEGIN PRIVATE KEY-----
MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQC7VVuYooeBK8wa
1JJFNBsZqSUMV/vOebDT8xpjEjO2hhb+UlQoYSXuW1aZBDxMNMXpUuofwPINbcEJ
Wf95V2HdyUL9CdmiusiGcEzWyEBtbY5meN9jBTiAwRa3iox/pmNsioo0fvSiJ/WX
Qrf+OIAe8MPMp1zM6jHS4luoULUt1lQO1PLMHVxaZdu/snTzSZF+F5GbDl6WWSpV
MYET/b7HfwaRO567QF7ZgFWg/tBZmaZz4Na+XEqSO7ZjwxQZdJaFuk3dN28xmJMM
yovvgiPn90tCCvoCNfU1sa/Wn7m6ILv/m+OvEmHSDEEuiNgd6Uqw2pfma4zxQfRr
B56zFCRHAgMBAAECggEBAIkbmiSGoCJ8SbBBcKTR1Bvd3k3Af33JNxCJVwC3q72l
OmL9IrdDEx33H9RycydbYJa6pryC3SXS9HvBsOfAetJ2oV7NvMoLZwRuYO66Nd1h
V93MDcNNaONjbxr6foZW42Hnq+tsF+Qu1uLUZBHejHcYxFWfEJ6xsbGlFmyEVXar
rNpuI6ou2XzuyJJblkYKlBBxKP9cgQSQTS2GRKy/UUCGub04K3KI1XU81JaB7tVT
jUWh9tWQYRFXV5eu4WFuXX1gc1Dlx/EAx5d7pnWdasgiTtV75IrK/7Q6MVksZbfV
dxVc6SOU0UPAl++nes0XDdS+Kl3CkTh/t7YZRHCg22ECgYEA3SHQ6D5exlWhUGE+
nRTOjRPpTtF+Q69voNKRG7Ol9BsObGwJymixzVuOnKSmAZTUWxa059+Hdng0e38/
4wCVQgjqrQXCqPHtvJzgonBAmPR5nnxxYnRCaQLfgWGq5rtcx/bvBlniWkU01qJl
OKBGikSgnre7Nrp1EmliY8UKWh8CgYEA2N865URTC4AV7WfYUP3TgYsVM2crqJi/
nu8yc00AU7tEN59Z2qt+OeNhP3PXlA281lNNUc/3Y2eYfZngMM6qoF87q0uQhd5F
luRfo3IxAZu1/2Q5zSVpEXhq46UDWNlIK4ZXzIohy9XizqjgliBdeJNbsrCvbJpX
2XfQiFx6QNkCgYEAyRU2DeqhbkNx1FEJiffgt8MydjzkT5JZtOmlkIY1U5vC6u73
nDrF7FLkhSbn2ipHTKmCShQm76DxQJf/NWJTV+AZ3sqNL+oHYGtbjfr7kttFOMw6
oufLeAhnzBRPP0+DWEcBJkpYHfQuzzqPRwXf/13WnV2//U1ipiJ0mPsVpcsCgYEA
zGqVK/cbw7JGeNCyD51A2FENebccar0XmSpjRlTlIwdXhIo5+qg8wTm2t0VshMvy
G57HOX8p8tN546G/tKGIKMO7DXmbTuM0esbl8ry2vopToNeKt/g0MdhsAAjQv9WG
digZ59yngGcpcpuxnTACip1zCFoL7/UHKx8JOw7X2PkCgYEAnSVpbHRWB5YF9dbG
HN/DZ3QQl3UUHnZLqv8a0Rns6MZaFkATu7OfxxnARaUu6xqHIHUcGDF2rLJAOSC6
3sryunVllgap6/9LcjPIIQYF4fzAq3YG7a7hhbotXFC+2zCkZ6rXbNMN6LnY9HiN
ilF5miFrnMFnZuRr0I9kaqybeCU=
-----END PRIVATE KEY-----
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment