Code Duplication    Length = 57-57 lines in 2 locations

sdk/ECPay.Logistics.Integration.php 2 locations

@@ 859-915 (lines=57) @@
856
         * @return		array
857
         * @version		1.0.1012
858
         */
859
        public function CreateUnimartB2CReturnOrder()
860
        {
861
862
            // 參數初始化
863
            $ParamList = [
864
                'MerchantID' => '',
865
                'AllPayLogisticsID' => '',
866
                'ServerReplyURL' => '',
867
                'GoodsName' => '',
868
                'GoodsAmount' => 0,
869
                'SenderName' => '',
870
                'SenderPhone' => '',
871
                'Remark' => '',
872
                'PlatformID' => '',
873
            ];
874
            $this->PostParams = $this->GetPostParams($this->Send, $ParamList);
875
            $this->PostParams['CollectionAmount'] = 0;
876
            $this->PostParams['ServiceType'] = 4; // 退貨不付款
877
878
            // 參數檢查
879
            $this->ValidateHashKey();
880
            $this->ValidateHashIV();
881
            $this->ValidateID('MerchantID', $this->PostParams['MerchantID'], 10);
882
            $this->ServiceURL = $this->GetURL('UNIMART_RETURN_ORDER');
883
            $this->ValidateID('AllPayLogisticsID', $this->PostParams['AllPayLogisticsID'], 20, true);
884
            $this->ValidateURL('ServerReplyURL', $this->PostParams['ServerReplyURL']);
885
            $this->ValidateString('GoodsName', $this->PostParams['GoodsName'], 60, true);
886
            $this->ValidateAmount('GoodsAmount', $this->PostParams['GoodsAmount']);
887
            $this->ValidateString('SenderName', $this->PostParams['SenderName'], 50);
888
            $this->ValidatePhoneNumber('SenderPhone', $this->PostParams['SenderPhone'], true);
889
            $this->ValidateString('Remark', $this->PostParams['Remark'], 20, true);
890
            $this->ValidateID('PlatformID', $this->PostParams['PlatformID'], 10, true);
891
892
            $MinAmount = 1; // 金額下限
893
            $MaxAmount = 19999; // 金額上限
894
            if ($this->PostParams['GoodsAmount'] < $MinAmount or $this->PostParams['GoodsAmount'] > $MaxAmount) {
895
                throw new Exception('Invalid GoodsAmount.');
896
            }
897
898
            // 產生 CheckMacValue
899
            $this->PostParams['CheckMacValue'] = ECPay_CheckMacValue::generate($this->PostParams, $this->HashKey, $this->HashIV);
900
901
            // 解析回傳結果
902
            // 正確:RtnMerchantTradeNo | RtnOrderNo
903
            // 錯誤:|ErrorMessage
904
            $Feedback = ECPay_IO::ServerPost($this->PostParams, $this->ServiceURL);
905
            $Pieces = explode('|', $Feedback);
906
            $Result = ['RtnMerchantTradeNo' => '', 'RtnOrderNo' => ''];
907
            if (empty($Pieces[0])) {
908
                $Result = ['ErrorMessage' => $Pieces[1]];
909
            } else {
910
                $Result['RtnMerchantTradeNo'] = $Pieces[0];
911
                $Result['RtnOrderNo'] = $Pieces[1];
912
            }
913
914
            return $Result;
915
        }
916
917
        /**
918
         *  超商取貨逆物流訂單(萊爾富超商B2C).
@@ 925-981 (lines=57) @@
922
         * @return		array
923
         * @version		1.0.1012
924
         */
925
        public function CreateHiLifeB2CReturnOrder()
926
        {
927
928
            // 參數初始化
929
            $ParamList = [
930
                'MerchantID' => '',
931
                'AllPayLogisticsID' => '',
932
                'ServerReplyURL' => '',
933
                'GoodsName' => '',
934
                'GoodsAmount' => 0,
935
                'SenderName' => '',
936
                'SenderPhone' => '',
937
                'Remark' => '',
938
                'PlatformID' => '',
939
            ];
940
            $this->PostParams = $this->GetPostParams($this->Send, $ParamList);
941
            $this->PostParams['CollectionAmount'] = 0;
942
            $this->PostParams['ServiceType'] = 4; // 退貨不付款
943
944
            // 參數檢查
945
            $this->ValidateHashKey();
946
            $this->ValidateHashIV();
947
            $this->ValidateID('MerchantID', $this->PostParams['MerchantID'], 10);
948
            $this->ServiceURL = $this->GetURL('HILIFE_RETURN_ORDER');
949
            $this->ValidateID('AllPayLogisticsID', $this->PostParams['AllPayLogisticsID'], 20, true);
950
            $this->ValidateURL('ServerReplyURL', $this->PostParams['ServerReplyURL']);
951
            $this->ValidateString('GoodsName', $this->PostParams['GoodsName'], 60, true);
952
            $this->ValidateAmount('GoodsAmount', $this->PostParams['GoodsAmount']);
953
            $this->ValidateString('SenderName', $this->PostParams['SenderName'], 50);
954
            $this->ValidatePhoneNumber('SenderPhone', $this->PostParams['SenderPhone'], true);
955
            $this->ValidateString('Remark', $this->PostParams['Remark'], 20, true);
956
            $this->ValidateID('PlatformID', $this->PostParams['PlatformID'], 10, true);
957
958
            $MinAmount = 1; // 金額下限
959
            $MaxAmount = 20000; // 金額上限
960
            if ($this->PostParams['GoodsAmount'] < $MinAmount or $this->PostParams['GoodsAmount'] > $MaxAmount) {
961
                throw new Exception('Invalid GoodsAmount.');
962
            }
963
964
            // 產生 CheckMacValue
965
            $this->PostParams['CheckMacValue'] = ECPay_CheckMacValue::generate($this->PostParams, $this->HashKey, $this->HashIV);
966
967
            // 解析回傳結果
968
            // 正確:RtnMerchantTradeNo | RtnOrderNo
969
            // 錯誤:|ErrorMessage
970
            $Feedback = ECPay_IO::ServerPost($this->PostParams, $this->ServiceURL);
971
            $Pieces = explode('|', $Feedback);
972
            $Result = ['RtnMerchantTradeNo' => '', 'RtnOrderNo' => ''];
973
            if (empty($Pieces[0])) {
974
                $Result = ['ErrorMessage' => $Pieces[1]];
975
            } else {
976
                $Result['RtnMerchantTradeNo'] = $Pieces[0];
977
                $Result['RtnOrderNo'] = $Pieces[1];
978
            }
979
980
            return $Result;
981
        }
982
983
        /**
984
         *  超商取貨逆物流訂單(全家超商B2C).