PayTrade.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. declare (strict_types=1);
  3. namespace app\model\api;
  4. use library\basic\BaseModel;
  5. use app\model\api\User as UserModel;
  6. use think\Model;
  7. /**
  8. * @mixin \think\Model
  9. */
  10. class PayTrade extends BaseModel
  11. {
  12. /**
  13. * 生成支付凭证
  14. * @param $payType 支付类型
  15. * @param $uid 用户UID
  16. * @param $code 支付code
  17. * @param $money 支付金额
  18. * @param $content 支付说明
  19. * @param $out_trade_no 其他订单
  20. * @param $djson 额外说明
  21. */
  22. public function credentials($payType, $uid, $code, $money, $content = '支付凭证', $out_trade_no = '', $djson = [],$admin_id=0)
  23. {
  24. $apple_pid = (empty($djson) || empty($djson["apple_pid"])) ? '':$djson["apple_pid"];
  25. $payOn = $this->mkPayOn($uid);
  26. $userData = (new UserModel)->where("uid",$uid)->find();
  27. $i_tuid = 0;
  28. $i_uid = 0;
  29. if(!empty($userData) && $userData["i_tuid"]>0){
  30. $i_tuid = intval($userData["i_tuid"]);
  31. }
  32. if(!empty($userData) && $userData["i_uid"]>0){
  33. $i_uid = intval($userData["i_uid"]);
  34. }
  35. $bool = $this->insert([
  36. 'pay_no' => $payOn,
  37. 'out_trade_no' => empty($out_trade_no) ? $payOn : $out_trade_no,
  38. 'uid' => $uid,
  39. 'pay_type' => $payType,
  40. 'code' => $code,
  41. 'money' => $money,
  42. 'content' => $content,
  43. 'd_json' => serialize($djson),
  44. 'time' => time(),
  45. 'admin_id' => $admin_id,
  46. 'apple_pid' => $apple_pid,
  47. 'i_tuid' => $i_tuid,
  48. 'i_uid' => $i_uid
  49. ]);
  50. return $bool ? $payOn : null;
  51. }
  52. /**
  53. * 生成平台支付流水
  54. */
  55. private function mkPayOn($uid)
  56. {
  57. return 'PN' . time() . rand(1000, 9000) . $uid;
  58. }
  59. }