Closed gauravharshranosys closed 2 years ago
Hello @gauravharshranosys thanks for opening this issue. I see you changed the title, what exactly do you mean with "Payment should be done as it gets complete with postal code"? Is the payment requests not including all address fields?
Please share the relevant request from info.log in order to verify.
Hello @acampos1916 , Thanks for checking. I have made the zip code optional attribute in Magento, so my billing address contains a empty zip code so in that case the payment is failing, whereas the other store where zipcode is mandatory, the payment is working fine. Is Adyen doesn't handle empty zip code or from any configuration it is possible ?
Thanks
Hi @gauravharshranosys,
I have looked into this issue and have not been able to reproduce it (in v8), it should be possible to make payments without a zipcode. Is this still an active problem for you? Updating to v7 or higher might resolve your problem. If you are determined to stay on your current version, could you provide me with the logs from adyen/info.log of the relevant payment.
Cheers, Titus
I'm closing this. Feel free to reopen if the problem persists.
Hello @tnaber
I reproduce this issue with 8.21.0
, in my case zipcode is optional, so zipcode can be empty in shipping and billing addresses.
For billing and delivery addresses, zipcode is empty :(
Full request log for call /v70/payments
:
{
"merchantAccount" : "****",
"shopperReference" : "***********************************************",
"shopperEmail" : "************************************",
"telephoneNumber" : "************",
"shopperName" : {
"firstName" : "****",
"lastName" : "****"
},
"countryCode" : "HK",
"shopperLocale" : "en_GB",
"shopperIP" : "***************************************",
"billingAddress" : {
"street" : "**************",
"postalCode" : "",
"city" : "*******************",
"houseNumberOrName" : "****",
"country" : "**",
"stateOrProvince" : "*****"
},
"deliveryAddress" : {
"street" : "**************",
"postalCode" : "",
"city" : "*******************",
"houseNumberOrName" : "****",
"country" : "**",
"stateOrProvince" : "*****"
},
"amount" : {
"currency" : "HKD",
"value" : 15390000
},
"reference" : "49000100126",
"fraudOffset" : "0",
"browserInfo" : {
"userAgent" : "Mozilla\/5.0 (X11; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/114.0.0.0 Safari\/537.36",
"acceptHeader" : "\/"
},
"shopperInteraction" : "Ecommerce",
"paymentMethod" : {
"type" : "*********",
"checkoutAttemptId" : "*****************************************************************************************************************"
},
"riskData" : {
"clientData" : "eyJ2ZXJzaW9uIjoiMS4wLjAiLCJkZXZpY2VGaW5nZXJwcmludCI6IkRwcXdVNHpFZE4wMDUwMDAwMDAwMDAwMDAwS1piSVFqNmt6czAwODkxNDY3NzZjVkI5NGlLekJHNW5xajJHdUZqZkJpeDdSWDNhejgwMDJRaExsOEhjR3pOMDAwMDBUSXZqWDAwMDAwRGt1Ym9qeEI0VmZDd3E3ZkhJa2w6NDAiLCJwZXJzaXN0ZW50Q29va2llIjpbXSwiY29tcG9uZW50cyI6eyJ1c2VyQWdlbnQiOiJiOWQ3YzFhN2UzNjliODJmMjI1MWE0OTVlN2MwZGM1OSIsIndlYmRyaXZlciI6MCwibGFuZ3VhZ2UiOiJmci1GUiIsImNvbG9yRGVwdGgiOjI0LCJkZXZpY2VNZW1vcnkiOjgsInBpeGVsUmF0aW8iOjEsImhhcmR3YXJlQ29uY3VycmVuY3kiOjIwLCJzY3JlZW5XaWR0aCI6MjU2MCwic2NyZWVuSGVpZ2h0IjoxNDQwLCJhdmFpbGFibGVTY3JlZW5XaWR0aCI6MjU2MCwiYXZhaWxhYmxlU2NyZWVuSGVpZ2h0IjoxNDQwLCJ0aW1lem9uZU9mZnNldCI6LTEyMCwidGltZXpvbmUiOiJFdXJvcGUvUGFyaXMiLCJzZXNzaW9uU3RvcmFnZSI6MSwibG9jYWxTdG9yYWdlIjoxLCJpbmRleGVkRGIiOjEsImFkZEJlaGF2aW9yIjowLCJvcGVuRGF0YWJhc2UiOjEsInBsYXRmb3JtIjoiTGludXggeDg2XzY0IiwicGx1Z2lucyI6IjI5Y2Y3MWUzZDgxZDc0ZDQzYTViMGViNzk0MDViYTg3IiwiY2FudmFzIjoiMGNjOTZlNmIzZWMyZTEyNmIyNGZiMWEyZGEzMTk1NzciLCJ3ZWJnbCI6ImI1OTQ4YTg3ZmNlMTI2YWQyM2FjMjg3MDRlMDBiOWE4Iiwid2ViZ2xWZW5kb3JBbmRSZW5kZXJlciI6Ikdvb2dsZSBJbmMuIChJbnRlbCl+QU5HTEUgKEludGVsLCBNZXNhIEludGVsKFIpIEdyYXBoaWNzIChBREwgR1QyKSwgT3BlbkdMIDQuNikiLCJhZEJsb2NrIjowLCJoYXNMaWVkTGFuZ3VhZ2VzIjowLCJoYXNMaWVkUmVzb2x1dGlvbiI6MCwiaGFzTGllZE9zIjowLCJoYXNMaWVkQnJvd3NlciI6MCwiZm9udHMiOiI5MGU2NDRlZWJmODkwODQyNDcyNWU2NWI0MzYwYzYzYSIsImF1ZGlvIjoiOTAyZjBmZTk4NzE5Yjc3OWVhMzdmMjc1MjhkZmIwYWEiLCJlbnVtZXJhdGVEZXZpY2VzIjoiNWYzZmRhZjQ3NDNlYWE3MDdjYTZiN2RhNjU2MDM4OTIifX0="
},
"additionalData" : {
"allow3DS2" : "true"
},
"returnUrl" : "https:\/\/my-site.com\/en-hk\/adyen\/process\/result?merchantReference=49000100126",
"channel" : "web",
"origin" : "https:\/\/my-site.com/en-hk\/",
"applicationInfo" : {
"adyenLibrary" : {
"name" : "adyen-php-api-library",
"version" : "15.3.0"
},
"externalPlatform" : {
"version" : "2.4.5-p5",
"name" : "Magento",
"integrator" : "Adyen"
},
"merchantApplication" : {
"version" : "8.21.0",
"name" : "adyen-magento2"
}
}
}
The request response :
{
"resultCode" : "RedirectShopper",
"action" : {
"paymentMethodType" : "alipay_hk",
"url" : "https:\/\/test.adyen.com\/hpp\/checkout.shtml?u=skipDetails&p=eJytVltzosoW-jXJyy4taLzEBx9UkGACRkSQfplqoJWWbmAAL-Dr94KYmTnJTM2pU6eiBNe9v2*t7iacZ1dF3aJpVZzpI8lzzkJSsSw10kPWp7eKFinhb5xUh6wQRlrRY0GqrJjOopqmf3WwiKBTkxxpWmV-NXZpUYJuivqD-rCXD784cBYUpKi7oKTN38vjvEdy1rtr-uTxEVke9pW*9MVK0CKMSVrNfsp-ySHey0f-jdtHoqc*kiFRwDhn6XEWRQUty37Iqnq6gGAF4f*QNPrHo2ULwRe77Aw29fT55bMmzs4ltc4ioMW66GpEw8ngs1WelRXhiyyiU4w-K0FV0XXxVmQXloYUkvS*5imrgtJquiUiL7P0n23385ORU*eQ-hEATqMuF*EsJ-W3OHkMnYKENCcFrHUqST15PJEHozGiBzIejYdP0YAqKFJINJIVORrTHhpH4WgSHBCZDJ5oEPUk*TGMaZhk56pf-T*CvUPa1QnLDc8FhAs-fquPEeXsQov6r1R9MfzJ1WfVH8j6bPZ7Qr5a-Y6RT1Z3Sn40ZthVN10LeiQQ80P*McbQqf2qdVk8a4uX9c75pmuWZhuL31pe7r09ln6obXqgLY50OphIkiTDB41*0VbnIlVJRabO82T**vzm7gfzV*vl6WeJW3acesV6vnhBPKkf0HL2gOYi3KZrccXJCwiImr7YIKTe9zdG8Os5F*rsQVEfs8OhBESkR2g6AUzNRLdYeai0tUiPBc0pqXpZ2quYoNBI73sc4LSzX6dxVeXlgwLplvD56LUyzvKcFr0K2O534w8Ei68GIClpcWEhLeH17b0AIwVbmA*bRqygYQWaiwwPnoWwyb3bmLSKs*hBWX7iCBZ0Z*kBjYoOOKgSpO91omFb6bCtFR7QMUfI089ajyupoLi2EUU-Tjo9bFr3t24J3VteZFBs2b0DBGdetUGXX5hspeovbEI5v04zVPS-jmDByiSCZuiHnEGkri9ovUJ4v2qINzkbp4yZ28H19TRjr4tVgvc495GrE2*Ygs01FPwcLYyRkdjXcB*51nO*xNrgaqo7*M7*47uVc7Z1l98tUY3CZnZdq8nNUn3FavDJTYyhpfNXmqyeLW94I6fVc7TD33GyyqkabT3ViunpCHFWNtFu5VqLT7aSr99jz3fbPf7u3fPYeiX7YvKdaobkCqxGiqbgJF4RdB1ZareOa7e*vSVhbyht0ORCEOfGKQ-22yvz0aQK9cm51YW1MQI85BC59caLeJBu2Jqt2NrbKH6zjC20a6wTZ2t1JcyTIZueJq0dl1vIvGLdlNdbozTSiPvCrske85AZI3NxZYG*PGPFjTHatfFEyGR9x8BWWJdAn9S27l4j-cjWJ0P6BXcLe-IlTBOQHyHuPKe6W*7EUiLeE8g08I-jUNiKv19xWNfZV9w6FC78b32MK8RqfGXFYW174tkSAe7M0w61NYXIqrHnnre6m2MUS8A98LNpfeJILHOoGep2nT-5*3scE*8W**LGd3*OBbXKnArAdzcROLV42z*vjla3MSKdV3ifXwLR4bKM9qtLqO8uO30J*Jktdw3eW11v7hT7EoplirdQw7bFdHLyvZsTAX4*cNXmBPs8EDYHnBJbN*4YLROsrTjRlwji1GDX1gV53LOtLyXfW8Vhy0trm85Lf2*LQFlV7Sw4OvT7-nik6hHtG18yGOCm32SM*LntFeNkDH3kK6a3a7B6vGE1lLC6aXzHZabuMqtJJFN1me8cldbXR8szYNt0c6Zbp7WDuSWMBntmjQETeK8tHTPoqxrrWmM6iWw1YYuDgr1VGrSzJwx57WwGbUwsLG46BvK9TW2i5ck8HRVTtTnMCPSsNmhzRshlGN084DCBdc0Bn237DjPR9aeRRJcARSXezleBMM-GIl4Fqc2DBYctf7MbPjva7viiARLQfa*LuQWMxMb998vSyA0tqv39PCOe1YD33NauR1ve1C-b69FR5jxIItNQN2eLJe1KYmCjDJBV3JnI-L1lEs9NnB9T4jafdTvhNgG6ydAxl*A*VcBoAwxxrE2*2G-S1SVSrB8TiKEDo2cTuswYmjr0K6AEiArYlWBn2tSWGtaWB3LPkMzGv-oN-LXTLJYyhpwtY2tnVuPTXGAnGViNNvRPobL23NhsItgNQtk8xQkWxtX3tHadsHu40N0wTbqr3Se6Y97y-AYLO8anjWKpFgd7YC06*Q5mFrJjq50w1RysHYMd9lJ70JZwbrR3W7jfRe21CElI6clSDw0daQxHqDKBx3CAH**HY--AirLqLjwOnKM-xJz8TlpRTvM4S*83pSnw-jREygCNB6OR9GGmCcL4NGKCVQXrB3ASU7iM0oeBVNADp1UvYkcGl972GPzwaS8vcHK1l5epBvL2rKMfytf2UKZTmn7T5x*y315nDgShcahIPToeDHqDMRn3JlSmvUgJD09jEshoSD4C3O9fZcLS7maZn4P*BfX3zn6rqOPR5Fl9ehk-oX7V0-LM289lu3hdTzaRp4sBOcTj0jzMyNuLWs2uWTpc8jzz-wW24brq",
"method" : "GET",
"type" : "redirect"
}
}
Hi @gauravharshranosys How do you fix this issue ?
Fix: Send N/A
value for postalCode
field as street
or city
.
Create plugin or composer patch and change this variable :
$requestDeliveryDefaults = [
"street" => "N/A",
"postalCode" => ''N/A",
"city" => "N/A",
"houseNumberOrName" => '',
"country" => "ZZ"
];
<?php
declare(strict_types=1);
namespace Project\Adyen\Plugin\Payment\Gateway\Request;
/**
* Class AddressDataBuilder
*
* @package Project\Adyen\Plugin\Payment\Gateway\Request
*/
class AddressDataBuilder
{
/**
* @param \Adyen\Payment\Gateway\Request\AddressDataBuilder $subject
* @param array $request
* @param array $buildSubject
* @return array
*/
public function afterBuild(
\Adyen\Payment\Gateway\Request\AddressDataBuilder $subject,
array $request,
array $buildSubject
): array {
$paymentDataObject = \Magento\Payment\Gateway\Helper\SubjectReader::readPayment($buildSubject);
/** @var \Magento\Sales\Model\Order\Payment $payment */
$payment = $paymentDataObject->getPayment();
if ($payment->getMethod() !== \Adyen\Payment\Model\Ui\AdyenHppConfigProvider::CODE) {
return $request;
}
$adyenBrand = $payment->getAdditionalInformation('brand_code');
if ($adyenBrand !== 'alipay_hk') {
return $request;
}
/**
* @see https://github.com/Adyen/adyen-magento2/issues/1096
*/
$request['body'] = $this->filter($request['body'] ?? []);
return $request;
}
/**
* @param array $request
* @return array
*/
private function filter(array $request): array
{
$this->filterAddress($request, 'billingAddress');
$this->filterAddress($request, 'deliveryAddress');
return $request;
}
/**
* @param array $request
* @param string $rootPath
* @return void
*/
private function filterAddress(array &$request, string $rootPath): void
{
$path = $rootPath . '.postalCode';
$zipCode = \Illuminate\Support\Arr::get($request, $path);
if ($zipCode === null || $zipCode === '') {
\Illuminate\Support\Arr::set($request, $path, 'N/A');
}
}
}
When doing payment with HPP, getting error below :
Invalid Request Unfortunately we were unable to process this request
Error: Billing address is incomplete
(Note: these error messages are not visible on the live platform)
To Reproduce Steps to reproduce the behavior:
Expected behavior Payment should be done as it gets complete with postal code
Magento version [e.g. 2.4.1]
Plugin version [e.g. 6.6.8]
Screenshots