NotifyController.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace App\Http\Controllers\AdminApi;
  3. use App\Http\Controllers\ApiController;
  4. use App\Models\Member;
  5. use App\Servers\ESign\comm\EsignLogHelper;
  6. class NotifyController extends ApiController
  7. {
  8. /**
  9. * e签宝回调通知
  10. * @return false|string
  11. */
  12. function esignNotify()
  13. {
  14. $data = file_get_contents('php://input');
  15. EsignLogHelper::writeLog($data,3);
  16. $data = json_decode($data,true);
  17. //回调错误
  18. if (!isset($data['action'])){
  19. return json_encode(['code'=>'0','msg'=>'error']);
  20. }
  21. if ($data['action'] == 'AUTH_PASS'){//实名认证通过通知
  22. $authFlowId = $data['authFlowId'];
  23. if ($data['authType'] == 'PSN'){
  24. $psnId = $data['psnInfo']['psnId'];
  25. //更新数据
  26. $info = Member::where('authType','PSN')
  27. ->where('authFlowId',$authFlowId)
  28. ->update(['realnameStatus'=>1,'psnId'=>$psnId]);
  29. }elseif ($data['authType'] == 'ORG'){
  30. $orgId = $data['organization']['orgId'];
  31. $orgName = $data['organization']['orgName'];
  32. //更新数据
  33. $info = Firm::where('authType','ORG')
  34. ->where('firm_name',$orgName)
  35. ->where('realnameStatus',0)
  36. ->update(['realnameStatus'=>1,'orgId'=>$orgId]);
  37. }
  38. }elseif ($data['action'] == 'AUTHORIZE_FINISH'){//授权通知
  39. $authFlowId = $data['authFlowId'];
  40. $psnId = $data['psnId'];
  41. $orgId = $data['orgId'] ?? '';
  42. $authorizedInfo = json_encode($data['authorizedInfo']);
  43. //更新用户授权数据
  44. Member::where('authFlowId',$authFlowId)->update(['authorizeUserInfo'=>1,'realnameStatus'=>1,'psnId'=>$psnId,'orgId'=>$orgId,'authorizedInfo'=>$authorizedInfo]);
  45. if($orgId){
  46. //检查该企业是否认证授权
  47. ESignFirmServer::creatServer()->setSignFirm($data);
  48. }
  49. }elseif ($data['action'] == 'AUTHORIZE_CHANGE'){
  50. //授权变更通知
  51. }elseif ($data['action'] == 'SIGN_FLOW_COMPLETE'){
  52. //合同签署
  53. ContractServer::creatServer()->signEnd($data['signFlowStatus'],$data['signFlowId']);
  54. }elseif ($data['action'] == 'SIGN_MISSON_COMPLETE'){
  55. //合同签署
  56. if(!empty($data['organization']) && !empty($data['signFlowId']))ContractServer::creatServer()->signFirmEnd($data['signResult'],$data['signFlowId'],$data['organization']);
  57. }elseif ($data['action']=='SEAL_AUTH_SIGN'){
  58. // SealServer::creatServer()->sealNotify($data['authStatus'],$data['sealAuthBizId']);
  59. }
  60. return json_encode(['code'=>'200','msg'=>'success']);
  61. }
  62. }