Skip to content

签名说明

签名步骤

  1. 取请求体全部非空字段(排除 sign
  2. 字段名按字典序排序
  3. 拼接:k1=v1&k2=v2&...&key={apiSecretKey}
  4. 对拼接串做 MD5,结果转 大写
  5. 使用商户 RSA私钥 对 MD5 字符串的 UTF-8 字节做私钥加密(RSA/ECB/PKCS1Padding),再 Base64,写入 sign

签名示例

需要注意的是,RSA加密同样的数据,得到的密文都是不同的。您的代码需要确保能使用私钥进行加密,并且使用我提供的这个实例公钥可以解密到示例中sign的密文,密文的解密结果为拼接字符串的md5大写结果"3270046F5566702D70DA92D1C4725579"

SecretKey

text
UxLj9UXCL1Kbgc4oiuByXs2ta9blbz7w

RSA密钥对

RSA公钥

text
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAytFhze7xM54M35t5sxDknH63bXNqz3Oe1jgfL43U1MLi/xD+Owu6uENGV41ZwofMDcB0j2R9KgpNV08PhYB0+LkRoGnF5WpVlWbcFEXdpYHthDvB5gIBXOvl1GFkoLNvdoDMSI5MNqwyxR/AzopuZUTUXE294apRDmTa9nCw/PjKuWBroaAmNhAPRx66yQxQSKFly377qfYZp7p2UF+EcJkZuO0IelEn+VVmbAlqiwjYSvxqBk/LEcE7PSUJ/42poJ47XTvft1U4iQuWzjiCuAYCCmAwLeARuZB0SphCgEhBLPdaOJVxxJ7Bfjbktm4mIpkDjDQ5yiCmSIYmiohqoQIDAQAB

RSA私钥

text
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDK0WHN7vEzngzfm3mzEOScfrdtc2rPc57WOB8vjdTUwuL/EP47C7q4Q0ZXjVnCh8wNwHSPZH0qCk1XTw+FgHT4uRGgacXlalWVZtwURd2lge2EO8HmAgFc6+XUYWSgs292gMxIjkw2rDLFH8DOim5lRNRcTb3hqlEOZNr2cLD8+Mq5YGuhoCY2EA9HHrrJDFBIoWXLfvup9hmnunZQX4RwmRm47Qh6USf5VWZsCWqLCNhK/GoGT8sRwTs9JQn/jamgnjtdO9+3VTiJC5bOOIK4BgIKYDAt4BG5kHRKmEKASEEs91o4lXHEnsF+NuS2biYimQOMNDnKIKZIhiaKiGqhAgMBAAECggEABGtZ4MHmhwTwN89+cDg3m4h8MqgQk1f0FavSE+Qov3i2R5ebKw4kN8V1QQVSL8m7yL9NOOZIHwpLvXGyS1rhXZ2yfmjcnlVF+3IS/MT5lZSQWGSxEsP/m6rDGqDDR5hGVxYrEWAKpYi0t+BzaAq6mWW9tPvPjc0rTEuGvQbHSAFRuDGnXchNiwx4onMHk5F2i/2mGvghciu1iE/sbkHkxCoRWihwBLzQpcCbcvwuAY4I1AohW6w8zFKmRO1EkMbJTXByjwpL3QEEWuvYWlEx3W1n8BohM07FtmKN4fFaBeFueHlLeT42WEA1Pf2Ysp+CbBAEtsk/iX3AD0yJzYR3QQKBgQD5/8QTZ9W7Od2C+s1lIsdgTU0A5upBQa203mwsv52MRilB6iW05I54pNrZUhETFZrvCXaf/ytjW39DX+PaQKj091JQ2SQ9b3NRaFsS/o+dR6F/yYzfRCJfFQcUF8wLyPnwXG0ZylzREufba14H4rmwRWiwIPND6n8EzESKYt9swQKBgQDPr7COtlFe3ziA/CCoo3d8tDtRj6wTf/Uh18L1VrqU4VeZhDrOEPsc/CemBRn746Y7wCvpCvwkbk7QbbFo1aLzYDSpe7LErKQkb+giTiLG4rYWrg39JQQsqYq744qxICE0wmXE105XtIi4wv7VZ23jVVNeMXmEe6TIAJgn2b4V4QKBgE+13S7SzLMFoDtC/HpivG9YNlUzSz3DUz94K8WY0wMG2+DIZ31l4odVCPKB2C/dk6jju48ILS1g3xL8YAoW08hHk1dz5Lox7vLl8yP7Ro8/Z573BJOrhcoLSlZ9v/GCAy9ASQkQHMgM3yB2+2RIRiyN9PMzjlz5R8af2rrFC7gBAoGADY6UYdx4106O66yJnTh+dj91l89fFi7GG51v9n/g0hMbmsPM6uKk4bF8DRRMK+siUMgslZvH9cDVmDlw2T0I1AY1qdKPStNSK6a6anLbRkxKQpS+CQY/jYLLsZQa25ETWdROvFipnoQEYLsp01hbDfnl5UIpgoJnsT6IsCFAjUECgYA0cx0bfV5D8EOAZ4QgPD2hm30wpoe30dP76yenyknPp5G1IdmXl+MmNcOzn5RG5JiZTtlYKUmiq9sWtRPf48dttJzmfhcYoJ2MONnDN7myaDgIt9hK0OzZxOPaJYw1myl+085He91MfbXMiOjPIKkN6tsM2JRKD2xyr+LiyFNL4Q==

以下是以 “创建入款订单” 接口为例

请求体
json
{
  "orderNo": "RM1788148751230",
  "balance": "12.30",
  "notifyUrl": "",
  "tokenType": "USD",
  "timestamp": 1788148762520,
  "sign": "nyQjCGEXeWY+bxOZPcwJzq140kn718eOchf14z7wWUoXyrdk/+aWQJ/j/D573w1ivygG1LYMxahvDZaxD1dyEMjmUoMdcZRiSBSV5roEaVsrQGzTU+Lo5djGC41vM1nHi9yjn0OIyvcWixzy6LlR1idYwzGBBaF0Ye/GcrYA6Mi5lbWsWWZ7bOT5ASpka6sDu5Udv3HLiJRHAs0MmPBth5PFvUwf3hh8IwAK9R5G+SJ1ggu+12hfKKLTUhkRe1oX0wEylX913v3OU3EOpryacZU69i9Ufo52QM/h0q4fuQzE5J/kRMW2z+RYK7RPBRHjlei/HfE+F40JeLU0dxL7Bw=="
}
拼接后的字符串
text
balance=12.30&orderNo=RM1788148751230&timestamp=1788148762520&tokenType=USD&key=UxLj9UXCL1Kbgc4oiuByXs2ta9blbz7w
拼接字符串的MD5(注意取大写)
text
3270046f5566702d70da92d1c4725579