PayController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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\api\controller\v1;
  12. use app\Request;
  13. use crmeb\services\pay\Pay;
  14. /**
  15. * 支付回调
  16. * Class PayController
  17. * @package app\api\controller\v1
  18. */
  19. class PayController
  20. {
  21. /**
  22. * 支付回调
  23. * @param string $type
  24. * @return string|void
  25. * @throws \EasyWeChat\Core\Exceptions\FaultException
  26. */
  27. public function notify(string $type)
  28. {
  29. switch (urldecode($type)) {
  30. case 'alipay':
  31. /** @var Pay $pay */
  32. $pay = app()->make(Pay::class, ['ali_pay']);
  33. return $pay->handleNotify();
  34. case 'wechat':
  35. case 'routine':
  36. if (sys_config('pay_wechat_type')) {
  37. /** @var Pay $pay */
  38. $pay = app()->make(Pay::class, ['v3_wechat_pay']);
  39. } else {
  40. /** @var Pay $pay */
  41. $pay = app()->make(Pay::class);
  42. }
  43. return $pay->handleNotify()->getContent();
  44. }
  45. }
  46. /**
  47. * 支付配置
  48. * @param Request $request
  49. * @return mixed
  50. */
  51. public function config(Request $request)
  52. {
  53. $config = [
  54. [
  55. 'icon' => 'icon-weixinzhifu',
  56. 'name' => '微信支付',
  57. 'value' => 'weixin',
  58. 'title' => '使用微信快捷支付',
  59. 'number' => null,
  60. 'payStatus' => !!sys_config('pay_weixin_open', 0),
  61. ],
  62. [
  63. 'icon' => 'icon-zhifubao',
  64. 'name' => '支付宝支付',
  65. 'value' => 'alipay',
  66. 'title' => '使用线上支付宝支付',
  67. 'number' => null,
  68. 'payStatus' => !!sys_config('ali_pay_status', 0),
  69. ],
  70. [
  71. 'icon' => 'icon-yuezhifu',
  72. 'name' => '余额支付',
  73. 'value' => 'yue',
  74. 'title' => '当前可用余额',
  75. 'number' => $request->user('now_money'),
  76. 'payStatus' => (int)sys_config('yue_pay_status', 0) === 1,
  77. ],
  78. [
  79. 'icon' => 'icon-yuezhifu1',
  80. 'name' => '线下支付',
  81. 'value' => 'offline',
  82. 'title' => '选择线下付款方式',
  83. 'number' => null,
  84. 'payStatus' => (int)sys_config('offline_pay_status', 0) === 1,
  85. ],
  86. [
  87. 'icon' => 'icon-haoyoudaizhifu',
  88. 'name' => '好友代付',
  89. 'value' => 'friend',
  90. 'title' => '找微信好友支付',
  91. 'number' => null,
  92. 'payStatus' => !!sys_config('friend_pay_status', 0),
  93. ]
  94. ];
  95. return app('json')->success($config);
  96. }
  97. }