汇付SDK
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hfpay-lib/src/factory/object/trade/RefundRequest.php

77 lines
3.0 KiB

<?php
namespace Tansilu\HfPayLib\factory\object\trade;
use Tansilu\HfPayLib\exception\ParamsException;
use Tansilu\HfPayLib\factory\object\RequestObj;
use Tansilu\HfPayLib\utils\StrFilterHelper;
/**
* @property $order_date 订单日期
* @property $order_id 订单号
* @property $org_order_date 原交易订单日期
* @property $org_order_id 原交易订单号
* @property $trans_type 原交易类型
* @property $trans_amt 退款金额
* @property array $div_details 退款明细
* @property $remark 备注
* @property $bg_ret_url 后台返回地址
* @property $mer_priv 商户私有域
* @property $extension 扩展域
* @property DeviceInfo $dev_info_json 设备静态信息
*/
class RefundRequest
{
use RequestObj;
public function toParams(): array
{
$params = [];
if(empty($this->data['order_date'])) {
throw new ParamsException('订单日期不能为空', 'order_date');
}
$params['order_date'] = $this->data['order_date'];
if(empty($this->data['order_id'])) {
throw new ParamsException('订单号不能为空', 'order_id');
}
$params['order_id'] = $this->data['order_id'];
if(empty($this->data['org_order_date'])) {
throw new ParamsException('原交易订单日期不能为空', 'org_order_date');
}
$params['org_order_date'] = $this->data['org_order_date'];
if(empty($this->data['org_order_id'])) {
throw new ParamsException('原交易订单号不能为空', 'org_order_id');
}
$params['org_order_id'] = $this->data['org_order_id'];
if(!empty($params['trans_type'])) {
$params['trans_type'] = $this->data['trans_type'];
}
if(empty($this->data['trans_amt'])) {
throw new ParamsException('退款金额不能为空', 'trans_amt');
}
$params['trans_amt'] = $this->data['trans_amt'];
if(empty($this->data['div_details'])) {
throw new ParamsException('退款明细不能为空', 'div_details');
}
$params['div_details'] = json_encode($this->data['div_details'], JSON_UNESCAPED_UNICODE);
if(!empty($this->data['remark'])) {
$params['remark'] = $this->data['remark'];
}
if(!empty($this->data['bg_ret_url'])) {
$params['bg_ret_url'] = StrFilterHelper::fileUrl($this->data['bg_ret_url']);
}
if(!empty($this->data['mer_priv'])) {
$params['mer_priv'] = $this->data['mer_priv'];
}
if(!empty($this->data['extension'])) {
$params['extension'] = $this->data['extension'];
}
if(!empty($this->data['dev_info_json'])) {
$params['dev_info_json'] = $this->data['dev_info_json']->toJSON();
}
return $params;
}
}