Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
cdz_pay_v2
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨苏杭
cdz_pay_v2
Commits
a1aa57cb
Commit
a1aa57cb
authored
Sep 04, 2018
by
banice
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
config添加
parent
b7ed3eaa
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
190 additions
and
2 deletions
+190
-2
.gitignore
+0
-2
lib/wx/Wx.php
+134
-0
storage/cert/apiclient_cert.pem
+27
-0
storage/cert/apiclient_key.pem
+29
-0
No files found.
.gitignore
View file @
a1aa57cb
...
...
@@ -2,5 +2,3 @@
Homestead.json
Homestead.yaml
/storage/logs
/lib/wx/Wx.php
/storage/cert
lib/wx/Wx.php
0 → 100644
View file @
a1aa57cb
<?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
);
}
}
storage/cert/apiclient_cert.pem
0 → 100644
View file @
a1aa57cb
-----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
storage/cert/apiclient_key.pem
0 → 100644
View file @
a1aa57cb
-----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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment