接口加密加签步骤
加密流程
{
"merchant_order_id": "20231204204337871860ET82009",
"merchant_user_key": "2312312addsadsaasdsadsadadcdsacadsas",
"country_code": "GBR",
"currency_code": "GBP",
"tuition": 130,
"merchant_service_fee": 130,
"order_tuition": 0,
"name_ch": "\u6d4b\u8bd5\u6d4b\u8bd5\u6d4b\u8bd5",
"student_id_number": "130633199302285495",
"student_address": "\u7684\u6492\u6240\u591a\u591a\u6492\u5927\u6240\u5927",
"apartment_name": "\u5b9e\u65bd\u5927\u5931\u8d25222\u8fc7\u8d1f\u8377222\u4e3a",
"student_email": "162455379cds7@qq.com",
"student_mobile": "19935437csd743",
"wechat_number": "199354377csd43",
"city_name_en": "Belfast",
"city_name_ch": "\u4f26\u6566",
"school_name": "University of London",
"fee_type_list": [{
"fee_type": 7,
"fee_type_desc": "\u623f\u79df"
}],
"notify_url": "xxxxxxx",
"back_jump_url": ""
}
1.sensitive_data没有值则是空字符串不需要加密, 如果有值需要加密处理,下面是加密规则
先生成aes密钥KeyStr(随机值生成16位字节),偏移量IVStr(使用KeyStr)两个参数,使用这两个参数对数据加密后生成密文Cipher, 将Cipher转成base64编码,CipherBase64填充到sensitive_data,
1.2对keystr使用公钥(易思汇的公钥)进行RSA(PKCS V1.5 OEAP)加SHA256加密,得到Cipher_keystr
1.3将Cipher_keystr转成base64编码得到base64_keystr,最后把base64_keystr填充到aeskey
填充后的数据:
{
"serial_number": "20231204204337871860ET82009",
"merchant_number": "ET82009",
"sub_merchant_number": "ET82009S001",
"server_type": "add_special_rent_order",
"callback_process": 1,
"version": "2.0.0",
"data": "{}",
"return_info": "",
"extend_info": "",
"sensitive_data": "gWyCgwZUInUOei+1mfWgbD1FKs3jFH3qzQzVGu/UKp3vNNHVB/fHh4rwkmPLvj/WeZUVF6Wml/0CHrE4zHWMFh2ERZVSIZjgU5Mbpv0Yq3CMiMiu2Nc7nDxqmowjhROQvmc+sUqtw/ODUPLaB8xj4QeAT/iewwxnvnM/VKwU3m3DdeAgoiuC0bn4Enm5ZXe7znNfrwrAhVhluDf7swB9wBSG4ZcybZ20GKVJmjlL5zUyD19s38P0EypNsXEeP3jfNAuiq1AN8IOrlhSXO+M7xcfWN5mRMnCdOmids1enIHB6BcOE/B+uJ8414I08U1YEZS/7L5jHOF/iNQ3CU5KnIo2vy+bSFL41EBhKNxj1p6W083nBf9XLWWJwVoS3EjkeOmfpAKFqc8HYqY6DrPTIHJLfWfGvGJf046JtAod8+aJWFQ+KB4il/2XVgO1Sdt4ZLqgMNNza5fRscqyfuAuXkBg+UiuK/0gI6vjP3lpZKdy3/LYLg0NdyigOgSABYAcYRdX1Sd9MTvLuUYg0+0YlERhPECA5Hq/tfPHFM6mUW0b+rY4roMahwbOtf0xHBg4yPpwPcQb8v4pVyXcEnrNdnaMzEwKn8+YjRzpATUns+xpJdZuGe1U9USPv+6PLR4uxyxUefCaAyJaqVK/aZtlAspF4RYcsWDWIO2TA69/xSCVBa1OUVzEKJpfd+Q76xDlZaO/jz0PHVMWOgBEU6G88wH7ed1eAObGbzfKA9ASk2QCMdXXV0RiWePSoOPvt72f0vEutKXCcplmBTNYhMs0mmpqK7rdhbaPougH0wYq2sRMunDAgXnXiWWlYt57HlYtLRJC1YjWqt4Wz1apNiYP/yeE1MnVUyt9zZnN7WrF1Psb1HXcnYf0dudf0vK8ezewequre6azJ8v4ymfr8Z8qO+IYv3S1Z4N57jJbX74FOcXv6k1CyY8CHPkkHL5P+MLYJhxAXTrp9VpGgbAzj17Kv7P2nfxBY/2TaDnlZIJVyQoxmS8WGygH28iXLIbvFeT+f",
"aeskey": "iWRwvJXElKlehwz5Bvc2+GryrYISJdJhSMG1N697K9/3nikzRxGC85I6i14Kh6hCvrwlPPHV1o1Qy6s4ugzgConYef78meMRbWX3j/JgDB1ZZS5XxkyB2Vt+kFCqNV85dslL2j+rknEC+OcqW9fGjYs7GG19fQ0wynQ0gl7guXU="}
2.签名
需要签名的的字符串:aeskey=iWRwvJXElKlehwz5Bvc2+GryrYISJdJhSMG1N697K9/3nikzRxGC85I6i14Kh6hCvrwlPPHV1o1Qy6s4ugzgConYef78meMRbWX3j/JgDB1ZZS5XxkyB2Vt+kFCqNV85dslL2j+rknEC+OcqW9fGjYs7GG19fQ0wynQ0gl7guXU=&callback_process=1&data={}&extend_info=&merchant_number=ET82009&return_info=&sensitive_data=gWyCgwZUInUOei+1mfWgbD1FKs3jFH3qzQzVGu/UKp3vNNHVB/fHh4rwkmPLvj/WeZUVF6Wml/0CHrE4zHWMFh2ERZVSIZjgU5Mbpv0Yq3CMiMiu2Nc7nDxqmowjhROQvmc+sUqtw/ODUPLaB8xj4QeAT/iewwxnvnM/VKwU3m3DdeAgoiuC0bn4Enm5ZXe7znNfrwrAhVhluDf7swB9wBSG4ZcybZ20GKVJmjlL5zUyD19s38P0EypNsXEeP3jfNAuiq1AN8IOrlhSXO+M7xcfWN5mRMnCdOmids1enIHB6BcOE/B+uJ8414I08U1YEZS/7L5jHOF/iNQ3CU5KnIo2vy+bSFL41EBhKNxj1p6W083nBf9XLWWJwVoS3EjkeOmfpAKFqc8HYqY6DrPTIHJLfWfGvGJf046JtAod8+aJWFQ+KB4il/2XVgO1Sdt4ZLqgMNNza5fRscqyfuAuXkBg+UiuK/0gI6vjP3lpZKdy3/LYLg0NdyigOgSABYAcYRdX1Sd9MTvLuUYg0+0YlERhPECA5Hq/tfPHFM6mUW0b+rY4roMahwbOtf0xHBg4yPpwPcQb8v4pVyXcEnrNdnaMzEwKn8+YjRzpATUns+xpJdZuGe1U9USPv+6PLR4uxyxUefCaAyJaqVK/aZtlAspF4RYcsWDWIO2TA69/xSCVBa1OUVzEKJpfd+Q76xDlZaO/jz0PHVMWOgBEU6G88wH7ed1eAObGbzfKA9ASk2QCMdXXV0RiWePSoOPvt72f0vEutKXCcplmBTNYhMs0mmpqK7rdhbaPougH0wYq2sRMunDAgXnXiWWlYt57HlYtLRJC1YjWqt4Wz1apNiYP/yeE1MnVUyt9zZnN7WrF1Psb1HXcnYf0dudf0vK8ezewequre6azJ8v4ymfr8Z8qO+IYv3S1Z4N57jJbX74FOcXv6k1CyY8CHPkkHL5P+MLYJhxAXTrp9VpGgbAzj17Kv7P2nfxBY/2TaDnlZIJVyQoxmS8WGygH28iXLIbvFeT+f&serial_number=20231204204337871860ET82009&server_type=add_special_rent_order&sub_merchant_number=ET82009S001&version=2.0.0
2.将待签名的字符串用sha1进行计算获取摘
3. 用私钥(商户的私钥)将上一步获取的摘要进行加签(SHA256WithRsa)
5. 然后将加签后的值赋值给sign
最后的数据格式为:
{
"serial_number": "20231204204337871860ET82009",
"merchant_number": "ET82009",
"sub_merchant_number": "ET82009S001",
"server_type": "add_special_rent_order",
"callback_process": 1,
"version": "2.0.0",
"data": "{}",
"return_info": "",
"extend_info": "",
"sensitive_data": "gWyCgwZUInUOei+1mfWgbD1FKs3jFH3qzQzVGu/UKp3vNNHVB/fHh4rwkmPLvj/WeZUVF6Wml/0CHrE4zHWMFh2ERZVSIZjgU5Mbpv0Yq3CMiMiu2Nc7nDxqmowjhROQvmc+sUqtw/ODUPLaB8xj4QeAT/iewwxnvnM/VKwU3m3DdeAgoiuC0bn4Enm5ZXe7znNfrwrAhVhluDf7swB9wBSG4ZcybZ20GKVJmjlL5zUyD19s38P0EypNsXEeP3jfNAuiq1AN8IOrlhSXO+M7xcfWN5mRMnCdOmids1enIHB6BcOE/B+uJ8414I08U1YEZS/7L5jHOF/iNQ3CU5KnIo2vy+bSFL41EBhKNxj1p6W083nBf9XLWWJwVoS3EjkeOmfpAKFqc8HYqY6DrPTIHJLfWfGvGJf046JtAod8+aJWFQ+KB4il/2XVgO1Sdt4ZLqgMNNza5fRscqyfuAuXkBg+UiuK/0gI6vjP3lpZKdy3/LYLg0NdyigOgSABYAcYRdX1Sd9MTvLuUYg0+0YlERhPECA5Hq/tfPHFM6mUW0b+rY4roMahwbOtf0xHBg4yPpwPcQb8v4pVyXcEnrNdnaMzEwKn8+YjRzpATUns+xpJdZuGe1U9USPv+6PLR4uxyxUefCaAyJaqVK/aZtlAspF4RYcsWDWIO2TA69/xSCVBa1OUVzEKJpfd+Q76xDlZaO/jz0PHVMWOgBEU6G88wH7ed1eAObGbzfKA9ASk2QCMdXXV0RiWePSoOPvt72f0vEutKXCcplmBTNYhMs0mmpqK7rdhbaPougH0wYq2sRMunDAgXnXiWWlYt57HlYtLRJC1YjWqt4Wz1apNiYP/yeE1MnVUyt9zZnN7WrF1Psb1HXcnYf0dudf0vK8ezewequre6azJ8v4ymfr8Z8qO+IYv3S1Z4N57jJbX74FOcXv6k1CyY8CHPkkHL5P+MLYJhxAXTrp9VpGgbAzj17Kv7P2nfxBY/2TaDnlZIJVyQoxmS8WGygH28iXLIbvFeT+f",
"aeskey": "iWRwvJXElKlehwz5Bvc2+GryrYISJdJhSMG1N697K9/3nikzRxGC85I6i14Kh6hCvrwlPPHV1o1Qy6s4ugzgConYef78meMRbWX3j/JgDB1ZZS5XxkyB2Vt+kFCqNV85dslL2j+rknEC+OcqW9fGjYs7GG19fQ0wynQ0gl7guXU=",
"sign": "ykxB5zNee+9XfTrD82fXfO1kJEtpHA/SNcKXOG/GAdjiQCd356us2EV55Uz+vttdqeF+9FY6+lq0AWnB4nCuEO9GWlq0NK/1G0XJwzeKsWrPXFB/agL4pTEPg+babthTgw/4wvCQJwCCtBqw7Cqr77n3YGN/fnDDz5NFkCBTa/c="}
Modified at 2023-12-11 12:24:18