| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <?php
- namespace addons\HuijuBill\common\service;
- use addons\HuijuBill\common\enums\StatusEnum;
- use common\enums\AddonsEnum;
- use addons\HuijuBill\common\logic\PayApiLogic;
- use common\models\common\MiddleMch;
- use common\models\common\PaymentTradeOrder;
- use Exception;
- use Swoole\Http\Status;
- use Yii;
- use yii\base\Model;
- class BillService extends Model
- {
- /**
- * 商户ID
- *
- * @var integer
- */
- public $mall_id;
- /**
- * 錯誤
- *
- * @var string
- */
- public $error;
- /**
- * 获取分账列表
- *
- * @param array $params
- * @return array
- */
- public function getBillList($params)
- {
- $mch = MiddleMch::getMch($this->mall_id);
- $service = new PayApiLogic($mch);
- $start_time = !empty($params['data']) ? $params['data'][0] : date('Y-m-d', strtotime('-90day'));
- $end_time = !empty($params['data']) ? $params['data'][1] : date('Y-m-d');
- $page = empty($params['page']) ? 1 : intval($params['page']);
- $order_no = !empty($params['no'])
- ? PaymentTradeOrder::getOutTradeNoOfOrderNo($params['no'])
- : '';
- $data = $service->order_alt_list($start_time, $end_time, $order_no, $page);
- $list = $data['items'];
-
- foreach ($list as $k => $v) {
- $list[$k]['alt_status'] = StatusEnum::getValue($v['alt_status']);
- }
- $res['list'] = $list;
- $res['limit'] = 10;
- $res['page_count'] = ceil($data['pageInfo']['total'] / 15);
- $res['current_page'] = $data['pageInfo']['currentPage'];
- return $res;
- }
- /**
- * 获取分账方详情
- *
- * @return array
- */
- public function getInfo()
- {
- $mch = MiddleMch::getMch($this->mall_id);
- $service = new PayApiLogic($mch);
- $basic = Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_HUIJU_BILL, 'basic');
- $sett_mode_arr = [
- 1 => '自动结算',
- 2 => '手工结算' ,
- 3 => '手工+D0 结算',
- 4 => '自动+D0 结算',
- ];
- $alt_merchant_type_arr = [
- 10 => '个人',
- 11 => '个体工商户',
- 12 => '企业',
- ];
-
- $sign_status_arr = [
- 0 => '未签约',
- 1 => '已签约',
- ];
- $data = $service->mch_info($basic['huijubill_merchant_no']);
- $data['sett_mode'] = $sett_mode_arr[$data['sett_mode']] ?? '';
- $data['alt_merchant_type'] = $alt_merchant_type_arr[$data['alt_merchant_type']] ?? '';
- $data['sign_status'] = $sign_status_arr[$data['sign_status']] ?? '';
- return $data;
- }
- /**
- * 获取签约内容
- *
- * @return string
- */
- public function getSignContent()
- {
- $mch = MiddleMch::getMch($this->mall_id);
- $service = new PayApiLogic($mch);
- return $service->sign_content();
- }
- /**
- * 确认签约
- *
- * @return void
- */
- public function confirmSign()
- {
- $mch = MiddleMch::getMch($this->mall_id);
- $service = new PayApiLogic($mch);
- try {
- $res = $service->confirm_sign();
- } catch (Exception $e) {
- $this->error = $e->getMessage();
- // 重复签约
- if ($this->error == '接口请求错误:受理失败,分账商户已签约,请勿重复签约') {
- // 保存签约状态
- Yii::$app->services->setting->addons->set(
- $this->mall_id,
- AddonsEnum::ADDONS_NAME_HUIJU_BILL,
- ['basic' => ['sign_status' => 1]]
- );
- }
- return false;
- }
- // 保存签约状态
- Yii::$app->services->setting->addons->set(
- $this->mall_id,
- AddonsEnum::ADDONS_NAME_HUIJU_BILL,
- ['basic' => ['sign_status' => 1]]
- );
- return true;
- }
- }
|