PaymentController.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. /**
  3. * 支付
  4. * @author wesmiler
  5. */
  6. namespace app\api\controller;
  7. use app\weixin\model\Address;
  8. use app\weixin\model\Books;
  9. use app\weixin\model\Goods;
  10. use app\weixin\model\Member;
  11. use app\weixin\model\Payment;
  12. use app\weixin\model\Wechat;
  13. use app\weixin\service\PRedis;
  14. use think\Controller;
  15. use think\Db;
  16. class PaymentController extends Controller
  17. {
  18. /**
  19. * 获取调起支付参数
  20. * @author wesmiler
  21. */
  22. public function index()
  23. {
  24. $userInfo = session('userInfo');
  25. $userId = isset($userInfo['id']) ? intval($userInfo['id']) : 0;
  26. if (empty($userInfo) || !$userId) {
  27. $url = url('','','', true);
  28. showJson(1006, 1014, ['url' => Wechat::makeRedirectUrl($url)]);
  29. }
  30. // 订单信息验证
  31. $bookId = input('id', 0);
  32. $orderInfo = Books::getInfo(['id'=> $bookId]);
  33. $orderStatus = isset($orderInfo['status']) ? intval($orderInfo['status']) : 0;
  34. if ($orderStatus != 1) {
  35. showJson(1004, 5007);
  36. }
  37. // 验证用户
  38. $orderUserId = isset($orderInfo['uid']) ? intval($orderInfo['uid']) : 0;
  39. if ($orderUserId != $userId) {
  40. showJson(1004, 2009);
  41. }
  42. $orderSn = isset($orderInfo['order_sn'])? $orderInfo['order_sn'] : '';
  43. if(empty($orderSn)){
  44. showJson(1004, 1012);
  45. }
  46. // 支付金额
  47. $orderMoney = isset($orderInfo['money']) ? moneyFormat($orderInfo['money']) : 0.00;
  48. if ($orderMoney <= 0) {
  49. showJson(1004, 5008);
  50. }
  51. // 支付方式
  52. $payType = input('payType', 1);
  53. switch ($payType) {
  54. case 1: // 微信支付
  55. $result = Payment::wechatPay($bookId, $orderInfo, $userInfo);
  56. if(!is_array($result)){
  57. showJson(1004, $result? $result : 5011);
  58. }
  59. showJson(1005, 5010, $result);
  60. break;
  61. default:
  62. showJson(1004, 4003);
  63. break;
  64. }
  65. }
  66. }
  67. ?>