diff --git a/src/Vendors/IslamiBankApi.php b/src/Vendors/IslamiBankApi.php index 40b25e3..4294e4c 100644 --- a/src/Vendors/IslamiBankApi.php +++ b/src/Vendors/IslamiBankApi.php @@ -175,90 +175,160 @@ public function fetchRemittanceStatus(array $data): array */ public function directCreditRemittance(array $data): array { - //dd($data); + $directCreditRemittance = $this->__transferData($data); $xmlString = ' '.$this->config[$this->status]['username'].' '.$this->config[$this->status]['password'].' '; - //$xmlString .= ''.($data['beneficiary_data']['reference_no'] ?? null).''; $xmlString .= ''; - $xmlString .= ' - ? + $xmlString .= ' - ? + '.$directCreditRemittance['additionalField1'].' - ? + '.$directCreditRemittance['additionalField2'].' - ? + '.$directCreditRemittance['additionalField3'].' - ? + '.$directCreditRemittance['additionalField4'].' - ? + '.$directCreditRemittance['additionalField5'].' - ? + '.$directCreditRemittance['additionalField6'].' - ? + '.$directCreditRemittance['additionalField7'].' - ?'; - $xmlString .= ''.($data['sending_amount'] ?? null).''; - $xmlString .= '?'; - $xmlString .= ''.($data['sending_currency'] ?? null).''; - - if ($data['service_slug'] == 'bank_transfer') { - $xmlString .= ''.($data['beneficiary_data']['receiver_information']['beneficiary_data']['bank_account_number'] ?? null).''; - if ($data['beneficiary_data']['bank_information']['bank_slug'] == 'islami_bank_bangladesh_limited') { - $xmlString .= ''.($data['beneficiary_data']['beneficiary_acc_type'] ?? '02').''; - $xmlString .= ''.($data['beneficiary_data']['branch_information']['branch_data']['islami_bank_branch_code'] ?? null).''; - $xmlString .= '2'; - } else { - $xmlString .= '?'; - $xmlString .= '?'; - $xmlString .= '3'; - } - } elseif ($data['receiver_information']['beneficiary_type_name'] == 'cash_pickup') { - $xmlString .= '?'; - if ($data['beneficiary_data']['bank_information']['bank_slug'] == 'islami_bank_bangladesh_limited') { - $xmlString .= '?'; - $xmlString .= ''.($data['beneficiary_data']['branch_information']['branch_data']['islami_bank_branch_code'] ?? null).''; - $xmlString .= '1'; - } else { - $xmlString .= '?'; - $xmlString .= '3'; - } - } - $xmlString .= ''.($data['beneficiary_data']['branch_information']['branch_data']['routing_no'] ?? '?').''; - $xmlString .= ''.($data['beneficiary_data']['receiver_information']['city_name'] ?? null).','.($data['beneficiary_data']['receiver_information']['country_name'] ?? null).''; - $xmlString .= ''.($data['beneficiary_data']['bank_information']['bank_data']['islami_bank_code'] ?? null).''; - $xmlString .= ''.($data['beneficiary_data']['bank_information']['bank_name'] ?? null).''; - $xmlString .= ''.($data['beneficiary_data']['branch_information']['branch_name'] ?? null).''; - $xmlString .= ''.($data['beneficiary_data']['receiver_information']['beneficiary_name'] ?? null).''; - $xmlString .= '>?'; - $xmlString .= ''.($data['beneficiary_data']['receiver_information']['beneficiary_mobile'] ?? null).''; - $xmlString .= ' - ? - - ? - - ? - - ? - - ?'; - $xmlString .= ''.(date('Y-m-d', strtotime($data['created_at'])) ?? null).''; - $xmlString .= ''.($data['note'] ?? '?').''; - $xmlString .= ''.($data['beneficiary_data']['sender_information']['profile']['present_address']['city_name'] ?? null).''; - $xmlString .= ''.($data['beneficiary_data']['sender_information']['profile']['present_address']['country_name'] ?? null).''; - $xmlString .= ''.($data['beneficiary_data']['sender_information']['profile']['id_doc']['id_type'] ?? null).''; - if ($data['beneficiary_data']['sender_information']['profile']['id_doc']['id_type'] == 'passport') { - $xmlString .= ''.($data['beneficiary_data']['sender_information']['profile']['id_doc']['id_no'] ?? null).''; - } else { - $xmlString .= ''.($data['beneficiary_data']['sender_information']['profile']['id_doc']['id_no'] ?? null).''; - } - $xmlString .= ''.($data['beneficiary_data']['sender_information']['name'] ?? null).''; - $xmlString .= ''.($data['beneficiary_data']['sender_information']['mobile'] ?? null).''; - $xmlString .= ''.($data['beneficiary_data']['reference_no'] ?? null).''; - $xmlString .= ''.($data['beneficiary_data']['reference_no'] ?? null).''; - $xmlString .= ''.($data['remittance_purpose'] ?? null).''; + '.$directCreditRemittance['additionalField8'].' + + '.$directCreditRemittance['additionalField9'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['amount'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['batchID'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['beneficiaryAccNo'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['beneficiaryAccType'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['beneficiaryAddress'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['beneficiaryBankCode'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['beneficiaryBankName'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['beneficiaryBranchCode'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['beneficiaryBranchName'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['beneficiaryName'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['beneficiaryPassportNo'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['beneficiaryPhoneNo'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['beneficiaryRoutingNo'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['exHouseTxID'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['exchHouseBranchCode'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['exchHouseSwiftCode'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['identityDescription'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['identityType'].' + '; + $xmlString .= ' + + '.($directCreditRemittance['isoCode'] ?? null).' + '; + $xmlString .= ' + + '.$directCreditRemittance['issueDate'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['note'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['orderNo'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['paymentType'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['remittancePurpose'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['remitterAddress'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['remitterCountry'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['remitterIdentificationNo'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['remitterName'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['remitterPassportNo'].' + '; + $xmlString .= ' + + '.$directCreditRemittance['remitterPhoneNo'].' + '; + $xmlString .= ' + + '.($directCreditRemittance['reference_no'] ?? null).' + '; + $xmlString .= ' + + '.($directCreditRemittance['reference_no'] ?? null).' + '; $xmlString .= ''; $soapMethod = 'directCreditWSMessage'; $response = $this->connectionCheck($xmlString, $soapMethod); @@ -708,4 +778,81 @@ public function requestQuotation($order): array { return []; } + + /** + * @param array $data + * @return array + */ + private function __transferData(array $data): array + { + $bankTransferData['additionalField1'] = '?'; + $bankTransferData['additionalField2'] = '?'; + $bankTransferData['additionalField3'] = '?'; + $bankTransferData['additionalField4'] = '?'; + $bankTransferData['additionalField5'] = '?'; + $bankTransferData['additionalField6'] = '?'; + $bankTransferData['additionalField7'] = '?'; + $bankTransferData['additionalField8'] = '?'; + $bankTransferData['additionalField9'] = '?'; + $bankTransferData['amount'] = ($data['sending_amount'] ?? null); + $bankTransferData['batchID'] = '?'; + $bankTransferData['beneficiaryAccNo'] = ($data['beneficiary_data']['receiver_information']['beneficiary_data']['bank_account_number'] ?? $data['beneficiary_data']['receiver_information']['beneficiary_data']['wallet_account_number'] ?? null); + $bankTransferData['paymentType'] = 3; + $bankTransferData['beneficiaryRoutingNo'] = ($data['beneficiary_data']['branch_information']['branch_data']['routing_no'] ?? '?'); + if ($data['service_slug'] == 'mbs_m_cash') { + $bankTransferData['paymentType'] = 5; + $bankTransferData['beneficiaryRoutingNo'] = '?'; + }elseif ($data['service_slug'] == 'mfs_bkash'){ + $bankTransferData['paymentType'] = 7; + $bankTransferData['beneficiaryRoutingNo'] = '?'; + }elseif ($data['service_slug'] == 'mfs_nagad'){ + $bankTransferData['paymentType'] = 8; + $bankTransferData['beneficiaryRoutingNo'] = '?'; + } + if ($data['service_slug'] == 'cash_pickup') { + $bankTransferData['beneficiaryAccNo'] = ''; + $bankTransferData['paymentType'] = 1; + $bankTransferData['beneficiaryRoutingNo'] = '?'; + } + $bankTransferData['beneficiaryAccType'] = ''; + $bankTransferData['beneficiaryBranchCode'] = ''; + if ($data['beneficiary_data']['bank_information']['bank_slug'] == 'islami_bank_bangladesh_limited') { + $bankTransferData['beneficiaryAccType'] = ($data['beneficiary_data']['beneficiary_acc_type'] ?? null); + $bankTransferData['beneficiaryBranchCode'] = ($data['beneficiary_data']['branch_information']['branch_data']['islami_bank_branch_code'] ?? null); + $bankTransferData['beneficiaryRoutingNo'] = '?'; + $bankTransferData['paymentType'] = 2; + } + $bankTransferData['beneficiaryAddress'] = ($data['beneficiary_data']['receiver_information']['city_name'] ?? null).','.($data['beneficiary_data']['receiver_information']['country_name'] ?? null); + $bankTransferData['beneficiaryBankCode'] = ($data['beneficiary_data']['bank_information']['bank_data']['islami_bank_code'] ?? null); + $bankTransferData['beneficiaryBankName'] = ($data['beneficiary_data']['bank_information']['bank_name'] ?? null); + $bankTransferData['beneficiaryBranchName'] = ($data['beneficiary_data']['branch_information']['branch_name'] ?? null); + $bankTransferData['beneficiaryName'] = ($data['beneficiary_data']['receiver_information']['beneficiary_name'] ?? null); + $bankTransferData['beneficiaryPassportNo'] = '?'; + $bankTransferData['beneficiaryPhoneNo'] = ($data['beneficiary_data']['receiver_information']['beneficiary_mobile'] ?? null); + $bankTransferData['exHouseTxID'] = '?'; + $bankTransferData['exchHouseBranchCode'] = '?'; + $bankTransferData['exchHouseSwiftCode'] = '?'; + $bankTransferData['identityDescription'] = '?'; + $bankTransferData['identityType'] = ($data['beneficiary_data']['sender_information']['profile']['id_doc']['id_type'] ?? null); + $bankTransferData['remitterPassportNo'] = '?'; + $bankTransferData['remitterIdentificationNo'] = '?'; + if ($data['beneficiary_data']['sender_information']['profile']['id_doc']['id_type'] == 'passport') { + $bankTransferData['remitterPassportNo'] = ($data['beneficiary_data']['sender_information']['profile']['id_doc']['id_no'] ?? null); + } else { + $bankTransferData['remitterIdentificationNo'] = ($data['beneficiary_data']['sender_information']['profile']['id_doc']['id_no'] ?? null); + } + $bankTransferData['isoCode'] = ($data['sending_currency'] ?? null); + $bankTransferData['issueDate'] = (date('Y-m-d', strtotime($data['created_at'])) ?? null); + $bankTransferData['note'] = '?'; + $bankTransferData['orderNo'] = '?'; + $bankTransferData['remittancePurpose'] = '?'; + $bankTransferData['remitterAddress'] = ($data['beneficiary_data']['sender_information']['profile']['present_address']['city_name'] ?? null); + $bankTransferData['remitterCountry'] = ($data['beneficiary_data']['sender_information']['profile']['present_address']['country_name'] ?? null); + $bankTransferData['remitterName'] = ($data['beneficiary_data']['sender_information']['name'] ?? null); + $bankTransferData['remitterPhoneNo'] = ($data['beneficiary_data']['sender_information']['mobile'] ?? null); + $bankTransferData['secretKey'] = ($data['beneficiary_data']['reference_no'] ?? null); + $bankTransferData['transReferenceNo'] = ($data['beneficiary_data']['reference_no'] ?? null); + + return $bankTransferData; + } }