Decryption Instructions
Return Decryption Instructions
For data security, Geoswift's interface adopts two decryption methods, one signature method, one signature verification method, and one sorting method: CFCA private key certificate decryption, AES decryption, SHA1 signature, CFCA public key signature verification and key name initial alphabet sorting. The demos in five languages offer a variety of methods
1.Response example:
Header:
{
"merchantId": "G9******1",
"requestId": "1556592332569",
"ContentType" : "application/vnd.geoswift-v3.0+json",
"partnerId":"G9******1",
"encryptKey":"OsYlS3vP1I+m5csUDTSbi801evXvMDsMejLHtqIqbtA5QTdPTjvCE2q4NLFek53Sqo0HxjcHxxgbX5QMEM7y0VMmeUmaLJ7BK/
R3Zc5xtHkWE/AbO8ErG7oXgORZ6JVakeRlDG8sSVTT2Duvy38RsXUQC4Vj4VHgxsLq398vfYQZgf9O8FPfSc+m7g8MGhbbuqMSbOWBH1lDKnCkpl
93XSiWFYHICt7aO/P9avhqlSVJDQg2KpwMld6Mfag5hgz/LTE7DfwyueH6VxIU7rrUkelWZSbO3ULUg7G5okRAFvXJPqfTnkRnQ+qTsK3QOpb98X
laR+tjuYqzTWs+/mUVg=="
}
Body:
PoE9VSppnI/ixnoi7j2/LE0o28NGVdREh6TfZXXPS0Z0xZTs8Iy9FOoL2lDYOOGfoNNb3YRGtQ1y1ggUykbBaMRh8ipd7njD8XgH0suhx0nyKcSuUBG
S6vkCV3rI+0cJyjENozstB7vhAv31LxOoWyhrBCim/9mnyMomi6jEZS0xdQizUu4TcgJsQL2wXCecHdoD6C6PzLS+oSpizoBC6OtMMuD3aPR/tU5zzZE
dhofU/r1Bof8CuWulV4sCNr8X5EsduZs3uu3dnLsLEJNDjqplN7dGYga492DMg5KHqm8yAOGkiLAyR2jEspHz0ICVdB7RSS6RTDrtqAVzEIw2zrAYyOo
oTMbKOPkh720eFjkRc3iBw5TLfry9ZP4/sBtCzeOvcKw5rxGWiV6RIzxmftUFfsZLAA45DAil6+qryNU7cvS6UupxFiJLykkg88HvZRCGXuY4RxMhTT9
xMT4Vt+emA3RkYHr4U5Z+jUmvx1AjzQs6VBEoqmiFtM5vwHVkkF+e6JYV3d8BVeWyWCcYWYR0h9WYOdvnozsLv5NAQZtFYLbON7krN9abvqUa1Nwn+fo
8f+kQpyQAqhhLbqx/r2V9jvaIWXYyUzo0oLIH8eL2WvWBPDXMeipo0c0erwxqL3cGI1jxsAvrpAHPoGxYaeRCdWWIWDG2l6hHwiER/pZKp16k0JSOsJV
apgWvbPFAd/kfoP6SHuRG/dNjgahiS+tK/QUrV+X8D16Q7uixBJ15/Gwg/b2QSC88Dvs9t14UmYqtqVYFZAo4u5O718r4yA20nk8bZCd9Zwv+Hy6IEg1
MYXCvrQEb6SY5JzCymLPOLq07Mi1a5IZ1c9KGWY2gi6UaXFEHGVCLt8ITlHhG5V8NCo8+uMB3l4vFKNAMRC21tc1Z7dFdD29vnU+2sa2oa86JGMDLbe+
MXgVEpWsmFouGhcq1uU+xDSgTKlhm87TW0waUihBX/VnmCPrpV0YQgIN/RZMnWAHEf78cWx4UMXEqi+eqJer27CuKG8L2k6sCImskWdIBvVXRpHrEsDq
ZnzsBDQuQ5f0kPjljqXjhk/vLzYy+READjUwVpKDhwkvPd2JT+j+UZBg+shYia0UNpPc0GdvFCgz0unqZUIhkEf9dHXQBzu+pyIMOFspxvf9O41Otj+Y
/cDCxeqIP+KlxJrxLrxr6g868VpWKffKEMivuMZMo528QV0/xUyivzUBxep4OCq6x8zB6poGRaap50PAvbMPEZ9FDJdrSpMkZcGJ5c9w+ET/Pu2xBEv1
Pk7ykfyv2FPgM0vfh+xvjhLvAa0YPXvM7xbeB35LQ2iA54T/voza91sNhMowoR7ZcS0xK6+bp+VDCJfAK6kP4dwvCg==
2.CFCA private key decryption:
The method is to decrypt the encryptKey encrypted by CFCA public key which has been uploaded to the merchant background and obtain the 16-bit AES key.
The return request header encryptKey:
OsYlS3vP1I+m5csUDTSbi801evXvMDsMejLHtqIqbtA5QTdPTjvCE2q4NLFek53Sqo0HxjcHxxgb X5QMEM7y0VMmeUmaLJ7BK/RR3Zc5xtHkWE/AbO8E
rG7oXgORZ6JVakeRlDG8sSVTT2Duv y38RsXUQC4Vj4VHgxsLq398vfYQZgf9O8FPfSc+m7g8MGhbbuqMSbOWBH1lDKnCkpl93XSi WFYHICt7aO/P9a
vhqlSVJDQg2KpwMld6Mfag5hgz/LTE7DfwyueH6VxIU7rrUkelWZSbO3ULUg 7G5okRAFvXJPqfTnkRnQ+qTsK3QOpb98XlaR+tjuYqzTWs+/mUVg==
The decrypted AES key:
w4deov41ogHO7eFi
3.AES decryption:
This method is used for decrypting the data which have been encrypted by random AES key generated by Geoswift, finally getting the original data.
The returned request body data:
IsMowPkfHQd/x4w7uq3PQpCrCSir9e1B4075S03gQ0svH2LtOcPogsODNGPdrf5YL9AMvslQOj3i
GfS8pkfxxsyYienxAWrwNpu0b49LveB8CvJXBaYOETIbRTYtJ2NaEvJp6vySUo+L0vQZuOb6hxL
ALr8nU/zk4cZiS2KvGtP1tTR1If64Xfut1qNITtQv
After decryption:
{
“redirectUrl”:”https://payment.geoswift.com/receipt/redirect/index/2c9553496a684fe9016a6c53228d7
cf1/2c9553496a684fe9016a6c5322af7cf3”,
”merchantId”:”G9******1”,
”requestId”:”1556595531274”,
”paymentOrderId”:”2c9553496a684fe9016a6c53228d7cf1”,
”status”:”REDIRECT”,
”hmac”:”PhbbgXjh6641/cQ6qfy5Dq10h/2TEH1XJiRLKAmtCDUy/hR0K+KRUvJ3bskYVATF3aDrHPBUz+RZjkWjBUgEd9E/7jrHVjAt/WHKl
wwlId1svUcY3oUvJPuh28fHTC8mZ6uOBFLQ5N Vy+sT6A6m2g5OWJ//LQMU05WO77mIt62C60qqFRpdXkcfGdkJapyatUFKIJB8S5EKOeGkDusj6
wMWSIR+Uhrgrzx/pv6BtUmRv2F1syxRK5BjdLWp/bVUl4bxKjCo/JKW8cRmz2ou/ZbchL3uQxJhjwzJoITEJ1PZmUN5B1yJurtQXR3C62MLCeXFV
NFaOP6qC9VbQ8Ewcxh==”
}
4.Sort by key name initial:
It is used for sorting the original data JSON which has removed hmac from a to z by the initials of key name, then joint the key value, the corresponding key values should be separated by #.
Before sorting:
{
“redirectUrl”:
“https://payment.geoswift.com/receipt/redirect/index/2c9553496a684fe9016a6c53228d7cf1/2c9553496
a684fe9016a6c5322af7cf3”,
“merchantId”: “G9******1”,
“requestId”: “1556595531274”,
“paymentOrderId”: “2c9553496a684fe9016a6c53228d7cf1”,
“status”: “REDIRECT”
}
After sorting:
G9******1#2c9553496a684fe9016a6c53228d7cf1#https://payment.geoswift.com/receipt/redirect/index
/2c9553496a684fe9016a6c53228d7cf1/2c9553496a684fe9016a6c5322af7cf3#1556595531274#RED
IRECT#
5.SHA1 Signature:
Used for preliminary summary of the data. Example:
Before signature:
G9******1#2c9553496a684fe9016a6c53228d7cf1#https://payment.geoswift.com/receipt/redirect/index
/2c9553496a684fe9016a6c53228d7cf1/2c9553496a684fe9016a6c5322af7cf3#1556595531274#RED
IRECT#
After signature:
UmfW5oHZqRwSY5XKdINdfh57FK4=
6. CFCA public key verification:
The merchant uses the CFCA public key in the demo provided by Geoswift(not the public key exported) to verify the hmac data returned by Geoswift to ensure that the data has not been tampered with.