PayTrade.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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, $type = '', $o_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. 'type' => $type,
  50. 'o_id' => $o_id
  51. ]);
  52. return $bool ? $payOn : null;
  53. }
  54. /**
  55. * 生成平台支付流水
  56. */
  57. private function mkPayOn($uid)
  58. {
  59. return 'PN' . time() . rand(1000, 9000) . $uid;
  60. }
  61. }