New v2022.1: News about custom payment parameters
Автор: AxelHello Incomedia,
Since these 2 posts:
https://helpcenter.websitex5.com/ru/post/248101
https://helpcenter.websitex5.com/ru/post/248114
3 releases have been available for users. And these 2 bugs for the custom payment are NOT fixed !
I did not see into changelog something about that.
Like explained now some banks ask these values. it is MANDATORY to provide them to the bank to do the payment. but WSX5 does not provides these value to catch them into a custom code.
So you provide to create custom payment but when something is not ready into the software you have no reactivity.. Not urgent probably for you and your dev team... Better to do some new objects
Does it really normal to complain always to have our fixes like asked by the communitiy, before to add some new object not asked by users.
Not happy by this company attitude.
Enjoy!
Axel
Hello. I sent a notification about your request to the company employees, expect an answer from them here in the comments.
Hi Axel,
thank you for getting in touch.
Having verified, I confirm unfortunately there aren't any news regarding the possible implementations of the ideas you reported. Being suggestions regarding some custom payment methods, they unfortunately have less priority over other kind of functions.
However, I will be happy to keep you posted about this matter in case of news.
Thanks! Kind regards.
Автор
it is mandatory to give these information to some bank.
So You said ... "less priority"...
Not agree... It is blocking because we cannot provide custom payment with these functionsnot present into WSX5
So it is a HIGH LEVEL PRIORITY for me (and custome rtoo obvisouly)
fed up with these priority levels defined by we don't know who and why
NOT ACCEPTABLE because 3 releases of software have been done since my alert about that...
And like I know well the dev or C++, I can confirm these fixes are very easy to fix....
max ... 5 lines of code....
it's just a matter of will from Incomedia.... to fix users issues or to provide new objects.. and NO FIXES
Enjoy!
Axel
Hi Axel,
I fully understand your point, but I would like to point out some observations about your requests:
1_ The one about getting access to a variable containing the number of products. This isn't currently possible in the software due to the fact that as of now, all of the payment methods we've implemented plus any custom method that was implemented so far never requested anything like this.
If this is a requirement specific to a single bank, I'm sure you understand why such a singular necessity can't be considered a priority for the entire community if it only benefits one user.
If you have the chance, it would be great if you could share with us here the documentation of this bank's code indicating that such a piece of information is mandatory so that we might investigate this.
2_ About the three-letter code. The issue is about the same as before, it never happened that this was a required mandatory piece of information for any payment method, and considering no one requested anything like this before, it can't be considered a high-priority matter.
Additionally, since you can already get the classic two-letters ISO code, you should be able to convert it on the fly via the custom payment code, thus working around the issue without having to wait for an official update of the software.
I hope you can understand our perspective on this matter, especially as far as the priority goes. I am however available for any further clarification.
Thanks! Kind regards.
Автор
Hello Elisa,
Again not acceptable. If it is asked by the bank to improve security, probably other banks will ask same parameters in the furture.
And it is not because other users does not ask about these options... You provide an option into the software to create and code some custom payment. If something does not works because you do not provide the value, you need to update the software to satisfy our needs... And in this case it is asked by the bank !!!! Not by ME
So what, I loose a customer because your software is not updated for that... If the structure of the software is not done to do that, it is your problem, not mine !
I paid a software which provides an option. If this option is bugged or need an update beacuse asked by external office, your need to have a strong reactivity.
Here the code is from the Crédit Agricole... May be you don't know this one... Just a little french Bank whcih has no importance obviously.
And I can share the PHP code from the bank not by chance, but because I worked with it. I appreciate your level of confiance.
<?php
// --------------- DÉCLARATION DES VARIABLES ---------------
$pbx_site = '1999888'; //variable de test 9999999
$pbx_rang = '32'; //variable de test 95
$pbx_identifiant = '3'; //variable de test 123456789
$pbx_total = '110'; //variable de test 200
// Suppression des points ou virgules dans le montant
$pbx_total = str_replace(",", "", $pbx_total);
$pbx_total = str_replace(".", "", $pbx_total);
$pbx_cmd = 'vAFS-00123'; //variable de test cmd_test1
$pbx_porteur = '***'; //variable de test ***
// Paramétrage de l'url de retour back office site (notification de paiement IPN) :
$pbx_repondre_a = 'http://www.votre-site.extention/page-de-back-office-site'
// Paramétrage des données retournées via l'IPN :
$pbx_retour = 'Mt:M;Ref:R;Auto:A;Erreur:E';
// Paramétrage des urls de redirection navigateur client après paiement :
$pbx_effectue = 'http://www.votre-site.extention/accepte.php'
$pbx_annule = 'http://www.votre-site.extention/annule.php'
$pbx_refuse = 'http://www.votre-site.extention/refuse.php'
// On récupère la date au format ISO-8601 :
$dateTime = date("c");
// Nombre de produit envoyé dans PBX_SHOPPINGCART :
$pbx_nb_produit = '5'; //variable de test 5
// Construction de PBX_SHOPPINGCART :
$pbx_shoppingcart = "<?xml version=\"1.0\" encoding=\"utf-8\"?><shoppingcart><total><totalQuantity>".$pbx_nb_produit."</totalQuantity></total></shoppingcart>";
// Valeurs envoyées dans PBX_BILLING :
$pbx_prenom_fact = 'prenom de l utilisateur de facturation'; //variable de test Jean-Marie
$pbx_nom_fact = 'nom de l utilisateur de facturation'; //variable de test Thomson
$pbx_adresse1_fact = 'ligne1 de l adresse de facturation'; //variable de test 1 rue de Paris
$pbx_adresse2_fact = 'ligne2 de l adresse de facturation'; //variable de test <vide>
$pbx_zipcode_fact = 'code postal de l adresse de facturation'; //variable de test 75001
$pbx_city_fact = 'ville de l adresse de facturation'; //variable de test Paris
$pbx_country_fact = 'code pays iso-3166-1 numérique de l adresse de facturation'; //variable de test 250 (pour la France)
// Construction de PBX_BILLING :
$pbx_billing = "<?xml version=\"1.0\" encoding=\"utf-8\"?><Billing><Address><FirstName>".$pbx_prenom_fact."</FirstName>".
"<LastName>".$pbx_nom_fact."</LastName><Address1>".$pbx_adresse1_fact."</Address1>".
"<Address2>".$pbx_adresse2_fact."</Address2><ZipCode>".$pbx_zipcode_fact."</ZipCode>".
"<City>".$pbx_city_fact."</City><CountryCode>".$pbx_country_fact."</CountryCode>".
"</Address></Billing>";
// --------------- SÉLÉCTION DE L'ENVIRRONEMENT ---------------
// Recette (paiements de test) :
$urletrans ="https://recette-tpeweb.e-transactions.fr/php/";
// Production (paiements réels) :
// URL principale :
// $urletrans ="https://tpeweb.e-transactions.fr/php/";
// URL secondaire :
// $urletrans ="https://tpeweb1.e-transactions.fr/php/";
// --------------- RÉCUPÉRATION DE LA CLÉ HMAC ---------------
// Connection à la base de données
// mysql_connect...
// On récupère la clé secrète HMAC (stockée dans une base de données par exemple) et que l’on renseigne dans la variable $hmackey;
// $hmackey = '4642EDBBDFF9790734E673A9974FC9DD4EF40AA2929925C40B3A95170FF5A578E7D2579D6074E28A78BD07D633C0E72A378AD83D4428B0F3741102B69AD1DBB0';
$hmackey = '0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF';
// --------------- TRAITEMENT DES VARIABLES ---------------
// On crée la chaîne à hacher sans URLencodage
$msg = "PBX_SITE=".$pbx_site.
"&PBX_RANG=".$pbx_rang.
"&PBX_IDENTIFIANT=".$pbx_identifiant.
"&PBX_TOTAL=".$pbx_total.
"&PBX_DEVISE=978".
"&PBX_CMD=".$pbx_cmd.
"&PBX_PORTEUR=".$pbx_porteur.
"&PBX_REPONDRE_A=".$pbx_repondre_a.
"&PBX_RETOUR=".$pbx_retour.
"&PBX_EFFECTUE=".$pbx_effectue.
"&PBX_ANNULE=".$pbx_annule.
"&PBX_REFUSE=".$pbx_refuse.
"&PBX_HASH=SHA512".
"&PBX_TIME=".$dateTime.
"&PBX_SHOPPINGCART=".$pbx_shoppingcart.
"&PBX_BILLING=".$pbx_billing;
// echo $msg;
// Si la clé est en ASCII, On la transforme en binaire
$binKey = pack("H*", $hmackey);
// On calcule l’empreinte (à renseigner dans le paramètre PBX_HMAC) grâce à la fonction hash_hmac et //
// la clé binaire
// On envoi via la variable PBX_HASH l'algorithme de hachage qui a été utilisé (SHA512 dans ce cas)
// Pour afficher la liste des algorithmes disponibles sur votre environnement, décommentez la ligne //
// suivante
// print_r(hash_algos());
$hmac = strtoupper(hash_hmac('sha512', $msg, $binKey));
// La chaîne sera envoyée en majuscule, d'où l'utilisation de strtoupper()
// On crée le formulaire à envoyer
// ATTENTION : l'ordre des champs dans le formulaire est extrêmement important, il doit
// correspondre exactement à l'ordre des champs dans la chaîne hachée.
?>
<!------------------ ENVOI DES INFORMATIONS A e-Transactions (Formulaire) ------------------>
<form method="POST" action="<?php echo $urletrans; ?>">
<input type="hidden" name="PBX_SITE" value="<?php echo $pbx_site; ?>">
<input type="hidden" name="PBX_RANG" value="<?php echo $pbx_rang; ?>">
<input type="hidden" name="PBX_IDENTIFIANT" value="<?php echo $pbx_identifiant; ?>">
<input type="hidden" name="PBX_TOTAL" value="<?php echo $pbx_total; ?>">
<input type="hidden" name="PBX_DEVISE" value="978">
<input type="hidden" name="PBX_CMD" value="<?php echo $pbx_cmd; ?>">
<input type="hidden" name="PBX_PORTEUR" value="<?php echo $pbx_porteur; ?>">
<input type="hidden" name="PBX_REPONDRE_A" value="<?php echo $pbx_repondre_a; ?>">
<input type="hidden" name="PBX_RETOUR" value="<?php echo $pbx_retour; ?>">
<input type="hidden" name="PBX_EFFECTUE" value="<?php echo $pbx_effectue; ?>">
<input type="hidden" name="PBX_ANNULE" value="<?php echo $pbx_annule; ?>">
<input type="hidden" name="PBX_REFUSE" value="<?php echo $pbx_refuse; ?>">
<input type="hidden" name="PBX_HASH" value="SHA512">
<input type="hidden" name="PBX_TIME" value="<?php echo $dateTime; ?>">
<input type="hidden" name="PBX_SHOPPINGCART" value="<?php echo htmlspecialchars($pbx_shoppingcart); ?>">
<input type="hidden" name="PBX_BILLING" value="<?php echo htmlspecialchars($pbx_billing); ?>">
<input type="hidden" name="PBX_HMAC" value="<?php echo $hmac; ?>">
<input type="submit" value="Envoyer">
</form>
As you can see here these values are really coded into their PHP code.
And for the 3 letters for the country, other users have pushed my post to have it. And this request is actually more frequent. I have an other bank which asks same for the country.
Here for the GoPay solution, from their documentation.
Hope to have some effort and news from Incomedia... and not always evasive replies because this need is not asked by many users.
And it not only benefits one user, but many into the future probably if other banks move to these.
And I repeat, if I cannot develop some custom payment because the software does not provide the information, so YOU NEED TO UPDAE THE SOFTWARE.
UPDATE PROTECTION if for that.
In dev/IT nothing is impossible. Just a question of voluntee.
Enjoy!
Axel
Автор
Either done by Incomedia or moderator,
But to change the title of the postwithout ask me is not very fairplay ! Just because my previous title was not good for Incomedia image...
The previous title was more explicit:
New v20221.1: 3 releases and 2 bugs not fixed for custom payment.
You do not assume and do not like to be told the truth
I continue to wait these fixes, important now to follow bank regulation.
Enjoy!
Axel
Hi Axel!
We got your e-mail, but we get back to you here, so to keep the whole discussion about the subject on a single post and make it as clear as possible.
As we mentioned earlier, the functions you are referring to are pretty peculiar, and, as far as we know, no other bank specifically requires the number of products and the country code to be reported with 3 instead of 2 characters.
An immediate implementation of such modification within WebSite X5 isn't unfortunately possible, you can however obtain the information you ask for on your own. If you want to, we can try to suggest you how to get the necessary information for you to autonomously create a custom code which you can use to solve your need. This applies to both the number of products ordered, as well as for the 3-character country code. Given your technical skills, we are sure you will be able to fulfill your necessity in this way.
Please let me know. Thanks!
Автор
and what is your suggestion for your workaround !
Hi Axel!
Thank you for getting back to me.
1. Number of purchased products
You can obtain the information about the number of purchased items directly from the order stored on the database. To find the correct order, you can use the order number, which is displayed before the payment, using the [ORDER_NO] parameter.
With this system, you can access not only the number of ordered items, but also to all the other details about the order.
2. Country Code
When paying, the parameter [COUNTRYCODE] for the code referred to the country is generated. Starting from the Country value, you can elaborate it so to apply the necessary formatting: if for instance the country code parameter for France is FR, you could use a function (for example in javaSript) to turn FR into FRA before it is reported to the payment provider.
I hope this help. Kind regards.
Автор
Hello Elisa,
Thank you.
My remarks are here.
1. Number of purchased products
After investigation it's seems necessary to use the cart_products table to get the quantity for a specific order ID.
So during the custom payment, I have nothing coded to be logged into the Database to get some informations, because normally values are given by WSX5. And I don't want add a database connection to not disturb payment coding for any other external reason.
So to enlarge the custom payment code to get some informatiosn from the database in your place, is not the good way fo custom payment development.
Nothing is impossible but not the role of this kind of code.
If I can do that. So YOU can do that too into the software...
You just need to add this line into the WSX5 code
['NUM_PRODUCT'] = select SUM(quantity) AS quantity from w5_96162737_cart_products where order_id = '181201-HC14'
to provide a new variable like ['NUM_PRODUCT']
And you said that it is not possible because the software structure is not ready for that !!!!
JUST ONE LINE INTO THE CODE.
Not complicated I believe.
2. Country Code
Just a function to turn FR to FRA is not too simple. it is necessary to have an area for the correspondance.
So again a good code to do that is the following.
$iso2_to_iso3 = json_decode('{"BD": "BGD", "BE": "BEL", "BF": "BFA", "BG": "BGR", "BA": "BIH", "BB": "BRB", "WF": "WLF", "BL": "BLM", "BM": "BMU", "BN": "BRN", "BO": "BOL", "BH": "BHR", "BI": "BDI", "BJ": "BEN", "BT": "BTN", "JM": "JAM", "BV": "BVT", "BW": "BWA", "WS": "WSM", "BQ": "BES", "BR": "BRA", "BS": "BHS", "JE": "JEY", "BY": "BLR", "BZ": "BLZ", "RU": "RUS", "RW": "RWA", "RS": "SRB", "TL": "TLS", "RE": "REU", "TM": "TKM", "TJ": "TJK", "RO": "ROU", "TK": "TKL", "GW": "GNB", "GU": "GUM", "GT": "GTM", "GS": "SGS", "GR": "GRC", "GQ": "GNQ", "GP": "GLP", "JP": "JPN", "GY": "GUY", "GG": "GGY", "GF": "GUF", "GE": "GEO", "GD": "GRD", "GB": "GBR", "GA": "GAB", "SV": "SLV", "GN": "GIN", "GM": "GMB", "GL": "GRL", "GI": "GIB", "GH": "GHA", "OM": "OMN", "TN": "TUN", "JO": "JOR", "HR": "HRV", "HT": "HTI", "HU": "HUN", "HK": "HKG", "HN": "HND", "HM": "HMD", "VE": "VEN", "PR": "PRI", "PS": "PSE", "PW": "PLW", "PT": "PRT", "SJ": "SJM", "PY": "PRY", "IQ": "IRQ", "PA": "PAN", "PF": "PYF", "PG": "PNG", "PE": "PER", "PK": "PAK", "PH": "PHL", "PN": "PCN", "PL": "POL", "PM": "SPM", "ZM": "ZMB", "EH": "ESH", "EE": "EST", "EG": "EGY", "ZA": "ZAF", "EC": "ECU", "IT": "ITA", "VN": "VNM", "SB": "SLB", "ET": "ETH", "SO": "SOM", "ZW": "ZWE", "SA": "SAU", "ES": "ESP", "ER": "ERI", "ME": "MNE", "MD": "MDA", "MG": "MDG", "MF": "MAF", "MA": "MAR", "MC": "MCO", "UZ": "UZB", "MM": "MMR", "ML": "MLI", "MO": "MAC", "MN": "MNG", "MH": "MHL", "MK": "MKD", "MU": "MUS", "MT": "MLT", "MW": "MWI", "MV": "MDV", "MQ": "MTQ", "MP": "MNP", "MS": "MSR", "MR": "MRT", "IM": "IMN", "UG": "UGA", "TZ": "TZA", "MY": "MYS", "MX": "MEX", "IL": "ISR", "FR": "FRA", "IO": "IOT", "SH": "SHN", "FI": "FIN", "FJ": "FJI", "FK": "FLK", "FM": "FSM", "FO": "FRO", "NI": "NIC", "NL": "NLD", "NO": "NOR", "NA": "NAM", "VU": "VUT", "NC": "NCL", "NE": "NER", "NF": "NFK", "NG": "NGA", "NZ": "NZL", "NP": "NPL", "NR": "NRU", "NU": "NIU", "CK": "COK", "XK": "XKX", "CI": "CIV", "CH": "CHE", "CO": "COL", "CN": "CHN", "CM": "CMR", "CL": "CHL", "CC": "CCK", "CA": "CAN", "CG": "COG", "CF": "CAF", "CD": "COD", "CZ": "CZE", "CY": "CYP", "CX": "CXR", "CR": "CRI", "CW": "CUW", "CV": "CPV", "CU": "CUB", "SZ": "SWZ", "SY": "SYR", "SX": "SXM", "KG": "KGZ", "KE": "KEN", "SS": "SSD", "SR": "SUR", "KI": "KIR", "KH": "KHM", "KN": "KNA", "KM": "COM", "ST": "STP", "SK": "SVK", "KR": "KOR", "SI": "SVN", "KP": "PRK", "KW": "KWT", "SN": "SEN", "SM": "SMR", "SL": "SLE", "SC": "SYC", "KZ": "KAZ", "KY": "CYM", "SG": "SGP", "SE": "SWE", "SD": "SDN", "DO": "DOM", "DM": "DMA", "DJ": "DJI", "DK": "DNK", "VG": "VGB", "DE": "DEU", "YE": "YEM", "DZ": "DZA", "US": "USA", "UY": "URY", "YT": "MYT", "UM": "UMI", "LB": "LBN", "LC": "LCA", "LA": "LAO", "TV": "TUV", "TW": "TWN", "TT": "TTO", "TR": "TUR", "LK": "LKA", "LI": "LIE", "LV": "LVA", "TO": "TON", "LT": "LTU", "LU": "LUX", "LR": "LBR", "LS": "LSO", "TH": "THA", "TF": "ATF", "TG": "TGO", "TD": "TCD", "TC": "TCA", "LY": "LBY", "VA": "VAT", "VC": "VCT", "AE": "ARE", "AD": "AND", "AG": "ATG", "AF": "AFG", "AI": "AIA", "VI": "VIR", "IS": "ISL", "IR": "IRN", "AM": "ARM", "AL": "ALB", "AO": "AGO", "AQ": "ATA", "AS": "ASM", "AR": "ARG", "AU": "AUS", "AT": "AUT", "AW": "ABW", "IN": "IND", "AX": "ALA", "AZ": "AZE", "IE": "IRL", "ID": "IDN", "UA": "UKR", "QA": "QAT", "MZ": "MOZ"}',true);
// by example
//
$WSX5_ISO2_Country_code = "FR";
['ISO3_COUNTRYCODE'] = result_iso3 = $iso2_to_iso3 [$WSX5_ISO2_Country_code];
to provide a new variable like ['ISO3_COUNTRYCODE']
So here juste one an array and 2 PHP lines...
If I can do that. So YOU can do that too into the software...
Again, Not complicated I believe.
So here I have done 90% of your dev team.
Now they have the code to add it into WSX5.
AGAIN NOT POSSIBLE TO FIX WSX5 !!!!!!
Hi Axel,
as we said, we aren't planning to embed this modification within the software for the reasons we mentioned above. Moreover, you have to consider the fact that adding this custom code to your project is surely easier and quicker for you than introducing such a modification within the software itself. However, you can now simply use this custom code to solve your both necessities.
Thanks! Kind regards.
Автор
Hello Elisa,
Are you really serious when you wrote this !!!!
Does Incomedia is a software editor or NOT ???
You ask me to modify my code because you have decided to stop this feature with your dev team.
And I give the complete ode to implement it into teh software on a silver plate.
My role is not to do a development in parallel like workaround to arrange you.
But to add x lines into your code to provide a portoflio object, You have the knowledge !!!! And nobody asked for this objet. So customer needs seems not a real objective for Incomedia.
The role of software company is to provide a software which is near of the market requirement. Here the customer bank asks to receive some information from the cart/buyer and you refuse to configure the software to do that, because I am alone to ask it !!!
If other users have no knolewdge to develop custom payment, I can undertsand it. But do not provide a fix because I am alone to ask it, I am not agree.
AGAIN I PAID UDPATE PROTECTION TO HAVE FIXES WHEN NECESSARY and not always new features for your pleasure. Fixes must be the priority before to provide features.
I don't ask for a gadget..
Please share this one with your top management team to get a favorable response.
In other case I will continue to contact them by email....BECAUSE I AM A CUSTOMER AND YOU (THE SOFTWARE) DO NOT PROVIDE INFORMATION ASKED BY A BANK TO DEVELOP CUSTOM PAYMENT WHICH IS AN OPTION WITH THE SOFTWARE.
IF I BOUGHT A PRO VERSION IS TO HAVE PRO INFORMATIONS
Hope to read you asap.
Enjoy!
Axel
Hi Axel,
I can fully see your point but, as we already stated before, this modification is pretty peculiar and specific. Usually, banks don't require the details you were asking for, and as for now, no other users have asked for this modification to be implemented in the software. I must then confirm again that, while you can already solve both necessities by implementing the code on your project, we aren't planning on introducing such modification in the software.
If, in the future, this need becomes common among customers, we will of course be happy to reconsider this.
Thanks! Kind regards.
Please see for yourself that the application has flaws and that more and more customers are looking for online purchases, not to mention the CMS system, database management and so on. Please fix the current bugs and bugs that my old and loyal customers warn about because you will lose customers so ...
Автор
Hello guys,
For a full tranparence, I give you some informations in background
So these evolutions will not be included into the software because the company does not want to add them.
I repeat these 2 needs are asked by 2 banks to authorize a custom payment with them... It is not for me or FROM me... but just a 2 new features asked by banks
But for Incomedia it is my role to do that into my custom payment !
They don't listen their customers and needs and they do that they want. HA they have time to publish new (bugged) object nevers asked by anyone... but no time to fix our needs.
FYI, Here my last email with their CEO !
It's a shame to work like that !
Enjoy!
Axel
I don't believe my eyes... Great app strive simplicity with so much potential on the market... LISTEN TO AXEL... OLD CUSTOMERS THAT ARE LOYAL AND PAY THE LICENCE WITH NO PROBLEM... BE COOL, I KNOW THAT YOU MUST PAY THE BILS...
Автор
Thank you X5...
hard to be heard as a customer by Incomedia.
Автор
@X5, others
Like you can see. more 500 views and only you to post a message
Everything is said !
Many voyeurs only like on social media !!!
Enjoy!
Axel