Alipay.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\wap\controller;
  12. use basic\WapBasic;
  13. use service\AlipayTradeWapService;
  14. use service\UtilService;
  15. use service\SystemConfigService;
  16. /**
  17. * 支付宝支付
  18. * Class Alipay
  19. * @package app\wap\controller
  20. */
  21. class Alipay extends WapBasic
  22. {
  23. protected function _initialize()
  24. {
  25. parent::_initialize(); // TODO: Change the autogenerated stub
  26. $this->assign('overallShareWechat', json_encode([]));
  27. $this->assign('userInfo', ['uid' => 0]);
  28. }
  29. /**
  30. * 支付页微信端提示切换浏览器,其他浏览器直接支付
  31. * @param string $info 加密后的支付参数
  32. * @return mixed|void
  33. */
  34. public function index($info = '', $params = false)
  35. {
  36. if (!$info) return $this->failed('缺少支付参数');
  37. $info = json_decode(base64_decode($info), true);
  38. if (!$info) return $this->failed('缺少支付参数');
  39. $isWechat = UtilService::isWechatBrowser();
  40. if ($isWechat) {
  41. return $this->fetch();
  42. } else {
  43. AlipayTradeWapService::init()->AliPayWap($info['orderId'], $info['pay_price'], $info['orderName'], $params);
  44. }
  45. }
  46. /**
  47. * 在电脑端调起支付宝扫码支付
  48. * @param string $info 加密后的支付参数
  49. * @param bool $params
  50. * @throws \Exception
  51. */
  52. public function native($info = '', $params = false)
  53. {
  54. if (!$info) return $this->failed('缺少支付参数');
  55. $info = json_decode(base64_decode($info), true);
  56. if (!$info) return $this->failed('缺少支付参数');
  57. if (parent::isMobile()) {
  58. return $this->failed('请不要在移动端调用该接口');
  59. } else {
  60. AlipayTradeWapService::init()->AliPayNative($info['orderId'], $info['pay_price'], $info['orderName'], $params);
  61. }
  62. }
  63. /**
  64. * 支付宝同步回调
  65. * @return mixed
  66. */
  67. public function alipay_success_synchro()
  68. {
  69. $res = AlipayTradeWapService::init()->AliPayReturn();
  70. $result = $res['result'];
  71. if ($result) $is_pay = true;
  72. else $is_pay = false;
  73. $this->assign([
  74. 'is_pay' => $is_pay
  75. ]);
  76. return $this->fetch();
  77. }
  78. /**
  79. * 支付宝异步回调
  80. */
  81. public function alipay_success_notify()
  82. {
  83. AlipayTradeWapService::handleNotify();
  84. }
  85. }