Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pay
Project
Project
Details
Activity
Releases
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bp
pay
Commits
e29c7899
Commit
e29c7899
authored
Jul 05, 2021
by
wanjilong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add: 支付、回调、核销处理完成
parent
39684356
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
118 additions
and
167 deletions
+118
-167
PayException.php
application/exception/custom/PayException.php
+2
-1
PayService.php
application/services/pay/PayService.php
+72
-123
PingxxService.php
application/services/pingxx/PingxxService.php
+2
-2
pingpp_rsa_public_key.pem
conf/pingpp_rsa_public_key.pem
+7
-7
your_rsa_private_key.pem
conf/your_rsa_private_key.pem
+28
-27
your_rsa_public_key.pem
conf/your_rsa_public_key.pem
+7
-7
No files found.
application/exception/custom/PayException.php
View file @
e29c7899
...
...
@@ -16,9 +16,10 @@ class PayException extends BaseException
4
=>
'费率计算错误,费率分母为0'
,
5
=>
'支付回调失败,请核对订单'
,
6
=>
'回调参数错误,请管理员关注'
,
7
=>
'
制定
订单回调类型错误,请管理员关注'
,
7
=>
'订单回调类型错误,请管理员关注'
,
8
=>
'退款中订单不允许核销,请管理员关注'
,
9
=>
'未支付订单不允许核销,请管理员关注'
,
10
=>
'仅允许核销商家自己的订单,请管理员关注'
,
11
=>
'该订单已超时关闭,请重新下单'
,
];
}
application/services/pay/PayService.php
View file @
e29c7899
...
...
@@ -36,7 +36,7 @@ class PayService
public
function
do_pay
(
$order_id
,
$user_id
)
{
// 获取订单信息
+ 子单信息 + 分润信息
// 获取订单信息
$data
=
OrderService
::
getOrderInfo
(
$order_id
,
$user_id
);
if
(
empty
(
$data
[
'result'
]))
{
throw
new
PayException
([
'cus'
=>
1
]);
...
...
@@ -45,8 +45,6 @@ class PayService
$order
=
$data
[
'result'
];
// 判断是否存在有效订单
//$order['user_id'] = 'uid5d34843d013d8';
$expire_time
=
time
()
+
30
*
60
;
$pay_order_id
=
$this
->
gen_pay_order_id
(
$user_id
);
$pay_order
=
[
...
...
@@ -59,7 +57,7 @@ class PayService
'pay_amount'
=>
$order
[
'payment'
],
'third_order_id'
=>
''
,
'expire_time'
=>
date
(
'Y-m-d H:i:s'
,
$expire_time
),
'source_name'
=>
1
,
'source_name'
=>
1
0
,
'service_name'
=>
1
,
'extra'
=>
json_encode
([]),
];
...
...
@@ -74,37 +72,37 @@ class PayService
throw
new
PayException
([
'cus'
=>
3
]);
}
$order
[
'user_id'
]
=
'uid5d349de743119'
;
// 支持幂等,存在有效订单需要可以重复支付
$ret
=
PingxxService
::
getInstance
()
->
createOrder
(
$order
);
if
(
!
empty
(
$ret
[
'error'
]))
{
throw
new
\ErrorException
(
$ret
[
'error'
][
'message'
],
'2001'
);
}
if
(
$ret
[
"status"
]
==
'paid'
)
{
if
(
$ret
[
"status"
]
==
'paid'
||
$ret
[
'status'
]
==
'refunded'
)
{
$edit
=
[
'pay_order_status'
=>
Dictionary
::
O_PAY_STATUS_PAYED
,
'third_order_id'
=>
$ret
[
'id'
],
//'pay_channel'=>$ret['charge_essentials']['channel'],
];
PayOrder
::
update
(
$edit
,
[
'pay_order_id'
=>
$order
[
'pay_order_id'
]]);
throw
new
PayException
([
'cus'
=>
3
]);
}
elseif
(
$ret
[
"status"
]
==
'c
reat
ed'
)
{
}
elseif
(
$ret
[
"status"
]
==
'c
ancel
ed'
)
{
$edit
=
[
'pay_order_status'
=>
Dictionary
::
O_PAY_STATUS_WAIT
,
'third_order_id'
=>
$ret
[
'id'
],
'expire_time'
=>
date
(
'Y-m-d H:i:s'
),
];
PayOrder
::
update
(
$edit
,
[
'pay_order_id'
=>
$order
[
'pay_order_id'
]]);
throw
new
PayException
([
'cus'
=>
11
]);
}
elseif
(
$ret
[
"status"
]
==
'c
ancel
ed'
)
{
}
elseif
(
$ret
[
"status"
]
==
'c
reat
ed'
)
{
$edit
=
[
'expire_time'
=>
date
(
'Y-m-d H:i:s'
),
'pay_order_status'
=>
Dictionary
::
O_PAY_STATUS_WAIT
,
'third_order_id'
=>
$ret
[
'id'
],
];
PayOrder
::
update
(
$edit
,
[
'pay_order_id'
=>
$order
[
'pay_order_id'
]]);
}
else
{
throw
new
PayException
([
'cus'
=>
0
]);
}
return
$ret
;
...
...
@@ -127,15 +125,31 @@ class PayService
$object
=
$data
[
'data'
][
'object'
];
/*
$ping_data = PingxxService::getInstance()->getOrder($object['id']);
if($ping_data['status'] != 'paid') {
throw new PayException(['cus' => 5]);
} //actual_amount 金额核对
$ping_data = PingxxService::getInstance()->getOrder($object['id']);
if($ping_data['status'] != 'paid') {
throw new PayException(['cus' => 5]);
} //actual_amount 金额核对
*/
// 修改状态,锁定业务
$pay_order_id
=
$object
[
'merchant_order_no'
];
$edit
=
[
'pay_order_status'
=>
Dictionary
::
O_PAY_STATUS_PAYED
,
'pingxx_callback_success_time'
=>
date
(
'Y-m-d H:i:s'
),
];
$where
=
[
'pay_order_id'
=>
$pay_order_id
,
'pay_order_status'
=>
Dictionary
::
O_PAY_STATUS_WAIT
];
$cnt
=
PayOrder
::
update
(
$edit
,
$where
);
$pay_order
=
PayOrder
::
getMaster
(
'*'
,
[
'pay_order_id'
=>
$pay_order_id
]);
if
(
empty
(
$pay_order
))
{
throw
new
PayException
([
'cus'
=>
5
]);
}
$this
->
lock_pay_order
(
$pay_order_id
);
if
(
$cnt
==
0
&&
$pay_order
[
'pay_order_status'
]
==
Dictionary
::
O_PAY_STATUS_PAYED
)
{
//保持幂等返回成功
return
[
'pay_order_id'
=>
$pay_order_id
];
}
//获取订单 + 子单 + 分销信息
$ret
=
OrderService
::
getFullOrderData
(
$this
->
pay_order
[
'order_id'
],
$this
->
pay_order
[
'user_id'
]);
...
...
@@ -143,6 +157,8 @@ class PayService
throw
new
PayException
([
'cus'
=>
1
]);
}
$this
->
pay_order
=
$pay_order
;
// 生成支付清分单
$this
->
make_order_clearing
(
$ret
[
'result'
]);
}
...
...
@@ -155,14 +171,19 @@ class PayService
*/
public
function
write_off
(
$order_item_id
,
$life_account_id
)
{
//锁定状态
try
{
PayOrderItem
::
beginTransaction
();
$cnt
=
PayOrderItem
::
update
([
'notify_account_status'
=>
1
,
],
[
'order_item_id'
=>
$order_item_id
,
'notify_account_status'
=>
0
]);
$refund
=
RefundOrder
::
getMaster
(
'*'
,
[
'order_item_id'
=>
$order_item_id
]);
if
(
!
empty
(
$refund
))
{
throw
new
PayException
([
'cus'
=>
8
]);
}
$item
=
PayOrderItem
::
getMaster
(
'*'
,
[
'order_item_id'
=>
$order_item_id
,
'notify_account_status'
=>
0
]);
$item
=
PayOrderItem
::
getMaster
(
'*'
,
[
'order_item_id'
=>
$order_item_id
]);
if
(
empty
(
$item
))
{
throw
new
PayException
([
'cus'
=>
9
]);
}
...
...
@@ -172,17 +193,16 @@ class PayService
throw
new
PayException
([
'cus'
=>
10
]);
}
//锁定状态
PayOrderItem
::
update
([
'notify_account_status'
=>
1
,
],
[
'order_item_id'
=>
$order_item_id
,
'notify_account_status'
=>
0
]);
PayOrderItem
::
commit
();
}
catch
(
\Exception
$e
)
{
PayOrderItem
::
rollback
();
throw
$e
;
}
if
(
$cnt
==
0
)
{
//幂等直接返回
return
[
'order_item_id'
=>
$order_item_id
];
}
$clearing_items
=
PayOrderClearingItem
::
select
(
'*'
,
[
'order_item_id'
=>
$item
[
'order_item_id'
]]
);
...
...
@@ -190,10 +210,13 @@ class PayService
$wallet_list
=
[];
foreach
(
$clearing_items
as
$row
)
{
$wallet_list
[]
=
[
'account_id'
=>
$row
[
'account_id'
],
'pay_amount'
=>
$row
[
'pay_amount'
],
'pay_type'
=>
$row
[
'pay_type'
],
'trade_id'
=>
$row
[
'pay_order_clearing_item_id'
],
'user_id'
=>
$row
[
'account_id'
],
'service_name'
=>
10
,
'source_name'
=>
1
,
'amount'
=>
$row
[
'pay_amount'
],
'third_order_id'
=>
$row
[
'pay_order_clearing_item_id'
],
'third_order_id_type'
=>
1
,
'third_order_desc'
=>
'核销收入'
,
];
}
...
...
@@ -204,50 +227,15 @@ class PayService
'notify_account_status'
=>
2
,
'notify_account_success_time'
=>
date
(
'Y-m-d H:i:s'
)
],
[
'order_item_id'
=>
$order_item_id
,
'notify_account_status'
=>
1
]);
}
else
{
//补偿处理
}
}
return
[
'order_item_id'
=>
$order_item_id
];
}
/**
* @param $pay_order_id
* @throws PayException
* 锁定支付状 态
*/
private
function
lock_pay_order
(
$pay_order_id
)
{
try
{
PayOrder
::
beginTransaction
();
$pay_order
=
PayOrder
::
getMaster
(
'*'
,
[
'pay_order_id'
=>
$pay_order_id
]);
if
(
empty
(
$pay_order
))
{
throw
new
PayException
([
'cus'
=>
5
]);
}
$this
->
pay_order
=
$pay_order
;
/*
// 如果已经支付,返回成功保持幂等。
if($pay_order['pay_order_status'] == Dictionary::O_PAY_STATUS_PAYED) {
throw new PayException(['cus' => 0]);
}
*/
$edit
=
[
'pay_order_status'
=>
Dictionary
::
O_PAY_STATUS_PAYED
,
'pingxx_callback_success_time'
=>
date
(
'Y-m-d H:i:s'
),
];
PayOrder
::
update
(
$edit
,
[
'pay_order_id'
=>
$pay_order_id
]);
PayOrder
::
commit
();
}
catch
(
Exception
$e
)
{
PayOrder
::
rollback
();
Logger
::
error
(
$e
->
getMessage
(),
$edit
);
throw
$e
;
}
}
/**
* @param $data
* 构造订单流水
...
...
@@ -273,16 +261,9 @@ class PayService
}
$wx_tip
=
$this
->
make_tip_clearing
();
//微信手续费
/*
$subsidy_tip = $this->make_platform_subsidy_clearing(); //系统补贴
$merchant_tip = $this->make_merchant_subsidy_clearing(); //商家补贴
*/
$distribution_tip
=
$this
->
make_distribution_clearing
();
//团长收益
$platform_tip
=
$this
->
make_platform_clearing
();
//平台收益
$merchant_cash
=
$this
->
order_info
[
'payment'
]
-
$wx_tip
-
$distribution_tip
-
$platform_tip
;
$this
->
make_merchant_clearing
(
$merchant_cash
);
//商户收益
try
{
...
...
@@ -304,10 +285,14 @@ class PayService
if
(
$this
->
wallet_list
)
{
$ret
=
WalletService
::
send
(
$this
->
wallet_list
);
PayOrderItem
::
update
([
'notify_account_status'
=>
2
,
'notify_account_success_time'
=>
date
(
'Y-m-d H:i:s'
)
],
[
'pay_order_id'
=>
$this
->
pay_order
[
'order_id'
],
'notify_account_status'
=>
1
]);
if
(
$ret
)
{
PayOrderItem
::
update
([
'notify_account_status'
=>
2
,
'notify_account_success_time'
=>
date
(
'Y-m-d H:i:s'
)
],
[
'pay_order_id'
=>
$this
->
pay_order
[
'order_id'
],
'notify_account_status'
=>
1
]);
}
else
{
//todo 补偿处理
}
}
}
...
...
@@ -392,7 +377,7 @@ class PayService
$account
=
[
'account_id'
=>
'100020003201'
,
'amount'
=>
0
,
'rate'
=>
6
0
,
'rate'
=>
300
0
,
'title'
=>
'平台收益'
,
];
...
...
@@ -525,8 +510,9 @@ class PayService
foreach
(
$this
->
order_items
as
$r
)
{
$current_tip
=
Strategy
::
getTip
(
$r
[
'payment'
],
$total_amount
,
$cleared_amount
,
$total_tip
,
$cleared_tip
);
$id
=
$this
->
gen_pay_order_clearing_item_id
();
$this
->
clear_items_list
[]
=
[
'pay_order_clearing_item_id'
=>
$
this
->
gen_pay_order_clearing_item_id
()
,
'pay_order_clearing_item_id'
=>
$
id
,
'pay_order_clearing_id'
=>
$pay_order_clearing_id
,
'pay_order_id'
=>
$this
->
pay_order
[
'pay_order_id'
],
'order_id'
=>
$this
->
pay_order
[
'order_id'
],
...
...
@@ -542,11 +528,13 @@ class PayService
// 收集直接到账信息
if
(
$r
[
'marketing_type'
]
==
1
&&
$current_tip
>
0
)
{
$this
->
wallet_list
[]
=
[
'account_id'
=>
$account
[
'account_id'
],
'account_type'
=>
$account
[
'account_type'
],
'pay_amount'
=>
$current_tip
,
'pay_type'
=>
$account
[
'pay_type'
],
'pay_sub_type'
=>
$account
[
'pay_sub_type'
],
'user_id'
=>
$account
[
'account_id'
],
'service_name'
=>
10
,
'source_name'
=>
1
,
'amount'
=>
$current_tip
,
'third_order_id'
=>
$id
,
'third_order_id_type'
=>
1
,
'third_order_desc'
=>
'订单收入'
,
];
}
...
...
@@ -555,36 +543,6 @@ class PayService
}
}
/**
* @param $order_id
* @param $user_id
* @return string[]
* 获取支付订单的营销补贴,返回补贴出款账号,补贴金额,补贴原因
*/
private
function
get_marketing_subsidy
()
{
return
[
'account_id'
=>
'100020003001'
,
'amount'
=>
1000
,
'title'
=>
'营销专号支付补贴'
,
];
}
/**
* @param $order
* @return string[]
* 获取订单优惠券补贴,一般来自订单,需要这里完善出款账号 + 原因
*/
private
function
get_coupon_subsidy
(
$order
)
{
return
[
'account_id'
=>
'100020002001'
,
'amount'
=>
'0'
,
'title'
=>
'营销专号支付补贴'
,
];
}
private
function
gen_pay_order_id
(
$user_id
)
{
$number
=
substr
(
$user_id
,
-
2
);
...
...
@@ -633,13 +591,4 @@ class PayService
$params
=
[
'life_account_id'
=>
$life_account_id
];
return
Sdk
::
call
(
$url
,
$params
);
}
/**
* @param $data
* 构造订单支付订单信息
*/
private
function
make_new_pay
(
$data
)
{
$this
->
make_new_pay_order
(
$data
[
'order'
]);
}
}
\ No newline at end of file
application/services/pingxx/PingxxService.php
View file @
e29c7899
...
...
@@ -16,9 +16,9 @@ class PingxxService
private
function
__construct
()
{
Pingpp
::
setApiKey
(
'sk_test_
ibbTe5jLGCi5rzfH4OqPW9KC
'
);
// 设置 API Key
Pingpp
::
setApiKey
(
'sk_test_
KCaD0O5KyjzPinLynHzH4Cu1
'
);
// 设置 API Key
Pingpp
::
setPrivateKeyPath
(
ROOT_PATH
.
'/conf/your_rsa_private_key.pem'
);
// 设置私钥
Pingpp
::
setAppId
(
'app_
1Gqj58ynP0mHeX1q
'
);
// 设置 App ID
Pingpp
::
setAppId
(
'app_
9m1ubDG4e1mPXLCG
'
);
// 设置 App ID
}
private
function
__clone
()
{}
...
...
conf/pingpp_rsa_public_key.pem
View file @
e29c7899
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
y0d0QxZFYeHXGeWWneib
4Q0jUFjj4ro7bMnIJ8DjZ4w2NtLJi8p1mcFMbrIS5g95U5FUBCfAZXFb2QIaJfft
BByCQRbon7Jb97XoTP6kfk65tLz8Q9Cank1Ah/qivPIY0aNwvq8stedq9rcuJ6OQ
ncbfQ1217/Za50vKotYa+MEcFo9Y65biEmzq7BZeNYzuU4dGrPaCi917cfwNa8ey
ZSpoIOBe8e5JGOtZKCfgsgfecbXxdh6jq8Qn6mmrJILapEdxlj4xfzBzAuM3snqt
5XnDzzFWlI5Z+4lhyZr7eFVmnQSqn1HWt4VPzz/EWvxP8Rkvy89XuRXBAiO3/7Ur
8
wIDAQAB
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
40SSetBwtgeo3pp0HQ6E
MMIyuaymKTolB13unvkqB0PjoPS9syRQrzLGjPZjWUMJiHAehNvsOdqghmP0F995
UwncMwZY6XW/7wEMeEZmvx7pmLsulrZrzbsmBCMdcpNduLmN/wTUgDjjUTw5WRY0
R2AXuTLPrShUVCUbtTdqFlHCLKn7s/QGj2ZrGmnwBNWq1SOnHGJsnLaHSjC/NZRs
VHUW7cKXjiVDz0nQR0nRJBCEk7CJCt/0h4hfoGU1Sg7rW0pqmJObCoE3hru7yOf4
DVCT9PLccCTN3UzXBSg4uHMU6N15KiO9+FmVwnVAe4feEq4Ts9K4jD5oJ9XYFyI7
/
wIDAQAB
-----END PUBLIC KEY-----
\ No newline at end of file
conf/your_rsa_private_key.pem
View file @
e29c7899
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAx2MktxcKBEqdYRi2IgYcupPQIN5cxgiBL5udCCBJBNBbXPaq
uOE1qspfhB1KUzHXATnCONiSzubLcBTnwi2tz0ErRCeJZSERRCpbKx4eu6b1neUT
Wkga7xpZxWONEvkmZo5Nlhf4fXRPUYnO/bdGCNGpQ/HSJfWLtzmhCqO1aJwVhcDm
DMYz4bTkZavhFBdVyXf/8n7UKylk03eymlKJ1swQpeFcxaKfzsk1mJU7mc93mCWj
aR+VWkNbw4AQHDyHgbzH+zYARzCluiy5hXdixGEP+iO4ZBk48rEs1hKTvGz1k+jh
LCdkdpBRjq0pK/htjA3Ce8pF2AJs+fgN6ZUumQIDAQABAoIBAFa4MEfRpXGoYjrQ
3KZ/sg8UKvmgvQkEuetS60GViSym0pXkUuyGRyk5S8HSW3lDvBe0X10KFRAYIXNm
JEa4R1hVJ9REveVWNIRJR83BE+zZ+QnrkDc8FTrZYyIO4lTWOHVyfxxA4Lrv02/L
WFPRWoyLY+tBSf1ohpPyZLCT81rDglT1Z4svX020y8tXvnQqQiOjl4q7Zu4b26HU
TQ463ntMEhM5u7y9MFcxGRaOpF/gARlMGqDu6T8h/oYMiOSLoXOuTR7B80yaX/Mj
RZfUBoZMb5thX9qBLQ7dYnTkwaxwerYPrYvQrW9vtsswZ5NeIbEmCZyorUe8DOmQ
hT1+HmECgYEA/iQERHhZKHXnP0gvhl/uEOGOvLjD5H1D6zClzOHMmOcIF5OuEQb0
VcSMV+8emN7SCp/b/LVgKa27Mla9eXm+EXABRFcI7qGYsYXfbCD7EYX3TaJSp/30
jyLBy+MsHCTEiLeylSh7kHqgTR8tKND8UIzXo9aM7JqwFqleeXGyh7MCgYEAyNiU
EUzyBAv9sui3ZgVYRiVvTilk2HVTY6u61/mMOLsTrX3eYQaqb4GRJJShJO9mmsxX
RHBEZQJvUqqF9PapOsyv8HKuF5+UP6svHnJo7sn9gCvV/h1HTHqzFcYSvUaXnrym
D/0Tthf8CDeuGp5UFWMoFZF14HTr1oQROGAASoMCgYA0bZmzxmAeSLR8CZhEUGX8
dYvMwxEmgfERA+gwbCSZJpA0zPKL8LNXPkT1nw7g2pbaOkBX0dMUxhJoQBy2grcD
QegBATOGhy/I76U32VXyN4DdMy96GJnrLXBtb2AaLjudOMhOnRtgouuO/W+DjBmB
RIz377sC1KafBjHHO/1ooQKBgDQqfJrZv2ppquVTKH9pF/pwMq68daL7JkOXERqT
iGYbwQqozJ+q2Y3Iu2gi6o/rVl0SggAWoM0TitKP0+dCQcYx7+imAK3GFv1KexyP
Xs3WzO8Dc7ti42fr3qPjJG7g7PSfzwoME5iSNjX0MFZdlT1Q2dJwS4uXEsJO3yIj
XS/9AoGBALRApgtUA7Odw4tjCLGvxXuLFnyRkg6hFqoXAP2j8H9bJDOlSSVwQTFd
ahbcIDtQJS57vXUGK2uspbFKLm1WCFzPVyuxDIW6oue/kO+YxxU3NA58zk8oaORq
eA3YvHc7ZmRjVnVkxnXjKofrL6jF5A+lXSXnXchrv2ZYI+1pOsIV
-----END RSA PRIVATE KEY-----
\ No newline at end of file
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCpk3jvO59oYaWO
yjirHOIg3qLR3XkrZtdR1kNqdLz1dggXJzKxmeX+RLsgY66CQPipBLfOmpXO39hD
6nlf2AFxoTcAnG1oShdV52AxNviopZ8B+ZWmICtHyVPmsrrg8GpLHct4leOHB5k8
Gt+8mi9dnDJjVd0PdaB5kg9SbKv0t9lUrVUOCsFD8tTblmQJDBOqFC3NHrzh0uTI
qF5zRWyUWTFuf6zAMirxrdSdKWH8V610r6YKEXUKlLMlK/sxLQmTh8SVb/oltclO
1dxPZMWZbp6e/DbnLj4xvwPEE9jBnYwHPPz8GKYpJmGmkxY4IkecEjEsH/ko8OQ1
iEt+M6X1AgMBAAECggEADMeTZpwcsFYjjvZIfQTJOebtaFmDhzTR51X5cK1pjCog
A/atSFsrzRTK8W7xuNlCpCI54/UccyHFf6DNEt8JhNG8fmxLhn+G8K9mPW9CIBuT
NyfjEkj8WgWfMBSqJseXix+stOK+6e81qiTwVZtdFHXwCjJvXXnk5SSPyQttjhyp
d/C42enWEEGlbPsGrzzCd19HvHDoDJW974rW9a249m27Q4R7D7NeZF/SX8X88+5C
8QY8EZFRe9GLy9DrsXgKMokr0GCb2bbVkIJ4RlUXLxibTBJdjVKULHEEKLuc9mo3
ebdtSt5JYYGqJqi4afxm+hh2UAv4AQKMReA/xZRk5QKBgQDU0wAm1OtIEOwY6+t4
KPCejSlnfrAa3y39P9ntwIhQAhBRSCa2mQS8HVgaOacBRTVP5m/KADgwm24EGDAC
9Imu7j00Rdr9uHu1KxwR6xu0c+uooxZ0xh6MQxOU0U2rBEUGtXV06INbRi/0Ksy5
3CLw1zUzlq+k/rk8vMLSDsayuwKBgQDL+mJYbv4ywR0kZdJvXEZJTsr+6/geYexA
Jyp37Yh38awL/LACiBTpUpZgRfIxwmwubNw7oKkqC19OAHSb5ztyj/gUjwC706n4
ZDQTBOUbgNndBHeiUfv5GNnynZLUHrq/r6cix+C/XVYgwTyjb86RDfnXC8HpB049
Cbgr9Gs3DwKBgQDBodQygGgs4lCdABD1+3GpH8/6/NXnLQVfs/dojFK5UJdeDKJE
YgZfzOb6vVeIHVq6/nLZO8fj2ZaIHSWZmrmmMdX3uFLdozrSg41/dAR58zoG7ZMh
3Zuvi9vF+4SJw1G2H+Tk4CObKMm6gjJQK8ySiYs7C691E9ifPTKYAZ+gvwKBgCne
Pwl/3tV0JhMugz8wZYzui2Q/8zHpT6DraSAstXJJPNNJDqe2XvR1a0BfmxLzoVj2
J05l79MdenZ8SXMmx2EAhB9UKwZir+S4TKgKvSwkCpP/Mr8yrNG4dCQEi/rWQ+bM
mzXcaRlegys9/sBdVr0XbUzisO6v/TMyJ4d+J/OpAoGBAKqxEqdBQjwUaRUUzjrx
epV3nF0AmzYlD/e6VFpAVuqa9Tn0uX8WdoxBpYsnNLpYpff58g+zb+m1nd9/KfEm
sv7BFH0FK7crdIgVm4bT3KIBfTM3QfGiK4G7hHjeJl54Stx+krNZPqWLwsbn3u9H
gTJ1bEEDuPNf2lpM3zYDNMl4
-----END PRIVATE KEY-----
\ No newline at end of file
conf/your_rsa_public_key.pem
View file @
e29c7899
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
x2MktxcKBEqdYRi2IgYc
upPQIN5cxgiBL5udCCBJBNBbXPaquOE1qspfhB1KUzHXATnCONiSzubLcBTnwi2t
z0ErRCeJZSERRCpbKx4eu6b1neUTWkga7xpZxWONEvkmZo5Nlhf4fXRPUYnO/bdG
CNGpQ/HSJfWLtzmhCqO1aJwVhcDmDMYz4bTkZavhFBdVyXf/8n7UKylk03eymlKJ
1swQpeFcxaKfzsk1mJU7mc93mCWjaR+VWkNbw4AQHDyHgbzH+zYARzCluiy5hXdi
xGEP+iO4ZBk48rEs1hKTvGz1k+jhLCdkdpBRjq0pK/htjA3Ce8pF2AJs+fgN6ZUu
m
QIDAQAB
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
qZN47zufaGGljso4qxzi
IN6i0d15K2bXUdZDanS89XYIFycysZnl/kS7IGOugkD4qQS3zpqVzt/YQ+p5X9gB
caE3AJxtaEoXVedgMTb4qKWfAfmVpiArR8lT5rK64PBqSx3LeJXjhweZPBrfvJov
XZwyY1XdD3WgeZIPUmyr9LfZVK1VDgrBQ/LU25ZkCQwTqhQtzR684dLkyKhec0Vs
lFkxbn+swDIq8a3UnSlh/FetdK+mChF1CpSzJSv7MS0Jk4fElW/6JbXJTtXcT2TF
mW6envw25y4+Mb8DxBPYwZ2MBzz8/BimKSZhppMWOCJHnBIxLB/5KPDkNYhLfjOl
9
QIDAQAB
-----END PUBLIC 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