20251031083213_wechatpay_transfer_bill.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. declare(strict_types=1);
  3. use Phinx\Migration\AbstractMigration;
  4. /**
  5. * 微信支付转账账单表
  6. *
  7. * 用于存储微信支付转账账单信息
  8. */
  9. final class WechatpayTransferBill extends AbstractMigration
  10. {
  11. /**
  12. * Change Method.
  13. *
  14. * Write your reversible migrations using this method.
  15. *
  16. * More information on writing migrations is available here:
  17. * https://book.cakephp.org/phinx/0/en/migrations.html#the-change-method
  18. *
  19. * Remember to call "create()" or "update()" and NOT "save()" when working
  20. * with the Table class.
  21. */
  22. public function change(): void
  23. {
  24. $this->table('wechatpay_transfer_bill', ['comment' => '微信支付转账账单表'])
  25. ->addColumn('user_id', 'integer', ['signed' => false, 'comment' => '用户ID 用户表的主键id'])
  26. ->addColumn('mch_id', 'string', ['limit' => 32, 'comment' => '商户号 微信支付分配的商户号'])
  27. ->addColumn('out_bill_no', 'string', ['limit' => 32, 'comment' => '商户单号 商户系统内部的商家单号,要求此参数只能由数字、大小写字母组成,在商户系统内部唯一'])
  28. ->addColumn('transfer_bill_no', 'string', ['limit' => 32, 'null' => true, 'comment' => '商家转账订单号 商家转账订单的主键,唯一定义此资源的标识'])
  29. ->addColumn('appid', 'string', ['limit' => 32, 'comment' => '商户AppID 微信开放平台和微信公众平台为开发者的应用程序提供的唯一标识'])
  30. ->addColumn('state', 'enum', [
  31. 'values' => ['APPLYING', 'ACCEPTED', 'PROCESSING', 'WAIT_USER_CONFIRM', 'TRANSFERING', 'SUCCESS', 'FAIL', 'CANCELING', 'CANCELLED'],
  32. 'comment' => '单据状态 APPLYING:申请中;ACCEPTED:转账已受理;PROCESSING:转账锁定资金中;WAIT_USER_CONFIRM:待收款用户确认;TRANSFERING:转账中;SUCCESS:转账成功;FAIL:转账失败;CANCELING:转账撤销中;CANCELLED:转账撤销完成'
  33. ])
  34. ->addColumn('transfer_amount', 'integer', ['signed' => false, 'comment' => '转账金额 转账金额单位为"分"'])
  35. ->addColumn('fee', 'integer', ['signed' => false, 'comment' => '手续费 转账手续费,单位为"分"'])
  36. ->addColumn('transfer_remark', 'string', ['limit' => 32, 'comment' => '转账备注 单条转账备注(微信用户会收到该备注),UTF8编码,最多允许32个字符'])
  37. ->addColumn('fail_reason', 'string', ['limit' => 255, 'null' => true, 'comment' => '失败原因 订单已失败或者已退资金时,会返回订单失败原因'])
  38. ->addColumn('openid', 'string', ['limit' => 64, 'null' => true, 'comment' => '收款用户OpenID 用户在商户appid下的唯一标识'])
  39. ->addColumn('user_name', 'string', ['limit' => 20, 'null' => true, 'comment' => '收款用户姓名 收款方真实姓名'])
  40. ->addColumn('create_time', 'timestamp', ['comment' => '单据创建时间 单据受理成功时返回,按照使用rfc3339所定义的格式,格式为yyyy-MM-DDThh:mm:ss+TIMEZONE'])
  41. ->addColumn('update_time', 'timestamp', ['comment' => '最后一次状态变更时间 单据最后更新时间,按照使用rfc3339所定义的格式,格式为yyyy-MM-DDThh:mm:ss+TIMEZONE'])
  42. ->addIndex(['out_bill_no'], ['unique' => true, 'name' => 'uniq_out_bill_no'])
  43. ->create();
  44. }
  45. }