签名成功

This commit is contained in:
yml2213
2026-05-13 19:16:19 +08:00
parent b120924263
commit c2fd9078b9
11 changed files with 57 additions and 39 deletions
@@ -10,7 +10,7 @@ import {
verifyOpen91Signature,
} from './shared.js'
test('signOpen91Payload matches documented md5 signing rule', () => {
test('signOpen91Payload signs only request body fields', () => {
const config = {
userId: '1001',
secret: 'rste57w8rsubsnxsb384ur3u9kn5fzhr',
@@ -28,7 +28,7 @@ test('signOpen91Payload matches documented md5 signing rule', () => {
const source = buildOpen91SignSource(payload, config)
assert.equal(
source,
'rste57w8rsubsnxsb384ur3u9kn5fzhrbuyNum=1&callbackUrl=https://cb.example.com/notify/91/order&maxAmount=0.0000&orderNo=P91KS202605040001&productNo=KS-CLOUD-SKU-001&timestamp=1777867200&userId=1001&version=1.0rste57w8rsubsnxsb384ur3u9kn5fzhr',
'rste57w8rsubsnxsb384ur3u9kn5fzhrbuyNum=1&callbackUrl=https://cb.example.com/notify/91/order&maxAmount=0.0000&orderNo=P91KS202605040001&productNo=KS-CLOUD-SKU-001&timestamp=1777867200&version=1.0rste57w8rsubsnxsb384ur3u9kn5fzhr',
)
const sign = signOpen91Payload(payload, config)
@@ -36,6 +36,26 @@ test('signOpen91Payload matches documented md5 signing rule', () => {
assert.equal(verifyOpen91Signature({ ...payload, sign }, config), true)
})
test('signOpen91Payload does not add missing optional fields or configured userId', () => {
const config = {
userId: '1001',
secret: 'rste57w8rsubsnxsb384ur3u9kn5fzhr',
}
const payload = {
orderNo: '2613300083829561',
productNo: '183999074510936',
buyNum: 1,
maxAmount: '0.01',
timestamp: 1778670308,
version: '1.0',
}
assert.equal(
buildOpen91SignSource(payload, config),
'rste57w8rsubsnxsb384ur3u9kn5fzhrbuyNum=1&maxAmount=0.01&orderNo=2613300083829561&productNo=183999074510936&timestamp=1778670308&version=1.0rste57w8rsubsnxsb384ur3u9kn5fzhr',
)
})
test('encryptOpen91Cards matches documented AES ECB base64 sample', () => {
const cards = [
{