virtualPaySign.test.js 953 B

1234567891011121314151617181920212223242526
  1. import test from 'node:test';
  2. import assert from 'node:assert/strict';
  3. import { calcPaySig, calcUserSignature, moneyToFen } from '../src/api/virtualPay/virtualPaySign.js';
  4. test('微信文档中的支付签名示例', () => {
  5. const body = '{"openid": "xxx", "user_ip": "127.0.0.1", "env": 0}';
  6. assert.equal(
  7. calcPaySig('/xpay/query_user_balance', body, '12345'),
  8. 'c37809f27c6d7fd1837ad2500a04512b66b34fd793a39a385fade56dca89a4b5'
  9. );
  10. });
  11. test('微信文档中的用户态签名示例', () => {
  12. const body = '{"openid": "xxx", "user_ip": "127.0.0.1", "env": 0}';
  13. assert.equal(
  14. calcUserSignature(body, '9hAb/NEYUlkaMBEsmFgzig=='),
  15. '089d9e8dc5d308977360c4b79ec600a93d736802802a807d634192328032f6c7'
  16. );
  17. });
  18. test('金额按旧支付表的分单位转换', () => {
  19. assert.equal(moneyToFen('199'), 19900);
  20. assert.equal(moneyToFen('1.00'), 100);
  21. assert.throws(() => moneyToFen('0.001'));
  22. });