初始化代码
This commit is contained in:
51
application/common/yun/Base.php
Normal file
51
application/common/yun/Base.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
namespace app\common\yun;
|
||||
class Base
|
||||
{
|
||||
public $paramMap = [];
|
||||
|
||||
public function __set($name, $value){
|
||||
$this->$name = $value;
|
||||
|
||||
}
|
||||
public function __get($name){
|
||||
return $this->$name;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加paramMap数组成员
|
||||
*/
|
||||
public function addParam($key,$values,$ignoreSign =false){
|
||||
$this->paramMap[$key] = $values;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造函数
|
||||
* 初始化router和method
|
||||
*/
|
||||
public function __construct($router,$method = 'get')
|
||||
{
|
||||
$this->route = $router;
|
||||
$this->method = $method;
|
||||
}
|
||||
/**
|
||||
* 请求路由
|
||||
* @var string
|
||||
*/
|
||||
protected $route = '';
|
||||
|
||||
/**
|
||||
* 请求方式
|
||||
* @var string
|
||||
*/
|
||||
protected $method = 'get';
|
||||
|
||||
/**
|
||||
* 获取请求路由
|
||||
* @return array
|
||||
*/
|
||||
public function getRoute()
|
||||
{
|
||||
return [$this->route, $this->method];
|
||||
}
|
||||
}
|
||||
148
application/common/yun/Config.php
Normal file
148
application/common/yun/Config.php
Normal file
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
namespace app\common\yun;
|
||||
class Config
|
||||
{
|
||||
/**
|
||||
* 商户ID(由综合服务平台分配) 云账户·综合服务平台获取
|
||||
* @var string
|
||||
*/
|
||||
// public $dealer_id = '28607786';
|
||||
public $dealer_id = '01331680';
|
||||
|
||||
|
||||
/**
|
||||
* 每个 request 的 id,要求每次请求 id 不⼀样,会在 response 中原样返回
|
||||
* @var string
|
||||
*/
|
||||
public $request_id = '';
|
||||
|
||||
/**
|
||||
* 综合服务主体ID 云账户·综合服务平台获取
|
||||
* @var string yiyun73
|
||||
*/
|
||||
|
||||
// public $broker_id = '27532644';
|
||||
public $broker_id = 'shuzijingjiv1';
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 随机数,⽤于签名
|
||||
* @var int
|
||||
*/
|
||||
public $mess = 0;
|
||||
|
||||
/**
|
||||
* 时间戳,精确到秒
|
||||
* @var int
|
||||
*/
|
||||
public $timestamp = 0;
|
||||
|
||||
/**
|
||||
* 加密key 云账户·综合服务平台获取
|
||||
* @var string
|
||||
*/
|
||||
// public $des3_key = '3z1A240t6LPkRob0neNRD6Xf';
|
||||
public $des3_key = '22id13s5m35Kcn7HT3lyJf21';
|
||||
|
||||
|
||||
/**
|
||||
* 签名 云账户·综合服务平台获取
|
||||
* @var string e5L4mz919meY9QGO970MCdeXuzTUOUy8
|
||||
*/
|
||||
|
||||
// public $app_key = '3e15yS6co08Jhlt7bo3x96091D8HpQ50';
|
||||
public $app_key = 'h55jR0250bEsj8s8UQ03VUFH6bC14mU0';
|
||||
|
||||
|
||||
|
||||
|
||||
// public $private_key = '-----BEGIN PRIVATE KEY-----
|
||||
// MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCFnFUaI9n1YYrN
|
||||
// oBvdhhUstMe2XlbZgc5ocKu1W5q2yGY1eU/rU9mCHeRsGQc1wpLlenzIJlnDLxY0
|
||||
// ZTnuGQhbmF8IPqM39RMUIqcjCSDDwG93gPb0SmP3BMw+V+TxJ1mH9E5t4VEUXkRI
|
||||
// rGrM7OZux+mssgYNjI8cwGk/X/20h4EB4Uwf5ztNGg0ZFP3en2EU41r1nxX/WjXo
|
||||
// H8mxwLxBzmDvaJISQMKqeCp+pTPh1X6VO/1v83+27cjxYorr5gAGM0Vz3V8DgbDJ
|
||||
// G2bGxxjM3Uoikgu3TqSsuauQxUOGnhuGwFmxvfpZa1fsZqvwQk+au2Wek82SWC1a
|
||||
// MCxectw7AgMBAAECggEAez/+BRIDUmb7armCWvP//nB5NhKKXTRv2kntK2voKSpt
|
||||
// lnBkt7lukKfQeaMQ0pe9eDBogR1XekSqYATszmWLHytMpsdZOxo40j8xHJGkBs8y
|
||||
// Q/PUWv9wfYKQggYEbCyXW2GTI6tQZtCafsuF7amu24xQU30ZNlBuB+C6dbqvx2JG
|
||||
// 82RAWdiUOCTO6v/tInkvC60kKqPeUeCxZ3FrRzl8MQcgRIA6NeGOTDJ46pSkDMOf
|
||||
// Rat430k/RjaM4YqiZNOLtIdtHK9BlSFL6Xq9ckP6iinpW7urOW2U78r/se9b6lEV
|
||||
// 8I5luYFUT/Mgh/bt8abBHOcztHKbEfWggiQjqwb26QKBgQDlpPXOogMrw5RtYw46
|
||||
// u/h3SN2BvRyo+D6mKj94sgY3jKi4EbHzm64f1xHPBDVT0MI+sB7vp3CvuBdYQ3k+
|
||||
// 2sNg8jKtoBVHZxO3dvs1D1ihuK63QsI02wW4yh6zOC0LDwqA0GVnDwQuofQIXSqr
|
||||
// Mo02xoCLB+dw+oKe6lpzQf6TbwKBgQCU8d2BKry5w2MVFLy0HAYJPkzLf1p6Lm3/
|
||||
// pLpb6bORVkzaebdrqSfRknOCZu4nzXWPETRq9h7xP1oSJZG1utXUaXsAu9ETqsOZ
|
||||
// xN73JxHK8Y7ssM/7w6P75g+fHaY959fUlVDbDLH87wevlgu7zM8hzJxQVPOhnBZE
|
||||
// UgeBXM7t9QKBgE2Y1RpyckHaf5AK1acRFx8vdvG89i8+WuUJB5OADEu+8s/n4sqf
|
||||
// Q1Is+S6LjH163/gQyRNP7+rgeLrxacnMYBKlJGy42Bfdg7MNuEqwmdFjt13jZ/42
|
||||
// OBO98Gu8wrOm7HSkdm9Birc7MFuXJ7Dbjw4AOzU/gXwSmgqaw9+IYD5vAoGBAIwG
|
||||
// 2xTtReJq04LlLQcy9WXJQU9rmncVoWpexqlUi/IOLVCUb6FytTGsupWVCT84RNZM
|
||||
// +Xe5jZuG0LoQwe0VCqSYygAFkukneJ7e3DOFco/WC2VwUQhDhK50Oql/qWO3zExa
|
||||
// WFqnk8nUOuiTatKTGQSQpUBMrYN5B+IRMGcpBo3lAoGBAIjslCSesOjtoCRlKW1/
|
||||
// oXxmsF3QgkI9nRKcjyprn7ppoiO8eiEj1T/Zz22Nv0Z5LAXvwvgBoRJ9vGUwcPLL
|
||||
// 6vCTsCkL2S5gZOjpqViyHRdN3ksrd+YM1qAZeJVTFIF4LEuZAdLPXctfcArUvR/Z
|
||||
// GDsEwab8Vp+vk4+EjgBBdW+a
|
||||
// -----END PRIVATE KEY-----';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public $private_key = '-----BEGIN PRIVATE KEY-----
|
||||
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCdeQK9Q9oQsjj6
|
||||
5BuRyY3reYvmvvPcXmGlMcOm9fPiEVMjZbcjSOw0vX3uGL80ILl/wQIhMWOn8UXW
|
||||
LuckJ3PlzyoebNOnzHhrIIsUk+EK0lTIrXpGNp8DRlEwNbuzNZHNfJbB/VoP6raf
|
||||
/UBobS1OwUEfU04sNCGQCrjInveA7vKYYdM9fKIBJlUlLGMUFGH4i+Pfs4zUgnnK
|
||||
m8IwPxEr+1tbQjk3sLYek9RE3jFv4W9+KmTqO8NGqfVe+wJfp/7vyYa7yTjnyUlV
|
||||
o0iCVULFMnpHlRNmiC36NbQjOVWuUM3ihDM94UvIE2c0UVxwGjThXKeNAEhsjfh+
|
||||
8EeAVaLfAgMBAAECggEAG8diFVMn37Qg2xlsR55/m594b38V87Tukr6hng1bNXEK
|
||||
8n6Z/O57RJ583YieCisPrhq1LnfQ9apZQHxLqBQRnOObsXxPJhWq1HMMNdgUZd1O
|
||||
uYvouwQdru0zm0aPUwDLNK2axqPTxGUKTFTXjNRdnrv2qfj/HEsh9I//otxwGt1D
|
||||
NJkoGe0JGXURkMNLWBkPq3w/R+ww3tRGJwYLEpdiWBgrAyM7673c44Ia1aVwgBXs
|
||||
YqeL2zI/prwy1G/mB2iZ7bY/D4DiIM0YhhsrW8JS4bKmeMPFJyTfwJEZo8yEjPOW
|
||||
z4ffM7On+WE0+yoIXlbO2qA3+bpwbxT42eCkm7KzkQKBgQD+kLFDBuOVyUfTmMbI
|
||||
5zDLDtE8dEECDwvcIp2j59rNjPJFkvZPUcDlnPvz7BTlrROD64XJkVnoJLJxYceI
|
||||
z3pStk5KvNdkWnNB2w7+u/90V/l7FCC+OhLYlvfS/fvRtSmNgYFLRZ2hQ/prKu3e
|
||||
wTW6Y46UFXCVnUbMON5pY0mxtwKBgQCeXDmo7GoUu4e5uuEG+rmnr4QTXXborl1U
|
||||
FtaXFUvzvUWlHCXvuPI20p28nOS0zDS4vatOEofCABGQ3MoEgZ3BV6izJ7ZAIbx6
|
||||
xm1fNg5E2WGl/4XT7KmdzxsFayprj5IIQ8+sFM9xRkTouCqSEaucI8pXttaIGws1
|
||||
xsz3/db4GQKBgHQNGJKa8GPXuAPx0SXDp83aem7Z/MzoeRqpOT6As5IjoEsxfVKZ
|
||||
zZuf3ojL5pbyOURZucszlU4sdKEV13Y6R+SvMbAGuRcJ2SN7rzFYGVQ7ywNeILM4
|
||||
HGFbKa2plgR7V28oS/45xWvAZsg2cOytHkZTnqtJvuKmKaFuh4558h2vAoGADlTU
|
||||
VwhGNWgfSVyzPrl0EcvdjQ8ZUsds5M5IT1X7EKzhX6bjfAVlzjZTVh1wyTft0YZA
|
||||
uYkNxi3RaSXCFpRQXY38U3JVmQo0j3vjrAktU2fE4Yv1ZY92bjSvAleHeEJ++caB
|
||||
RdaAS4ULeXApUhzNRg0rI7MFST4BTrWWGR9c1AkCgYB/I99PDRGBaHYPFkiJQr1E
|
||||
pI5xXCoG8Z7QyrVP9mI6WfXD4WiztQkvBM6YZW11i+sRzaLOHOgGiY+WKizlqp2F
|
||||
8+ylyWKoA/qc6W0U+L+mFG//yR1KVplqQ96ecAxm6c44eaUtVZ3A+rtIZN/WpMBd
|
||||
W2TPheXimNqd8Aqel7s3AA==
|
||||
-----END PRIVATE KEY-----';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//云账户公钥
|
||||
// public $public_key = '-----BEGIN PUBLIC KEY-----
|
||||
// MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRfwmUa0gNsyLuXP2O75avpAyh
|
||||
// mlhOajd6g98IbuptNX0waSGXZVBie/qIWyn3PFxaA/UPpRGrpqfduJdVfWZsP3iV
|
||||
// tPW/vnN4PBxF/E4m4FfJwSSSmgF6seb31WQSBmtGANfeRnZccIubYxI75HPdP695
|
||||
// O5FRUrCCb39z473lgQIDAQAB
|
||||
// -----END PUBLIC KEY-----';
|
||||
|
||||
|
||||
|
||||
public $public_key = '-----BEGIN PUBLIC KEY-----
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJPUz5lOVOWNQj9qJMBTUPv/LH
|
||||
eYJce9xVJU8twA1U59nMa9R4+JbHxfqGUqRIYUmeDGT4Ej8rGNgiqN5dszkJ2E5+
|
||||
bncZp89sS+Vggc6cnIgXJ5mixwyVA5XRqRgpkbaoiApDAsSmu25MF47mxfKlgocM
|
||||
th7p76ZK0NtlC15mhQIDAQAB
|
||||
-----END PUBLIC KEY-----';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
148
application/common/yun/Config_1.php
Normal file
148
application/common/yun/Config_1.php
Normal file
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
namespace app\common\yun;
|
||||
class Config
|
||||
{
|
||||
/**
|
||||
* 商户ID(由综合服务平台分配) 云账户·综合服务平台获取
|
||||
* @var string
|
||||
*/
|
||||
// public $dealer_id = '28607786';
|
||||
public $dealer_id = '07849481';
|
||||
|
||||
|
||||
/**
|
||||
* 每个 request 的 id,要求每次请求 id 不⼀样,会在 response 中原样返回
|
||||
* @var string
|
||||
*/
|
||||
public $request_id = '';
|
||||
|
||||
/**
|
||||
* 综合服务主体ID 云账户·综合服务平台获取
|
||||
* @var string yiyun73
|
||||
*/
|
||||
|
||||
// public $broker_id = '27532644';
|
||||
public $broker_id = 'yiyun73';
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 随机数,⽤于签名
|
||||
* @var int
|
||||
*/
|
||||
public $mess = 0;
|
||||
|
||||
/**
|
||||
* 时间戳,精确到秒
|
||||
* @var int
|
||||
*/
|
||||
public $timestamp = 0;
|
||||
|
||||
/**
|
||||
* 加密key 云账户·综合服务平台获取
|
||||
* @var string
|
||||
*/
|
||||
// public $des3_key = '3z1A240t6LPkRob0neNRD6Xf';
|
||||
public $des3_key = 'r2JE9nQd57RtjfN3232WL31K';
|
||||
|
||||
|
||||
/**
|
||||
* 签名 云账户·综合服务平台获取
|
||||
* @var string e5L4mz919meY9QGO970MCdeXuzTUOUy8
|
||||
*/
|
||||
|
||||
// public $app_key = '3e15yS6co08Jhlt7bo3x96091D8HpQ50';
|
||||
public $app_key = 'W7L8ote1153B1M5fsExz34MSG1g69C55';
|
||||
|
||||
|
||||
|
||||
|
||||
// public $private_key = '-----BEGIN PRIVATE KEY-----
|
||||
// MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCFnFUaI9n1YYrN
|
||||
// oBvdhhUstMe2XlbZgc5ocKu1W5q2yGY1eU/rU9mCHeRsGQc1wpLlenzIJlnDLxY0
|
||||
// ZTnuGQhbmF8IPqM39RMUIqcjCSDDwG93gPb0SmP3BMw+V+TxJ1mH9E5t4VEUXkRI
|
||||
// rGrM7OZux+mssgYNjI8cwGk/X/20h4EB4Uwf5ztNGg0ZFP3en2EU41r1nxX/WjXo
|
||||
// H8mxwLxBzmDvaJISQMKqeCp+pTPh1X6VO/1v83+27cjxYorr5gAGM0Vz3V8DgbDJ
|
||||
// G2bGxxjM3Uoikgu3TqSsuauQxUOGnhuGwFmxvfpZa1fsZqvwQk+au2Wek82SWC1a
|
||||
// MCxectw7AgMBAAECggEAez/+BRIDUmb7armCWvP//nB5NhKKXTRv2kntK2voKSpt
|
||||
// lnBkt7lukKfQeaMQ0pe9eDBogR1XekSqYATszmWLHytMpsdZOxo40j8xHJGkBs8y
|
||||
// Q/PUWv9wfYKQggYEbCyXW2GTI6tQZtCafsuF7amu24xQU30ZNlBuB+C6dbqvx2JG
|
||||
// 82RAWdiUOCTO6v/tInkvC60kKqPeUeCxZ3FrRzl8MQcgRIA6NeGOTDJ46pSkDMOf
|
||||
// Rat430k/RjaM4YqiZNOLtIdtHK9BlSFL6Xq9ckP6iinpW7urOW2U78r/se9b6lEV
|
||||
// 8I5luYFUT/Mgh/bt8abBHOcztHKbEfWggiQjqwb26QKBgQDlpPXOogMrw5RtYw46
|
||||
// u/h3SN2BvRyo+D6mKj94sgY3jKi4EbHzm64f1xHPBDVT0MI+sB7vp3CvuBdYQ3k+
|
||||
// 2sNg8jKtoBVHZxO3dvs1D1ihuK63QsI02wW4yh6zOC0LDwqA0GVnDwQuofQIXSqr
|
||||
// Mo02xoCLB+dw+oKe6lpzQf6TbwKBgQCU8d2BKry5w2MVFLy0HAYJPkzLf1p6Lm3/
|
||||
// pLpb6bORVkzaebdrqSfRknOCZu4nzXWPETRq9h7xP1oSJZG1utXUaXsAu9ETqsOZ
|
||||
// xN73JxHK8Y7ssM/7w6P75g+fHaY959fUlVDbDLH87wevlgu7zM8hzJxQVPOhnBZE
|
||||
// UgeBXM7t9QKBgE2Y1RpyckHaf5AK1acRFx8vdvG89i8+WuUJB5OADEu+8s/n4sqf
|
||||
// Q1Is+S6LjH163/gQyRNP7+rgeLrxacnMYBKlJGy42Bfdg7MNuEqwmdFjt13jZ/42
|
||||
// OBO98Gu8wrOm7HSkdm9Birc7MFuXJ7Dbjw4AOzU/gXwSmgqaw9+IYD5vAoGBAIwG
|
||||
// 2xTtReJq04LlLQcy9WXJQU9rmncVoWpexqlUi/IOLVCUb6FytTGsupWVCT84RNZM
|
||||
// +Xe5jZuG0LoQwe0VCqSYygAFkukneJ7e3DOFco/WC2VwUQhDhK50Oql/qWO3zExa
|
||||
// WFqnk8nUOuiTatKTGQSQpUBMrYN5B+IRMGcpBo3lAoGBAIjslCSesOjtoCRlKW1/
|
||||
// oXxmsF3QgkI9nRKcjyprn7ppoiO8eiEj1T/Zz22Nv0Z5LAXvwvgBoRJ9vGUwcPLL
|
||||
// 6vCTsCkL2S5gZOjpqViyHRdN3ksrd+YM1qAZeJVTFIF4LEuZAdLPXctfcArUvR/Z
|
||||
// GDsEwab8Vp+vk4+EjgBBdW+a
|
||||
// -----END PRIVATE KEY-----';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public $private_key = '-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCfM17UTg1QsYuy
|
||||
KKWLlwl5R2kHXMAX9AU+pY/JAIwjLyGxs8k/bgAj6dhsz8GmYt1DXlPdjUvo4PcB
|
||||
kaUzNwf6R/LhRESfrIIplUZ8Q/Fmm26KkAnrTQ7AsACfIyvcOx7VgrG/FSsoZlEx
|
||||
ywMHBwW9cAl7z4fK/cbC5FIFvrc40wZMTvlhcb2siw6UKq0rr9MuYGsiV9Fi1Yzt
|
||||
/LrsFXIqybXdUJ3URTQn5qxOYXio8/lqlkBSWaItJOGcdmxqywd7Nsko2TsHwrbF
|
||||
8B2t13FcdfN031DbgAOdMTh55ng1hELVQbv3WcRv9ItKEJv7IU8WrkneWKw4k1bL
|
||||
bprU/ijHAgMBAAECggEBAJJfSPEqUlO+6hIEDTEqzSsU3RxHytY7JhdTYcANIMu4
|
||||
qeIYyw/ms3pRpwtkeUfh3k3yjGlHYGPdcz2eC6XrEwqq3EUB35Zvpb1V4lien3UX
|
||||
s6ryhCwzzTyclfW7ALicIt1sLMDjVarvZ/fAECiF7GEggZe0V8XrTrQh+MgPcaZr
|
||||
6bJKuTU9uL8QakDYDKg09tJrgwruJS3Mudm3R0idk4mZKinPuuTQ0OzxGbXBw7Fa
|
||||
AIyxSQbjWILoW3KQhXuDYvOouBejhDhTVPwemN+nOtvMiH3iBnz+lQtMRSZGjqjq
|
||||
CkzbufYjVqjsVUk5DeE/K5xER6SKAH8jSSABkHfPQAECgYEA4w/08eb01GTWHYYr
|
||||
8IskI65fkmUrWmmRwHpTo0RQwwl/0M7QbNoe1PxwVQOPP6uy4ve3/a7hYF5vHOb5
|
||||
P66/TdnCyk6qZgjCkEBju31Gqk3BwtO9uaKe4cBxeBIl1JRnq7GVnTxomxVRBuRp
|
||||
KrY4J95+6EwIkqz26VB5d3UekQECgYEAs31i9AmMn1XOmOI1VSplNwOYnYECYwF7
|
||||
XvtnsdOpGhhDA1yQWYo16fzSWmPbFmA87tucxkZKCRagKKf6jrSqqTfnXrKjoirQ
|
||||
PQY2ggKc5pXyKppswRmWsG9v4IwjY2THibf4xMoLWJ0bb4ExEKFwgg4+dJFJR93Y
|
||||
wXxFjXI6cccCgYBFFqTcOf8C5U+1Gg8imOO9K6CO5dOkJf0gSNhMFExSnABVI6iN
|
||||
hmzdN5Zid7vNjsvWfbNxMBYJgZJjg/ARLXWuFXVMo1T7yOySgdUWxk6LIS+0vUK8
|
||||
Sjv3ytt7wmHaZfGJb3ZrqmbV0U2fQD6zrVA26V9KBWCSaKiUY1UiQPO1AQKBgDNJ
|
||||
5gfD3sn88/8dzI2cgrWYsnh3T95Iox8+CaB30f9h5WxFe/4KD2PgWZ94nzcioubC
|
||||
HGdP2IIGVBeqAF/c4lNeZR/bPgTt5Pk7GEJISttdB4kC/YakMDoUbcylXstdFeOV
|
||||
jWF2No3Ivvk62nFdIFAZj+ExTtZZX0HSp/FGLcsrAoGBAIY76P3nL9A4eG4zQt76
|
||||
RfKvrhGQJFb4pwp5pwUQQCcElYlsC4KqZodQz/1U9mf27xjEPds797/G1W6mXeph
|
||||
lDD92CUXzu9DCaw3oVHtZY6YYlYnOFsDQgLY+cUcbrpQ8kfK8DdgAbx/a0MNq4Lf
|
||||
yiYxYxtOA2UgJd0u4ZhFWEyy
|
||||
-----END PRIVATE KEY-----';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//云账户公钥
|
||||
// public $public_key = '-----BEGIN PUBLIC KEY-----
|
||||
// MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRfwmUa0gNsyLuXP2O75avpAyh
|
||||
// mlhOajd6g98IbuptNX0waSGXZVBie/qIWyn3PFxaA/UPpRGrpqfduJdVfWZsP3iV
|
||||
// tPW/vnN4PBxF/E4m4FfJwSSSmgF6seb31WQSBmtGANfeRnZccIubYxI75HPdP695
|
||||
// O5FRUrCCb39z473lgQIDAQAB
|
||||
// -----END PUBLIC KEY-----';
|
||||
|
||||
|
||||
|
||||
public $public_key = '-----BEGIN PUBLIC KEY-----
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDvs+hxkCj9Va41YCsECsqL8qGv
|
||||
hArBnqKcRaul22jO18CgPGS5RL3kyhqafGNguop9OTe3ueD3Mb7LxOQUDVCNc49J
|
||||
kfOISDMAL8RCqYdRfSnx4C1zoTG5PITkuW56eL9CrQg6c1Cq9MAgZ6kpsqlYAcC6
|
||||
No0D0C6S0XYvZneHaQIDAQAB
|
||||
-----END PUBLIC KEY-----';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
10
application/common/yun/Demo.php
Normal file
10
application/common/yun/Demo.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace app\common\yun;
|
||||
|
||||
|
||||
class Demo
|
||||
{
|
||||
|
||||
}
|
||||
104
application/common/yun/HttpRequest.php
Normal file
104
application/common/yun/HttpRequest.php
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
namespace app\common\yun;
|
||||
|
||||
class HttpRequest
|
||||
{
|
||||
private $url;
|
||||
|
||||
private $header = [];
|
||||
|
||||
private $output;
|
||||
|
||||
private $http_info;
|
||||
|
||||
private static $timeout = 30000;
|
||||
|
||||
private $curl_ch;
|
||||
|
||||
public function __construct($router)
|
||||
{
|
||||
$this->url = Router::getRouter($router, 'pro');
|
||||
}
|
||||
|
||||
public function setTimeout($timeout = 30000)
|
||||
{
|
||||
static::$timeout = $timeout;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setHeader(array $header = [])
|
||||
{
|
||||
$this->header = $header;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function addHeader(array $header = [])
|
||||
{
|
||||
$this->header = array_merge($this->header, $header);
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
public function getBody()
|
||||
{
|
||||
return $this->output;
|
||||
}
|
||||
|
||||
public function getBodyJson()
|
||||
{
|
||||
return json_decode($this->output, true);
|
||||
}
|
||||
|
||||
public function getHttpInfo()
|
||||
{
|
||||
return $this->http_info;
|
||||
}
|
||||
|
||||
|
||||
private function curlInit()
|
||||
{
|
||||
$this->curl_ch = curl_init();
|
||||
curl_setopt($this->curl_ch, CURLOPT_URL, $this->url);
|
||||
if (substr($this->url, 0, 5) == 'https') {
|
||||
curl_setopt($this->curl_ch, CURLOPT_SSL_VERIFYPEER, FALSE);
|
||||
curl_setopt($this->curl_ch, CURLOPT_SSL_VERIFYHOST, FALSE);
|
||||
}
|
||||
curl_setopt($this->curl_ch, CURLOPT_TIMEOUT, static::$timeout);
|
||||
if ($this->header) {
|
||||
curl_setopt($this->curl_ch, CURLOPT_HTTPHEADER, $this->header);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private function curlClose()
|
||||
{
|
||||
curl_close($this->curl_ch);
|
||||
}
|
||||
|
||||
public function get(array $data)
|
||||
{
|
||||
$this->url .= '?'.http_build_query($data);
|
||||
$this->curlInit();
|
||||
curl_setopt($this->curl_ch, CURLOPT_HEADER, 0);
|
||||
curl_setopt($this->curl_ch, CURLOPT_NOBODY, 0);
|
||||
//只取body头
|
||||
curl_setopt($this->curl_ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
$this->output = curl_exec($this->curl_ch);
|
||||
$this->http_info = curl_getinfo($this->curl_ch);
|
||||
$this->curlClose();
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function post(array $data = [])
|
||||
{
|
||||
$this->curlInit();
|
||||
curl_setopt($this->curl_ch, CURLOPT_POST, true);
|
||||
curl_setopt($this->curl_ch, CURLOPT_POSTFIELDS, http_build_query($data));
|
||||
curl_setopt($this->curl_ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
$this->output = curl_exec($this->curl_ch);
|
||||
$this->http_info = curl_getinfo($this->curl_ch);
|
||||
$this->curlClose();
|
||||
return $this;
|
||||
}
|
||||
|
||||
}
|
||||
223
application/common/yun/Router.php
Normal file
223
application/common/yun/Router.php
Normal file
@@ -0,0 +1,223 @@
|
||||
<?php
|
||||
namespace app\common\yun;
|
||||
class Router
|
||||
{
|
||||
|
||||
|
||||
//个体工商注册接口serverroot
|
||||
const AIC_SERVICE_URL = 'https://api-aic.yunzhanghu.com';
|
||||
//其他接口serverroot
|
||||
const SERVICE_URL = 'https://api-service.yunzhanghu.com';
|
||||
//沙箱环境
|
||||
const SAND_BOX_URL = 'https://api-service.yunzhanghu.com/sandbox';
|
||||
|
||||
//+----------------------------------
|
||||
//| 打款接⼝
|
||||
//+----------------------------------
|
||||
//银行卡实时下单
|
||||
const BANK_CARD = 'api/payment/v1/order-bankpay';
|
||||
//支付宝实时下单
|
||||
const ALI_PAY = 'api/payment/v1/order-alipay';
|
||||
//微信实时下单
|
||||
const WX_PAY = 'api/payment/v1/order-wxpay';
|
||||
|
||||
/**
|
||||
* 订单查询
|
||||
*/
|
||||
const QUERY_REALTIME_ORDER = 'api/payment/v1/query-order';
|
||||
|
||||
/**
|
||||
* 余额查询
|
||||
*/
|
||||
const QUERY_ACCOUNTS = 'api/payment/v1/query-accounts';
|
||||
|
||||
/**
|
||||
* 电子回单
|
||||
*/
|
||||
const RECEIPT_FILE = 'api/payment/v1/receipt/file';
|
||||
|
||||
/**
|
||||
* 取消待打款订单
|
||||
*/
|
||||
const ORDER_FAIL = 'api/payment/v1/order/fail';
|
||||
|
||||
/**
|
||||
* 查询商户VA账户信息
|
||||
*/
|
||||
const VA_ACCOUNT = 'api/payment/v1/va-account';
|
||||
|
||||
|
||||
//+----------------------------------
|
||||
//| 数据接⼝
|
||||
//+----------------------------------
|
||||
|
||||
/**
|
||||
* 查询⽇订单⽂件
|
||||
*/
|
||||
const ORDER_DOWNLOAD = 'api/dataservice/v1/order/downloadurl';
|
||||
|
||||
/**
|
||||
* 查询⽇流⽔⽂
|
||||
*/
|
||||
const BILL_DOWNLOAD = 'api/dataservice/v2/bill/downloadurl';
|
||||
|
||||
/**
|
||||
* 查询商户充值记录
|
||||
*/
|
||||
const RECHARGE_RECORD = 'api/dataservice/v2/recharge-record';
|
||||
|
||||
/**
|
||||
* 查询日订单数据
|
||||
*/
|
||||
const ORDER_RECORD = 'api/dataservice/v1/orders';
|
||||
|
||||
/**
|
||||
* 查询⽇订单⽂件 (打款和退款订单)
|
||||
*/
|
||||
const ORDER_DAY = 'api/dataservice/v1/order/day/url';
|
||||
/**
|
||||
* 查询日流水数据
|
||||
*/
|
||||
const BILL_RECORD = 'api/dataservice/v1/bills';
|
||||
|
||||
/**
|
||||
* 查询余额日账单数据
|
||||
*/
|
||||
const STATEMENT_DAY = 'api/dataservice/v1/statements-daily';
|
||||
|
||||
//+----------------------------------
|
||||
//| ⽤户信息验证接⼝
|
||||
//+----------------------------------
|
||||
/**
|
||||
* 银⾏卡四要素请求鉴权(下发短信验证码)
|
||||
*/
|
||||
const VERIFY_REQUEST = 'authentication/verify-request';
|
||||
|
||||
/**
|
||||
* 银⾏卡四要素确认鉴权(上传短信验证码)
|
||||
*/
|
||||
const VERIFY_CONFIRM = 'authentication/verify-confirm';
|
||||
|
||||
/**
|
||||
* 银⾏卡四要素验证
|
||||
*/
|
||||
const VERIFY_BANKCARD_FOUR_FACTOR = 'authentication/verify-bankcard-four-factor';
|
||||
|
||||
/**
|
||||
* 银⾏卡三要素验证
|
||||
*/
|
||||
const VERIFY_BANKCARD_THREE_FACTOR = 'authentication/verify-bankcard-three-factor';
|
||||
|
||||
/**
|
||||
* 身份证实名验证
|
||||
*/
|
||||
const VERIFY_ID = 'authentication/verify-id';
|
||||
|
||||
/**
|
||||
* 上传用户免验证名单信息
|
||||
*/
|
||||
const WHITE_INFO_UPLOAD = 'api/payment/v1/user/exempted/info';
|
||||
/**
|
||||
* 查看⽤户⽩名单是否存在
|
||||
*/
|
||||
const USER_WHITE_CHECK = 'api/payment/v1/user/white/check';
|
||||
/**
|
||||
* 银行卡信息查询
|
||||
*/
|
||||
const BANK_INFO = 'api/payment/v1/card';
|
||||
|
||||
|
||||
|
||||
//+----------------------------------
|
||||
//| 发票接⼝
|
||||
//+----------------------------------
|
||||
/**
|
||||
* 查询商户已开具发票⾦额和待开具发票⾦额
|
||||
*/
|
||||
const INVOICE_STAT = 'api/payment/v1/invoice-stat';
|
||||
/**
|
||||
* 查询可开票额度
|
||||
*/
|
||||
const INVOICE_AMOUNT = 'api/invoice/v2/invoice-amount';
|
||||
/**
|
||||
* 开票申请
|
||||
*/
|
||||
const INVOICE_APPLY = 'api/invoice/v2/apply';
|
||||
/**
|
||||
* 查询开票申请状态
|
||||
*/
|
||||
const INVOICE_APPLY_STATUS = 'api/invoice/v2/invoice/invoice-status';
|
||||
/**
|
||||
* 下载发票PDF
|
||||
*/
|
||||
const INVOICE_PDF = 'api/invoice/v2/invoice/invoice-pdf';
|
||||
/**
|
||||
* 发送发票扫描件压缩包下载链接邮件
|
||||
*/
|
||||
const INVOICE_EMAIL = 'api/invoice/v2/invoice/reminder/email';
|
||||
|
||||
//+----------------------------------
|
||||
//| 个税扣缴明细表下载接口
|
||||
//+----------------------------------
|
||||
/**
|
||||
* 下载个税扣缴明细表
|
||||
*/
|
||||
const TAX_DOWNLOAD = 'api/tax/v1/taxfile/download';
|
||||
/**
|
||||
* 查询纳税人是否是跨集团用户
|
||||
*/
|
||||
const TAX_USER = 'api/tax/v1/user/cross';
|
||||
|
||||
//+----------------------------------
|
||||
//| ⽤户签约接⼝
|
||||
//+----------------------------------
|
||||
|
||||
|
||||
/**
|
||||
* 获取⽤户签约状态
|
||||
*/
|
||||
const SIGN_USER_STATUS = 'api/sdk/v1/sign/user/status';
|
||||
/**
|
||||
* H5预申请签约
|
||||
*/
|
||||
const SIGN_PRESIGN_H5 = 'api/sdk/v1/presign';
|
||||
/**
|
||||
* h5签约接口
|
||||
*/
|
||||
const SIGN_USER_H5 = 'api/sdk/v1/sign/h5';
|
||||
|
||||
/**
|
||||
* h5测试解约
|
||||
*/
|
||||
const SIGN_RELEASE_H5= 'api/sdk/v1/sign/release';
|
||||
|
||||
//+----------------------------------
|
||||
//| 个体工商注册(共享主体)
|
||||
//+----------------------------------
|
||||
|
||||
|
||||
/**
|
||||
* ⼯商实名信息录⼊接⼝
|
||||
*/
|
||||
const AIC_REALNAME = 'api/yzh/aic/realname';
|
||||
/**
|
||||
* 预启动
|
||||
*/
|
||||
const AIC_H5URL = 'api/yzh/aic/h5url';
|
||||
/**
|
||||
* 查询个体工商户注册状态
|
||||
*/
|
||||
const AIC_STATUS = 'api/yzh/aic/status';
|
||||
|
||||
|
||||
public static function getRouter( $route = '', $evn = 'pro')
|
||||
{
|
||||
|
||||
|
||||
if (strpos($route,'AIC') !== false)
|
||||
return self::AIC_SERVICE_URL . '/' . $route;
|
||||
else
|
||||
return self::SERVICE_URL . '/' . $route;
|
||||
// return self::SAND_BOX_URL . '/' . $route;
|
||||
}
|
||||
}
|
||||
118
application/common/yun/service/BaseService.php
Normal file
118
application/common/yun/service/BaseService.php
Normal file
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
namespace app\common\yun\service;
|
||||
use app\common\yun\HttpRequest;
|
||||
use app\common\yun\Config;
|
||||
use app\common\yun\util\RsaUtil;
|
||||
use app\common\yun\Base;
|
||||
use think\facade\Log;
|
||||
class BaseService
|
||||
{
|
||||
/**
|
||||
* 相关参数
|
||||
* @var Base
|
||||
*/
|
||||
public $data;
|
||||
|
||||
/**
|
||||
* 相关配置
|
||||
* @var Config
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* 构造函数
|
||||
*/
|
||||
public function __construct(Config $config,Base $data)
|
||||
{
|
||||
$this->config = $config;
|
||||
$this->data = $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 取数据并封装成数组
|
||||
*/
|
||||
|
||||
protected function getDes3Data()
|
||||
{
|
||||
$data = [];
|
||||
foreach ($this->data as $k => $v) {
|
||||
if(is_array($v)){
|
||||
foreach ($v as $key => $item) {
|
||||
$data[$key] = $item;
|
||||
}
|
||||
}else {
|
||||
$data[$k] = $v;
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取请求消息
|
||||
*/
|
||||
protected function getRequestInfo()
|
||||
{
|
||||
return $this->data->getRoute();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取头信息
|
||||
*/
|
||||
protected function getHeader()
|
||||
{
|
||||
// Log::write([
|
||||
// $this->config->request_id,
|
||||
// ],'yun_notify');
|
||||
return [
|
||||
'Content-Type: application/x-www-form-urlencoded',
|
||||
"dealer-id: {$this->config->dealer_id}",
|
||||
"request-id: {$this->config->request_id}",
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 构造Request信息
|
||||
*/
|
||||
protected function getRequestData()
|
||||
{
|
||||
|
||||
$desData = Des3Service::encode($this->getDes3Data(), $this->config->des3_key);
|
||||
$signData = "data=".$desData."&mess=".$this->config->mess."×tamp=".$this->config->timestamp."&key=".$this->config->app_key;
|
||||
|
||||
$rsa = new RsaUtil($this->config);
|
||||
$sign = $rsa->sign($signData);
|
||||
$postData = [];
|
||||
$postData['data'] = $desData;
|
||||
$postData['mess'] = $this->config->mess;
|
||||
$postData['timestamp'] = $this->config->timestamp;
|
||||
$postData['sign'] = $sign;
|
||||
$postData['sign_type'] = 'rsa';
|
||||
return $postData;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发起请求
|
||||
* @var(callback 异步回传地址,为空则不回传)
|
||||
* 返回请求解密结果
|
||||
*/
|
||||
public function request($callback = null)
|
||||
{
|
||||
$requestData = $this->getRequestData();
|
||||
$header = $this->getHeader();
|
||||
$requestInfo = $this->getRequestInfo();
|
||||
$method = $requestInfo[1] ==null?'get':$requestInfo[1];
|
||||
$request = new HttpRequest($requestInfo[0]);
|
||||
$result = $request
|
||||
->setHeader($header)
|
||||
->$method($requestData)
|
||||
->getBodyJson();
|
||||
//返回结果解密
|
||||
if(isset($result['data']) && is_string($result['data'])){
|
||||
$result['data'] = Des3Service::decode($result['data'], $this->config->des3_key);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
10
application/common/yun/service/Demo.php
Normal file
10
application/common/yun/service/Demo.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace app\common\yun\service;
|
||||
|
||||
|
||||
class Demo
|
||||
{
|
||||
|
||||
}
|
||||
25
application/common/yun/service/Des3Service.php
Normal file
25
application/common/yun/service/Des3Service.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
namespace app\common\yun\service;
|
||||
use app\common\yun\util\DesUtil;
|
||||
|
||||
|
||||
class Des3Service
|
||||
{
|
||||
/**
|
||||
* 3DES加密方法
|
||||
*/
|
||||
public static function encode(array $data, $des3Key)
|
||||
{
|
||||
$DesUtil = new DesUtil($des3Key);
|
||||
return $DesUtil->encrypt(json_encode($data, JSON_UNESCAPED_UNICODE));
|
||||
}
|
||||
|
||||
/**
|
||||
* 3DES解密方法
|
||||
*/
|
||||
public static function decode( $dec3Value, $des3Key)
|
||||
{
|
||||
$DesUtil = new DesUtil($des3Key);
|
||||
return json_decode($DesUtil->decrypt($dec3Value), true);
|
||||
}
|
||||
}
|
||||
10
application/common/yun/util/Demo.php
Normal file
10
application/common/yun/util/Demo.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace app\common\yun\util;
|
||||
|
||||
|
||||
class Demo
|
||||
{
|
||||
|
||||
}
|
||||
59
application/common/yun/util/DesUtil.php
Normal file
59
application/common/yun/util/DesUtil.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
namespace app\common\yun\util;
|
||||
class DesUtil
|
||||
{
|
||||
/**
|
||||
* 密钥向量
|
||||
* @var string
|
||||
*/
|
||||
private $des3key;
|
||||
|
||||
/**
|
||||
* 混淆向量
|
||||
* @var string|null
|
||||
*/
|
||||
private $iv;
|
||||
|
||||
/**
|
||||
* 构造,传递⼆个已经进⾏base64_encode的KEY与IV
|
||||
*
|
||||
* @param string $des3key
|
||||
* @param string $iv
|
||||
*/
|
||||
function __construct($des3key, $iv = null)
|
||||
{
|
||||
$this->des3key = $des3key;
|
||||
$this->iv = $iv;
|
||||
}
|
||||
|
||||
/**
|
||||
* 加密
|
||||
* @param <type> $value
|
||||
* @return <type>
|
||||
*/
|
||||
public function encrypt($value)
|
||||
{
|
||||
$iv = substr($this->des3key, 0, 8);
|
||||
$ret = openssl_encrypt($value, 'DES-EDE3-CBC', $this->des3key, 0, $iv);
|
||||
if (false === $ret) {
|
||||
return openssl_error_string();
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* 解密
|
||||
* @param <type> $value
|
||||
* @return <type>
|
||||
*/
|
||||
public function decrypt($value)
|
||||
{
|
||||
$iv = substr($this->des3key, 0, 8);
|
||||
$ret = openssl_decrypt($value, 'DES-EDE3-CBC', $this->des3key, 0, $iv);
|
||||
if (false === $ret) {
|
||||
return openssl_error_string();
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
126
application/common/yun/util/RsaUtil.php
Normal file
126
application/common/yun/util/RsaUtil.php
Normal file
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
namespace app\common\yun\util;
|
||||
use app\common\yun\Config;
|
||||
class RsaUtil
|
||||
{
|
||||
/**
|
||||
* 相关配置
|
||||
* @var Config
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* 云账户公钥
|
||||
* @var
|
||||
*/
|
||||
protected $public_key;
|
||||
|
||||
|
||||
/**
|
||||
* 商户私钥
|
||||
* @var
|
||||
*/
|
||||
protected $private_key;
|
||||
|
||||
/**
|
||||
* 初始化配置
|
||||
* RsaService constructor.
|
||||
* @param bool $type 默认私钥加密
|
||||
*/
|
||||
public function __construct(Config $config,$type = true)
|
||||
{
|
||||
$this->config = $config;
|
||||
if ($type) {
|
||||
$this->private_key = $this->getPrivateKey(); #商户私钥
|
||||
$this->public_key = $this->getPublicKey(); #云账户公钥
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 配置私钥
|
||||
* openssl_pkey_get_private这个函数可用来判断私钥是否是可用的,可用,返回资源
|
||||
* @return bool|resource
|
||||
*/
|
||||
private function getPrivateKey()
|
||||
{
|
||||
|
||||
$privateKey = openssl_get_privatekey($this->config->private_key);
|
||||
if(!$privateKey){
|
||||
die('私钥不可用');
|
||||
}
|
||||
return $privateKey;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 配置公钥
|
||||
* openssl_pkey_get_public这个函数可用来判断私钥是否是可用的,可用,返回资源
|
||||
* @return resource
|
||||
*/
|
||||
public function getPublicKey()
|
||||
{
|
||||
|
||||
$publicKey = openssl_pkey_get_public($this->config->public_key);
|
||||
if(!$publicKey){
|
||||
die('公钥不可用');
|
||||
}
|
||||
|
||||
return $publicKey ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 签名算法
|
||||
* @access public
|
||||
* @param $data
|
||||
* @return string
|
||||
*/
|
||||
public function sign($data){
|
||||
$res=openssl_get_privatekey($this->getPrivateKey());
|
||||
if($res)
|
||||
{
|
||||
openssl_sign($data, $sign,$res,"SHA256");
|
||||
openssl_free_key($res);
|
||||
}else {
|
||||
exit("私钥格式有误");
|
||||
}
|
||||
$sign = base64_encode($sign);
|
||||
return $sign;
|
||||
|
||||
}
|
||||
/**
|
||||
* 验签
|
||||
* @access public
|
||||
* @param $data
|
||||
* @return
|
||||
*/
|
||||
public function verify($response){
|
||||
$signData = "data=".$response['data']."&mess=".$response['mess']."×tamp=".$response['timestamp']."&key=".$this->config->app_key;
|
||||
// echo $signData;die;
|
||||
$result = (bool)openssl_verify( $signData, base64_decode($response['sign']), $this->public_key,"SHA256");
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 私钥解密
|
||||
* @param $data
|
||||
* @param bool $unserialize
|
||||
* @return mixed
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function privateDecrypt($data, $unserialize = false)
|
||||
{
|
||||
openssl_private_decrypt(base64_decode($data),$decrypted, $this->private_key);
|
||||
|
||||
if ($decrypted === false) {
|
||||
throw new \Exception('Could not decrypt the data.');
|
||||
}
|
||||
|
||||
return $unserialize ? unserialize($decrypted) : $decrypted;
|
||||
}
|
||||
|
||||
}
|
||||
17
application/common/yun/util/StringUtil.php
Normal file
17
application/common/yun/util/StringUtil.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
namespace app\common\yun\util;
|
||||
class StringUtil
|
||||
{
|
||||
public static function round($len = 6)
|
||||
{
|
||||
$str = 'a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9';
|
||||
$arr = explode(' ', $str);
|
||||
$rand_keys = array_rand($arr, $len);
|
||||
shuffle($rand_keys);
|
||||
$code = '';
|
||||
foreach ($rand_keys as $index=>$key){
|
||||
$code .= $arr[$key];
|
||||
}
|
||||
return $code;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user