|
@@ -36,10 +36,15 @@ class NotifyController extends BaseController
|
|
|
public function pay($scene){
|
|
public function pay($scene){
|
|
|
$postData = request()->all();
|
|
$postData = request()->all();
|
|
|
$sign = request()->headers->get('Wechatpay-Signature');
|
|
$sign = request()->headers->get('Wechatpay-Signature');
|
|
|
- $headers = request()->headers->all();
|
|
|
|
|
-// $sign = '';
|
|
|
|
|
|
|
+ $nonce = request()->headers->get('Wechatpay-Nonce');
|
|
|
|
|
+ $timestamp = request()->headers->get('Wechatpay-Timestamp');
|
|
|
|
|
+ /* $sign = 'JnLbXF3HLEeAVuyVoyedezPV8+mRZ93+rmlbHOIm1I0+YKboBTUmVNwlV9KKOVPXPBQENxjHqT6fR5Qx326uVZryb\/JM+lTdvl3j+XVD0F5NJWZKGu7Zykf69yYMY3wbe1++em\/iiouZLg8\/5KRp7nvNMLL383gemOMRbsYN3+dZ++62qrmVZxo00fHlK+AjxXmV38KRCLtfLWfIsUXw9Zi8hXqHbf+s\/pBthV+Ouasw0Eit4f4E3aDjp4baFD70s\/RsbcqTn8UqxCurRNgm7kCtLphzStPnEUC1dfvIWZQIuJ+BaAqstj9y7RW5CdF7aZPqhXnPETvB8ZynSTYl3Q==';
|
|
|
|
|
+ $timestamp = '1626663968';
|
|
|
|
|
+ $nonce = 'yWa6xnLUDyqfVYhjTnWcafDuNzgoXMNa';*/
|
|
|
|
|
+ $postStr = file_get_contents("php://input");
|
|
|
|
|
+ $signStr = "{$timestamp}\n{$nonce}\n{$postStr}\n";
|
|
|
$id = isset($postData['id'])? '_'.$postData['id'] : '';
|
|
$id = isset($postData['id'])? '_'.$postData['id'] : '';
|
|
|
- RedisService::set('caches:payments:'.$scene.':result'.$id.'_'.date('YmdHis'), ['result'=> $postData,'sign'=> $sign,'headers'=> $headers,'date'=> date('Y-m-d H:i:s')], 7200);
|
|
|
|
|
|
|
+ RedisService::set('caches:payments:'.$scene.':result'.$id.'_'.date('YmdHis'), ['result'=> $postData,'sign'=> $sign,'date'=> date('Y-m-d H:i:s')], 7200);
|
|
|
$postData = isset($postData['resource'])? $postData['resource'] : [];
|
|
$postData = isset($postData['resource'])? $postData['resource'] : [];
|
|
|
if(empty($scene) || empty($postData)){
|
|
if(empty($scene) || empty($postData)){
|
|
|
return NotifyService::make()->rebackMsg('回调参数错误');
|
|
return NotifyService::make()->rebackMsg('回调参数错误');
|
|
@@ -54,14 +59,15 @@ class NotifyController extends BaseController
|
|
|
|
|
|
|
|
$postData = WechatService::decryptNotifyData($postData);
|
|
$postData = WechatService::decryptNotifyData($postData);
|
|
|
$postData = $postData? json_decode($postData, true) : [];
|
|
$postData = $postData? json_decode($postData, true) : [];
|
|
|
- //var_dump($postData);
|
|
|
|
|
|
|
+ var_dump($postData);
|
|
|
$outTradeNo = isset($postData['out_trade_no']) ? $postData['out_trade_no'] : '';
|
|
$outTradeNo = isset($postData['out_trade_no']) ? $postData['out_trade_no'] : '';
|
|
|
if(empty($postData) || empty($outTradeNo)){
|
|
if(empty($postData) || empty($outTradeNo)){
|
|
|
return NotifyService::make()->rebackMsg('获取解密数据失败');
|
|
return NotifyService::make()->rebackMsg('获取解密数据失败');
|
|
|
}
|
|
}
|
|
|
$postData['sign'] = $sign;
|
|
$postData['sign'] = $sign;
|
|
|
RedisService::set('caches:payments:'.$scene.':result_'.$outTradeNo, ['result'=> $postData], 7200);
|
|
RedisService::set('caches:payments:'.$scene.':result_'.$outTradeNo, ['result'=> $postData], 7200);
|
|
|
- if (WechatService::checkJsapiNotifyV3($postData) === true) {
|
|
|
|
|
|
|
+ if (WechatService::checkJsapiNotifyV3($signStr, $sign) === true) {
|
|
|
|
|
+ RedisService::set('caches:payments:'.$scene.':check', ['data'=> $postData,'signStr'=> $signStr,'sign'=> $sign], 3600);
|
|
|
switch($scene){
|
|
switch($scene){
|
|
|
case 'index': // 供灯订单
|
|
case 'index': // 供灯订单
|
|
|
return NotifyService::make()->notifyGongdeng($postData, $outTradeNo);
|
|
return NotifyService::make()->notifyGongdeng($postData, $outTradeNo);
|