LaveRepository.php 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?php
  2. namespace liuniu\repositories;
  3. use app\admin\model\User;
  4. use app\common\model\Lave as LaveModel;
  5. use app\common\model\LaveMonth as LaveMonthModel;
  6. use app\common\model\UserRelation;
  7. use liuniu\MiniProgramService;
  8. use liuniu\WechatService;
  9. class LaveRepository
  10. {
  11. /**
  12. * 微信公众号JS支付
  13. * @param $orderId
  14. * @param string $field
  15. * @return array|string
  16. * @throws Exception
  17. */
  18. public static function wxpay($cid, $orderId, $field = "order_id")
  19. {
  20. if (is_string($orderId))
  21. $orderInfo = LaveModel::where($field, $orderId)->find();
  22. else
  23. $orderInfo = $orderId;
  24. if (!$orderInfo || !isset($orderInfo['paid'])) exception('支付订单不存在!');
  25. if ($orderInfo['paid']) exception('支付已支付!');
  26. if ($orderInfo['amount'] <= 0) exception('该支付无需支付!');
  27. $openid = UserRelation::userIdToOpenId($orderInfo['user_id']);
  28. $rs = WechatService::paymentOrder($openid, $orderInfo['order_id'], $orderInfo['amount'], "lave", $orderInfo['order_name'], '', 'JSAPI', [], $cid);
  29. return WechatService::jspay($cid, $rs['prepay_id']);
  30. }
  31. /**
  32. * 小程序JS支付
  33. * @param $orderId
  34. * @param string $field
  35. * @return array|string
  36. * @throws DataNotFoundException
  37. * @throws ModelNotFoundException
  38. * @throws DbException
  39. * @throws Exception
  40. */
  41. public static function jsPay($cid, $orderId, $field = 'order_id')
  42. {
  43. if (is_string($orderId))
  44. $orderInfo = LaveModel::where($field, $orderId)->find();
  45. else
  46. $orderInfo = $orderId;
  47. if (!$orderInfo || !isset($orderInfo['paid'])) exception('支付订单不存在!');
  48. if ($orderInfo['paid']) exception('支付已支付!');
  49. if ($orderInfo['amount'] <= 0) exception('该支付无需支付!');
  50. $openid = UserRelation::userIdToOpenId($orderInfo['user_id'], 'routine_openid');
  51. $bodyContent = $orderInfo['intention'];
  52. $site_name = sys_config('site_name');
  53. if (!$bodyContent && !$site_name) exception('支付参数缺少:请前往后台设置->系统设置-> 填写 网站名称');
  54. return MiniProgramService::paymentOrder($openid, $orderInfo['order_id'], $orderInfo['money'], 'lave', $orderInfo['order_name'], '', '', [], $cid);
  55. }
  56. /**
  57. * 微信h5支付
  58. * @param $orderId
  59. * @param string $field
  60. * @return array|string
  61. * @throws Exception
  62. */
  63. public static function h5Pay($cid, $orderId, $field = 'order_id')
  64. {
  65. if (is_string($orderId))
  66. $orderInfo = Donate::where($field, $orderId)->find();
  67. else
  68. $orderInfo = $orderId;
  69. if (!$orderInfo || !isset($orderInfo['paid'])) exception('支付订单不存在!');
  70. if ($orderInfo['paid']) exception('支付已支付!');
  71. if ($orderInfo['amount'] <= 0) exception('该支付无需支付!');
  72. $bodyContent = $orderInfo['intention'];
  73. $site_name = sys_config('site_name');
  74. if (!$bodyContent && !$site_name) exception('支付参数缺少:请前往后台设置->系统设置-> 填写 网站名称');
  75. return WechatService::payment(false, $cid)->paymentOrder(null, $orderInfo['order_id'], $orderInfo['amount'], "lave", $orderInfo['order_name'], '', 'MWEB', [], $cid);
  76. }
  77. /**
  78. * 微信公众号JS支付签约
  79. * @param $orderId
  80. * @param string $field
  81. * @return array|string
  82. * @throws Exception
  83. */
  84. public static function wxpaySign($cid, $orderId,$plan_record, $field = "order_id")
  85. {
  86. $openid = UserRelation::userIdToOpenId($plan_record['uid']);
  87. // if ($plan_record['uid']==6779||$plan_record['uid']==12125||$plan_record['uid']==63){
  88. $username = User::where('id',$plan_record['uid'])->value('username');
  89. $rs = WechatService::signedOrder($plan_record['contract_code'],$plan_record['plan_id'],$cid,$plan_record['contract_display_account']);
  90. @file_put_contents("quanju3.txt", json_encode($rs) . "-签约返回结果测试2\r\n", 8);
  91. return $rs;
  92. // }else{
  93. // if (is_string($orderId))
  94. // $orderInfo = LaveMonthModel::where($field, $orderId)->find();
  95. // else
  96. // $orderInfo = $orderId;
  97. //
  98. // if (!$orderInfo || !isset($orderInfo['paid'])) exception('支付订单不存在!');
  99. // if ($orderInfo['paid']) exception('支付已支付!');
  100. // if ($orderInfo['amount'] <= 0) exception('该支付无需支付!');
  101. // // ($openid, $out_trade_no, $total_fee, $attach, $body, $contract_code, $plan_id, $spbill_create_ip ,$detail = '', $trade_type = 'JSAPI', $options = [], $cid = 0,$contract_display_account='')
  102. // $rs = WechatService::paysignedOrder($openid, $orderInfo['order_id'], $orderInfo['amount'], "lave", $orderInfo['order_name'], $plan_record['contract_code'],$plan_record['plan_id'],$plan_record['spbill_create_ip'],'', 'JSAPI', [], $cid,$plan_record['contract_display_account']);
  103. //
  104. // }
  105. return WechatService::jspay($cid, $rs['prepay_id']);
  106. }
  107. /**
  108. * 小程序JS支付签约
  109. * @param $orderId
  110. * @param string $field
  111. * @return array|string
  112. * @throws DataNotFoundException
  113. * @throws ModelNotFoundException
  114. * @throws DbException
  115. * @throws Exception
  116. */
  117. public static function jsPaySign($cid, $orderId,$plan_record, $field = 'order_id')
  118. {
  119. if (is_string($orderId))
  120. $orderInfo = LaveMonthModel::where($field, $orderId)->find();
  121. else
  122. $orderInfo = $orderId;
  123. if (!$orderInfo || !isset($orderInfo['paid'])) exception('支付订单不存在!');
  124. if ($orderInfo['paid']) exception('支付已支付!');
  125. if ($orderInfo['amount'] <= 0) exception('该支付无需支付!');
  126. $openid = UserRelation::userIdToOpenId($orderInfo['user_id'], 'routine_openid');
  127. $bodyContent = $orderInfo['intention'];
  128. $site_name = sys_config('site_name');
  129. if (!$bodyContent && !$site_name) exception('支付参数缺少:请前往后台设置->系统设置-> 填写 网站名称');
  130. // ($openid, $out_trade_no, $total_fee, $attach, $body, $contract_code, $plan_id,$spbill_create_ip, $detail = '', $trade_type = 'JSAPI', $options = [], $cid=0,$contract_display_account='', $contract_notify_url='')
  131. return MiniProgramService::paysignedOrder($openid, $orderInfo['order_id'], $orderInfo['amount'], 'lave', $orderInfo['order_name'], $plan_record['contract_code'],$plan_record['plan_id'],$plan_record['spbill_create_ip'],'', '', [], $cid,$plan_record['contract_display_account'],$plan_record['contract_notify_url']);
  132. }
  133. /**
  134. * 微信h5支付签约
  135. * @param $orderId
  136. * @param string $field
  137. * @return array|string
  138. * @throws Exception
  139. */
  140. public static function h5PaySign($cid, $orderId,$plan_record, $field = 'order_id')
  141. {
  142. if (is_string($orderId))
  143. $orderInfo = Donate::where($field, $orderId)->find();
  144. else
  145. $orderInfo = $orderId;
  146. if (!$orderInfo || !isset($orderInfo['paid'])) exception('支付订单不存在!');
  147. if ($orderInfo['paid']) exception('支付已支付!');
  148. if ($orderInfo['amount'] <= 0) exception('该支付无需支付!');
  149. $bodyContent = $orderInfo['intention'];
  150. $site_name = sys_config('site_name');
  151. if (!$bodyContent && !$site_name) exception('支付参数缺少:请前往后台设置->系统设置-> 填写 网站名称');
  152. // ($openid, $out_trade_no, $total_fee, $attach, $body, $contract_code, $plan_id, $spbill_create_ip ,$detail = '', $trade_type = 'JSAPI', $options = [], $cid = 0,$contract_display_account='')
  153. return WechatService::payment(false, $cid)->paysignedOrder(null, $orderInfo['order_id'], $orderInfo['amount'], "lave", $orderInfo['order_name'],$plan_record['contract_code'],$plan_record['plan_id'],$plan_record['spbill_create_ip'], '', 'MWEB', [], $cid.$plan_record['contract_display_account']);
  154. }
  155. }