Open API
简体中文
  • English
  • 简体中文
API DOC
API DOC
简体中文
  • English
  • 简体中文
  1. Open API
  • Open API
    • 文档修订记录
    • API接入概述
    • API调用地址
    • Api请求参数说明
    • Api响应参数说明
    • 请求流水号生成说明
    • 接口加密加签步骤
    • 接口解密验签流程
    • 常量说明
      • pay_type支付类型说明
      • order_status订单状态说明
      • status_code 返回状态说明
      • fee_type缴费类型说明
      • attachment_type附件类型说明
      • country_code国家代码说明
      • currency_code货币代码说明
      • 性别说明
      • 证件类型说明
      • 收入来源类型说明
    • 接口
      • 下单接口
      • 第三方跳转下单接口
      • 附件上传接口
      • 删除附件接口
      • 不确定请求查询(查询请求是否成功)
      • 获取付款地址接口
      • 订单批量查询接口
      • 第三方支付通知接口(不维护)
      • 订单付款操作通知
      • 修改订单信息接口
      • 申请退款接口
      • 关闭订单接口
      • 获取标准学校信息
    • 异步通知说明v2
      • 异步通知说明
      • 异步通知生成签名过程说明
      • 支付成功异步通知
      • 退款结果异步通知
      • 汇出结果异步通知
      • 汇款凭证异步通知
    • 异步通知说明v1(不再维护)
      • 支付成功异步通知参数说明-v1(不再维护, 如果要对接请看v2版本)
      • 异步通知生成签名过程说明
  1. Open API

接口加密加签步骤

加密流程#

sensitive_data字段的数据:
{
	"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没有值则是空字符串不需要加密, 如果有值需要加密处理,下面是加密规则#

1.1.将sensitive_data转化为json格式数据,使用aes-128-cbc进行对称加密,
先生成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.签名#

1.将第一步加密后的数据进行排序拼接, 排序拼接规则为先进行排序,按字母a-z进行排序,排序完后以&进行拼接
需要签名的的字符串: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
Previous
请求流水号生成说明
Next
接口解密验签流程
Built with