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.
77 lines
3.0 KiB
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;
|
|
}
|
|
|
|
} |