<?php
namespace Alipay\EasySDK\Payment\Common\Models;
use AlibabaCloud\Tea\Model;
use Alipay\EasySDK\Payment\Common\Models\TradeFundBill;
use Alipay\EasySDK\Payment\Common\Models\PresetPayToolInfo;
class AlipayTradeRefundResponse extends Model {
protected $_name = [
'httpBody' => 'http_body',
'code' => 'code',
'msg' => 'msg',
'subCode' => 'sub_code',
'subMsg' => 'sub_msg',
'tradeNo' => 'trade_no',
'outTradeNo' => 'out_trade_no',
'buyerLogonId' => 'buyer_logon_id',
'fundChange' => 'fund_change',
'refundFee' => 'refund_fee',
'refundCurrency' => 'refund_currency',
'gmtRefundPay' => 'gmt_refund_pay',
'refundDetailItemList' => 'refund_detail_item_list',
'storeName' => 'store_name',
'buyerUserId' => 'buyer_user_id',
'refundPresetPaytoolList' => 'refund_preset_paytool_list',
'refundSettlementId' => 'refund_settlement_id',
'presentRefundBuyerAmount' => 'present_refund_buyer_amount',
'presentRefundDiscountAmount' => 'present_refund_discount_amount',
'presentRefundMdiscountAmount' => 'present_refund_mdiscount_amount',
];
public function validate() {
Model::validateRequired('httpBody', $this->httpBody, true);
Model::validateRequired('code', $this->code, true);
Model::validateRequired('msg', $this->msg, true);
Model::validateRequired('subCode', $this->subCode, true);
Model::validateRequired('subMsg', $this->subMsg, true);
Model::validateRequired('tradeNo', $this->tradeNo, true);
Model::validateRequired('outTradeNo', $this->outTradeNo, true);
Model::validateRequired('buyerLogonId', $this->buyerLogonId, true);
Model::validateRequired('fundChange', $this->fundChange, true);
Model::validateRequired('refundFee', $this->refundFee, true);
Model::validateRequired('refundCurrency', $this->refundCurrency, true);
Model::validateRequired('gmtRefundPay', $this->gmtRefundPay, true);
Model::validateRequired('refundDetailItemList', $this->refundDetailItemList, true);
Model::validateRequired('storeName', $this->storeName, true);
Model::validateRequired('buyerUserId', $this->buyerUserId, true);
Model::validateRequired('refundPresetPaytoolList', $this->refundPresetPaytoolList, true);
Model::validateRequired('refundSettlementId', $this->refundSettlementId, true);
Model::validateRequired('presentRefundBuyerAmount', $this->presentRefundBuyerAmount, true);
Model::validateRequired('presentRefundDiscountAmount', $this->presentRefundDiscountAmount, true);
Model::validateRequired('presentRefundMdiscountAmount', $this->presentRefundMdiscountAmount, true);
}
public function toMap() {
$res = [];
if (null !== $this->httpBody) {
$res['http_body'] = $this->httpBody;
}
if (null !== $this->code) {
$res['code'] = $this->code;
}
if (null !== $this->msg) {
$res['msg'] = $this->msg;
}
if (null !== $this->subCode) {
$res['sub_code'] = $this->subCode;
}
if (null !== $this->subMsg) {
$res['sub_msg'] = $this->subMsg;
}
if (null !== $this->tradeNo) {
$res['trade_no'] = $this->tradeNo;
}
if (null !== $this->outTradeNo) {
$res['out_trade_no'] = $this->outTradeNo;
}
if (null !== $this->buyerLogonId) {
$res['buyer_logon_id'] = $this->buyerLogonId;
}
if (null !== $this->fundChange) {
$res['fund_change'] = $this->fundChange;
}
if (null !== $this->refundFee) {
$res['refund_fee'] = $this->refundFee;
}
if (null !== $this->refundCurrency) {
$res['refund_currency'] = $this->refundCurrency;
}
if (null !== $this->gmtRefundPay) {
$res['gmt_refund_pay'] = $this->gmtRefundPay;
}
if (null !== $this->refundDetailItemList) {
$res['refund_detail_item_list'] = [];
if(null !== $this->refundDetailItemList && is_array($this->refundDetailItemList)){
$n = 0;
foreach($this->refundDetailItemList as $item){
$res['refund_detail_item_list'][$n++] = null !== $item ? $item->toMap() : $item;
}
}
}
if (null !== $this->storeName) {
$res['store_name'] = $this->storeName;
}
if (null !== $this->buyerUserId) {
$res['buyer_user_id'] = $this->buyerUserId;
}
if (null !== $this->refundPresetPaytoolList) {
$res['refund_preset_paytool_list'] = [];
if(null !== $this->refundPresetPaytoolList && is_array($this->refundPresetPaytoolList)){
$n = 0;
foreach($this->refundPresetPaytoolList as $item){
$res['refund_preset_paytool_list'][$n++] = null !== $item ? $item->toMap() : $item;
}
}
}
if (null !== $this->refundSettlementId) {
$res['refund_settlement_id'] = $this->refundSettlementId;
}
if (null !== $this->presentRefundBuyerAmount) {
$res['present_refund_buyer_amount'] = $this->presentRefundBuyerAmount;
}
if (null !== $this->presentRefundDiscountAmount) {
$res['present_refund_discount_amount'] = $this->presentRefundDiscountAmount;
}
if (null !== $this->presentRefundMdiscountAmount) {
$res['present_refund_mdiscount_amount'] = $this->presentRefundMdiscountAmount;
}
return $res;
}
public static function fromMap($map = []) {
$model = new self();
if(isset($map['http_body'])){
$model->httpBody = $map['http_body'];
}
if(isset($map['code'])){
$model->code = $map['code'];
}
if(isset($map['msg'])){
$model->msg = $map['msg'];
}
if(isset($map['sub_code'])){
$model->subCode = $map['sub_code'];
}
if(isset($map['sub_msg'])){
$model->subMsg = $map['sub_msg'];
}
if(isset($map['trade_no'])){
$model->tradeNo = $map['trade_no'];
}
if(isset($map['out_trade_no'])){
$model->outTradeNo = $map['out_trade_no'];
}
if(isset($map['buyer_logon_id'])){
$model->buyerLogonId = $map['buyer_logon_id'];
}
if(isset($map['fund_change'])){
$model->fundChange = $map['fund_change'];
}
if(isset($map['refund_fee'])){
$model->refundFee = $map['refund_fee'];
}
if(isset($map['refund_currency'])){
$model->refundCurrency = $map['refund_currency'];
}
if(isset($map['gmt_refund_pay'])){
$model->gmtRefundPay = $map['gmt_refund_pay'];
}
if(isset($map['refund_detail_item_list'])){
if(!empty($map['refund_detail_item_list'])){
$model->refundDetailItemList = [];
$n = 0;
foreach($map['refund_detail_item_list'] as $item) {
$model->refundDetailItemList[$n++] = null !== $item ? TradeFundBill::fromMap($item) : $item;
}
}
}
if(isset($map['store_name'])){
$model->storeName = $map['store_name'];
}
if(isset($map['buyer_user_id'])){
$model->buyerUserId = $map['buyer_user_id'];
}
if(isset($map['refund_preset_paytool_list'])){
if(!empty($map['refund_preset_paytool_list'])){
$model->refundPresetPaytoolList = [];
$n = 0;
foreach($map['refund_preset_paytool_list'] as $item) {
$model->refundPresetPaytoolList[$n++] = null !== $item ? PresetPayToolInfo::fromMap($item) : $item;
}
}
}
if(isset($map['refund_settlement_id'])){
$model->refundSettlementId = $map['refund_settlement_id'];
}
if(isset($map['present_refund_buyer_amount'])){
$model->presentRefundBuyerAmount = $map['present_refund_buyer_amount'];
}
if(isset($map['present_refund_discount_amount'])){
$model->presentRefundDiscountAmount = $map['present_refund_discount_amount'];
}
if(isset($map['present_refund_mdiscount_amount'])){
$model->presentRefundMdiscountAmount = $map['present_refund_mdiscount_amount'];
}
return $model;
}
public $httpBody;
public $code;
public $msg;
public $subCode;
public $subMsg;
public $tradeNo;
public $outTradeNo;
public $buyerLogonId;
public $fundChange;
public $refundFee;
public $refundCurrency;
public $gmtRefundPay;
public $refundDetailItemList;
public $storeName;
public $buyerUserId;
public $refundPresetPaytoolList;
public $refundSettlementId;
public $presentRefundBuyerAmount;
public $presentRefundDiscountAmount;
public $presentRefundMdiscountAmount;
}