Pay.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace App\Models;
  3. use App\Helper\ByteDance;
  4. use App\Helper\SerialNumber;
  5. use App\Helper\UniPlatform\BaseUniPlatform;
  6. use Illuminate\Database\Eloquent\Factories\HasFactory;
  7. use Illuminate\Database\Eloquent\Model;
  8. /**
  9. * App\Models\Pay
  10. *
  11. * @property int $pay_id 订单ID
  12. * @property int $user_id 用户ID
  13. * @property int $store_id 店铺ID
  14. * @property int $pay_type 支付类型
  15. * @property int $status 订单状态
  16. * @property string $pay_dt 支付时间
  17. * @property string $order_fee 订单价格
  18. * @property string $discount_fee 优惠价格
  19. * @property string $handling_fee 手续费
  20. * @property string $prepay_id 微信支付预付单ID
  21. * @property string|null $serial_number 支付流水
  22. * @property string|null $pay_error 支付错误记录
  23. * @property \Illuminate\Support\Carbon $updated_at 删除时间
  24. * @property string $deleted_at 删除时间
  25. * @property \Illuminate\Support\Carbon $created_at 创建时间
  26. * @method static \Illuminate\Database\Eloquent\Builder|Pay newModelQuery()
  27. * @method static \Illuminate\Database\Eloquent\Builder|Pay newQuery()
  28. * @method static \Illuminate\Database\Eloquent\Builder|Pay query()
  29. * @method static \Illuminate\Database\Eloquent\Builder|Pay whereCreatedAt($value)
  30. * @method static \Illuminate\Database\Eloquent\Builder|Pay whereDeletedAt($value)
  31. * @method static \Illuminate\Database\Eloquent\Builder|Pay whereDiscountFee($value)
  32. * @method static \Illuminate\Database\Eloquent\Builder|Pay whereHandlingFee($value)
  33. * @method static \Illuminate\Database\Eloquent\Builder|Pay whereOrderFee($value)
  34. * @method static \Illuminate\Database\Eloquent\Builder|Pay wherePayDt($value)
  35. * @method static \Illuminate\Database\Eloquent\Builder|Pay wherePayError($value)
  36. * @method static \Illuminate\Database\Eloquent\Builder|Pay wherePayId($value)
  37. * @method static \Illuminate\Database\Eloquent\Builder|Pay wherePayType($value)
  38. * @method static \Illuminate\Database\Eloquent\Builder|Pay wherePrepayId($value)
  39. * @method static \Illuminate\Database\Eloquent\Builder|Pay whereSerialNumber($value)
  40. * @method static \Illuminate\Database\Eloquent\Builder|Pay whereStatus($value)
  41. * @method static \Illuminate\Database\Eloquent\Builder|Pay whereStoreId($value)
  42. * @method static \Illuminate\Database\Eloquent\Builder|Pay whereUpdatedAt($value)
  43. * @method static \Illuminate\Database\Eloquent\Builder|Pay whereUserId($value)
  44. * @mixin \Eloquent
  45. * @property int $source 来源 1-购买金币 2-购买会员
  46. * @method static \Illuminate\Database\Eloquent\Builder|Pay whereSource($value)
  47. * @property string|null $token 支付token
  48. * @method static \Illuminate\Database\Eloquent\Builder|Pay whereToken($value)
  49. */
  50. class Pay extends Model
  51. {
  52. use HasFactory;
  53. const SOURCE_RECHARGE = 1;
  54. const SOURCE_BUY_VIP = 2;
  55. protected $table = 'pay';
  56. protected $primaryKey = 'pay_id';
  57. protected $casts = [
  58. 'pay_id' => 'string'
  59. ];
  60. /**
  61. * @param BaseUniPlatform $byteDance
  62. * @param $price
  63. * @param int $source
  64. * @return array|mixed
  65. * @throws \Exception
  66. */
  67. public function create(BaseUniPlatform $byteDance, float $price, int $source)
  68. {
  69. $payId = SerialNumber::createOrderId(\user()->id);
  70. // 字节跳动下单
  71. $res = $byteDance->createOrder($payId, $price, \user()->open_id);
  72. dd($res);
  73. $res['pay_id'] = $payId;
  74. $pay = new Pay();
  75. $pay->pay_id = $payId;
  76. $pay->user_id = \user()->id;
  77. $pay->order_fee = $price;
  78. $pay->source = $source;
  79. $pay->prepay_id = $res['order_id'];
  80. $pay->token = $res['order_token'];
  81. $pay->save();
  82. return $res;
  83. }
  84. }