LevelRepository.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace liuniu\repositories;
  3. use app\common\model\OrderLevel as LaveModel;
  4. use app\common\model\UserRelation;
  5. use liuniu\MiniProgramService;
  6. use liuniu\WechatService;
  7. class LevelRepository
  8. {
  9. /**
  10. * 微信公众号JS支付
  11. * @param $orderId
  12. * @param string $field
  13. * @return array|string
  14. * @throws Exception
  15. */
  16. public static function wxpay($cid,$orderId,$field="order_id")
  17. {
  18. if (is_string($orderId))
  19. $orderInfo = LaveModel::where($field, $orderId)->find();
  20. else
  21. $orderInfo = $orderId;
  22. if (!$orderInfo || !isset($orderInfo['paid'])) exception('支付订单不存在!');
  23. if ($orderInfo['paid']) exception('支付已支付!');
  24. if ($orderInfo['pay_price'] <= 0) exception('该支付无需支付!');
  25. $openid = UserRelation::userIdToOpenId($orderInfo['user_id']);
  26. $rs = WechatService::paymentOrder($openid, $orderInfo['order_id'], $orderInfo['pay_price'],"level", $orderInfo['body'],'', 'JSAPI', [],$cid);
  27. return WechatService::jspay($cid,$rs['prepay_id']);
  28. }
  29. /**
  30. * 小程序JS支付
  31. * @param $orderId
  32. * @param string $field
  33. * @return array|string
  34. * @throws DataNotFoundException
  35. * @throws ModelNotFoundException
  36. * @throws DbException
  37. * @throws Exception
  38. */
  39. public static function jsPay($cid,$orderId, $field = 'order_id')
  40. {
  41. if (is_string($orderId))
  42. $orderInfo = LaveModel::where($field, $orderId)->find();
  43. else
  44. $orderInfo = $orderId;
  45. if (!$orderInfo || !isset($orderInfo['paid'])) exception('支付订单不存在!');
  46. if ($orderInfo['paid']) exception('支付已支付!');
  47. if ($orderInfo['pay_price'] <= 0) exception('该支付无需支付!');
  48. $openid = UserRelation::userIdToOpenId($orderInfo['user_id'],'routine_openid');
  49. return MiniProgramService::paymentOrder($openid, $orderInfo['order_id'], $orderInfo['pay_price'], 'level', $orderInfo['body'],'','',[],$cid);
  50. }
  51. /**
  52. * 微信h5支付
  53. * @param $orderId
  54. * @param string $field
  55. * @return array|string
  56. * @throws Exception
  57. */
  58. public static function h5Pay($cid,$orderId, $field = 'order_id')
  59. {
  60. if (is_string($orderId))
  61. $orderInfo = Donate::where($field, $orderId)->find();
  62. else
  63. $orderInfo = $orderId;
  64. if (!$orderInfo || !isset($orderInfo['paid'])) exception('支付订单不存在!');
  65. if ($orderInfo['paid']) exception('支付已支付!');
  66. if ($orderInfo['pay_price'] <= 0) exception('该支付无需支付!');
  67. return WechatService::payment(false,$cid)->paymentOrder(null, $orderInfo['order_id'], $orderInfo['pay_price'],"level", $orderInfo['body'],'', 'MWEB', [],$cid);
  68. }
  69. }