PayController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. namespace backend\controllers;
  3. use backend\models\PayApi;
  4. use backend\models\RateApi;
  5. use Yii;
  6. use yii\helpers\VarDumper;
  7. use yii\httpclient\Client;
  8. use yii\web\Controller;
  9. class PayController extends Controller
  10. {
  11. public $enableCsrfValidation = false;
  12. /**
  13. * 支付异步回调
  14. * @return string
  15. */
  16. public function actionNotify()
  17. {
  18. $payType = intval(Yii::$app->getRequest()->get('payType'));
  19. if ($payType <= 0) {
  20. return 'invalid request';
  21. }
  22. file_put_contents('huiqi1.txt',$payType);
  23. if (Yii::$app->getRequest()->getIsPost()) {
  24. $data = Yii::$app->getRequest()->post();
  25. if (empty($data)) {
  26. $data = @json_decode(Yii::$app->getRequest()->getRawBody(), true);
  27. }
  28. } else {
  29. $data = Yii::$app->getRequest()->get();
  30. }
  31. Yii::warning('支付异步通知参数,' . VarDumper::dumpAsString($data), __METHOD__);
  32. $api = new PayApi();
  33. $result = $api->callNotify($data, $payType);
  34. return $result['data'];
  35. }
  36. /**
  37. * 支付同步回调
  38. * @return string|\yii\web\Response
  39. */
  40. public function actionReturn()
  41. {
  42. $payType = intval(Yii::$app->getRequest()->get('payType'));
  43. if ($payType <= 0) {
  44. return 'invalid request';
  45. }
  46. if (Yii::$app->getRequest()->getIsPost()) {
  47. $data = Yii::$app->getRequest()->post();
  48. if (empty($data)) {
  49. $data = @json_decode(Yii::$app->getRequest()->getRawBody(), true);
  50. }
  51. } else {
  52. $data = Yii::$app->getRequest()->get();
  53. }
  54. Yii::warning('支付同步通知参数,' . VarDumper::dumpAsString($data), __METHOD__);
  55. $api = new PayApi();
  56. $result = $api->callReturn($data, $payType);
  57. return $this->redirect(['/user/pay/succeed']);
  58. // if ($result['code'] == 1) {
  59. // return $this->redirect(['/user/pay/succeed']);
  60. // } else {
  61. // return $this->redirect(['/user/pay/failed']);
  62. // }
  63. }
  64. /**
  65. * 汇率获取
  66. */
  67. public function actionRate()
  68. {
  69. $rateApi = new RateApi();
  70. $res = $rateApi->getRate();
  71. echo json_encode($res);
  72. }
  73. //銀聯跳轉的支付 (更新數據庫操作)
  74. public function actionUpdata(){
  75. if (Yii::$app->getRequest()->getIsPost()) { //是否为post请求
  76. $data = Yii::$app->getRequest()->post(); //获得同步的post参数
  77. if (empty($data)) {
  78. $data = @json_decode(Yii::$app->getRequest()->getRawBody(), true);
  79. }
  80. } else {
  81. $data = Yii::$app->getRequest()->get();
  82. }
  83. $api = new PayApi();
  84. $result = $api->callUpdata($data);
  85. return $result['data'];
  86. }
  87. //银联支付时获取金额
  88. public function actionGetmoney(){
  89. if (Yii::$app->getRequest()->getIsPost()) { //是否为post请求
  90. $data = Yii::$app->getRequest()->post(); //获得同步的post参数
  91. if (empty($data)) {
  92. $data = @json_decode(Yii::$app->getRequest()->getRawBody(), true);
  93. }
  94. } else {
  95. $data = Yii::$app->getRequest()->get();
  96. }
  97. $api = new PayApi();
  98. $result = $api->callGetmoney($data);
  99. return $result['data'];
  100. }
  101. }