Pay.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace app\mobile\controller;
  3. use app\BaseController;
  4. use app\mobile\logic\PayLogic;
  5. use app\model\CommonModel;
  6. use app\model\MasterOrderModel;
  7. use think\exception\ValidateException;
  8. use think\facade\Validate;
  9. //支付相关
  10. class Pay extends BaseController
  11. {
  12. //预下单
  13. public function getPrepayId()
  14. {
  15. $param = $this->request->only(['type', 'list', 'addr_id'], 'post');
  16. $val = Validate::rule([
  17. 'type|购买类型' => 'require|number|in:' . MasterOrderModel::$type_exchange_good . ',' . MasterOrderModel::$type_shopping_good . ',' . MasterOrderModel::$type_service,
  18. 'list|购买列表' => 'require|array|max:100',
  19. 'addr_id|收货地址' => 'require|number|gt:0'
  20. ]);
  21. if (!$val->check($param)) throw new ValidateException($val->getError());
  22. $val2 = Validate::rule([
  23. 'id' => 'require|number|gt:0',
  24. 'num|购买数量' => 'require|number|max:99999999',
  25. ]);
  26. foreach ($param['list'] as $list) {
  27. if (!$val2->check($list)) throw new ValidateException($val2->getError());
  28. }
  29. return PayLogic::getPrepayId($param);
  30. }
  31. //微信支付成功后的异步通知及订单处理
  32. public function Notify()
  33. {
  34. return PayLogic::Notify();
  35. }
  36. //检查支付结果
  37. public function checkPayResult()
  38. {
  39. $param = $this->request->only(['pay_code'], 'post');
  40. $val = Validate::rule(['pay_code|支付编码' => 'require|length:18']);
  41. if (!$val->check($param)) throw new ValidateException($val->getError());
  42. return PayLogic::checkPayResult($param['pay_code']);
  43. }
  44. }