SDK อย่างไม่เป็นทางการสำหรับการซื้อขายหุ้นแฮลิแฟกซ์, การซื้อขายหุ้น IWEB, การซื้อขายหุ้นของธนาคารแห่งสกอตแลนด์และ Lloyds Bank Direct Investments Service
Scrapes Internet Banking ดังนั้นอาจถูกอัปเดตโดยการอัปเดตไปยังส่วนหน้าของพวกเขา
import halifaxShareDealingSdk from 'halifax-share-dealing-sdk'
// Alternatively:
// const halifaxShareDealingSdk = require('halifax-share-dealing-sdk').default
const sd = halifaxShareDealingSdk ( {
site : 'halifax' , // one of 'halifax', 'iweb', 'bos', 'lloyds'
USERNAME : 'username' ,
PASSWORD : 'password' ,
MEMORABLE_INFORMATION : {
"Your mother's FIRST name" : 'Jane' ,
"Your father's FIRST name" : 'John' ,
'Your place/town of birth' : 'Anytown' ,
'The name of your first school' : 'Anyschool'
}
} )
สิ่งนี้จำเป็นก่อนโทรออก
ส่งคืนวัตถุ Accounty ด้วยบัญชีเริ่มต้น
sd . login ( )
. then ( console . dir )
// { accountId: '000123456ABCD' }
แสดงรายการบัญชีทั้งหมด
ส่งคืนอาร์เรย์ของวัตถุ Accounty ที่มีชื่อบัญชีและยอดคงเหลือ
sd . login ( )
. then ( sd . getAccounts )
. then ( console . dir )
// [ { accountId: '000123456',
// name: 'Share Dealing Account',
// availableToInvest: { asFloat: 1.23, asText: '£1.23', asRawText: '£1.23' },
// totalSecurities: { asFloat: 4.56, asText: '£4.56', asRawText: '£4.56' },
// totalValue: { asFloat: 5.79, asText: '£5.79', asRawText: '£5.79' } },
// { accountId: '000123456ABCD',
// name: 'Stocks and Shares ISA',
// availableToInvest: { asFloat: 1.23, asText: '£1.23', asRawText: '£1.23' },
// totalSecurities: { asFloat: 4.56, asText: '£4.56', asRawText: '£4.56' },
// totalValue: { asFloat: 5.79, asText: '£5.79', asRawText: '£5.79' } } ]
รับ AccountID สำหรับบัญชีเริ่มต้นจากหน้า 'Set Account Account'
ส่งคืนวัตถุ Accounty ด้วยบัญชีเริ่มต้น
sd . login ( )
. then ( sd . getDefaultAccount )
. then ( console . dir )
// { accountId: '000123456ABCD' }
ตั้งค่าบัญชีเริ่มต้น
ต้องใช้วัตถุ Accounty สำหรับบัญชีที่คุณต้องการตั้งค่าเป็นค่าเริ่มต้น
ส่งคืนวัตถุ Accounty ด้วยบัญชีเริ่มต้นใหม่
sd . login ( )
. then ( ( ) => sd . setDefaultAccount ( { accountId : '000123456' } ) )
. then ( console . dir )
// { accountId: '000123456' }
sd . login ( )
. then ( sd . getAccounts )
. then ( accounts => accounts . find ( account => account . name == 'Share Dealing Account' ) )
. then ( sd . setDefaultAccount )
. then ( console . dir )
// { accountId: '000123456' }
ส่งคืนตัวเลือกเงินปันผลสำหรับบัญชีทั้งหมด
ส่งคืนอาร์เรย์ของวัตถุ Accounty พร้อมข้อมูลตัวเลือกเงินปันผล
sd . login ( )
. then ( sd . getDividendOptions )
. then ( console . dir )
// [ { accountId: '000123456',
// dividendOptionCode: 'H',
// dividendOptionName: 'Hold In Account' },
// { accountId: '000123456ABCD',
// dividendOptionCode: 'R',
// dividendOptionName: 'Automatic Dividend Reinvestment' } ]
ตั้งค่าตัวเลือกการจ่ายเงินปันผลสำหรับบัญชีทั้งหมด
ต้องใช้อาร์เรย์ของวัตถุ Accounty ที่มี dividendOptionCode
ต้องการเฉพาะข้อมูลสำหรับบัญชีที่คุณต้องการเปลี่ยนแปลง dividendOptionName
S เป็นตัวเลือก แต่หากมีการร้องขอจะล้มเหลวหาก dividendOptionCode
S และ dividendOptionName
S ไม่ตรงกัน accountId
S ต้องไม่ซ้ำกันในอาร์เรย์อินพุต
ส่งคืนอาร์เรย์ของวัตถุ Accounty ด้วยข้อมูลตัวเลือกการจ่ายเงินปันผลที่อัปเดต
sd . login ( )
. then ( ( ) => [
{
accountId : '000123456ABCD' ,
dividendOptionCode : 'P6'
}
] )
. then ( sd . setDividendOptions )
. then ( console . dir )
// [ { accountId: '000123456',
// dividendOptionCode: 'H',
// dividendOptionName: 'Hold In Account' },
// { accountId: '000123456ABCD',
// dividendOptionCode: 'P6',
// dividendOptionName: 'Pay Away 6-Monthly' } ]
รับข้อความทั้งหมด
ส่งคืนอาร์เรย์ของงบ
sd . login ( )
. then ( sd . getStatements )
. then ( console . dir )
// [ { statementId: '1', statementDate: '01 Jan 1970' } ]
ได้รับการประเมินค่าสำหรับบัญชี
ต้องใช้วัตถุ Accounty สำหรับบัญชีที่คุณต้องการได้รับการประเมินค่าสำหรับ
ส่งคืนวัตถุ Accounty พร้อมข้อมูลการประเมินค่า
sd . login ( )
. then ( sd . getValuation )
. then ( console . dir )
// { accountId: '000123456ABCD',
// stocks:
// [ { TIDM: 'LLOY',
// fullName: 'LLOYDS BANKING GP ORD GBP0.1',
// holding: { asFloat: 100, asText: '100.000', asRawText: '100.000' },
// avgCostPerShare: { asFloat: 0.495, asText: '49.50p', asRawText: '49.50p' },
// bookCost: { asFloat: 49.5, asText: '£49.50', asRawText: '£49.50' },
// latestPricePerShare: { asFloat: 0.555, asText: '55.50p', asRawText: '*55.50p' },
// valuation: { asFloat: 55.5, asText: '£55.50', asRawText: '£55.50' },
// change:
// { absolute: { asFloat: 6, asText: '£6.00', asRawText: '£6.00' },
// percentage: { asFloat: 0.1212, asText: '12.12%', asRawText: '12.12%' } } } ],
// cash: { asFloat: 1000, asText: '£1000.00', asRawText: '£ 1,000.00' },
// availableToInvest: { asFloat: 1000, asText: '£1000.00', asRawText: '£ 1,000.00' },
// totalSecurities: { asFloat: 55.5, asText: '£55.50', asRawText: '£ 55.50' },
// totalValue: { asFloat: 1055.5, asText: '£1055.50' } }
รับประวัติการจ่ายเงินปันผลสำหรับบัญชี
ต้องใช้วัตถุ Accounty สำหรับบัญชีที่คุณต้องการได้รับประวัติการจ่ายเงินปันผลสำหรับ
ส่งคืนเงินปันผลทางประวัติศาสตร์ที่เกี่ยวข้องกับบัญชี
sd . login ( )
. then ( sd . getDividendHistory )
. then ( console . dir )
// [ { issueDate: '09 Oct 2019',
// fullName: 'VANGUARD FUNDS PLC FTSE 250 UCITS ETF GBP DIS',
// exDividendDate: '26 Sep 2019',
// sharesHeldOnExDividendDate: { asFloat: 1, asText: '1', asRawText: '1' },
// amountPayable: { asFloat: 0.26, asText: '£0.26', asRawText: '£0.26' },
// handlingOperation:
// { dividendOptionCode: 'Hold In Account',
// dividendOptionName: 'H' },
// cashRef: 'ABCDXYZ123' } ]
accountId
: เทียบเท่ากับสิ่งที่ฉันคิดว่าแฮลิแฟกซ์เรียก PortCode
โดยปกติแล้วรหัสบัญชีที่อาจมีตัวอักษรบางตัวหลังจากนั้น บัญชีที่มี accountId
ที่แตกต่างกันอาจใช้รหัสบัญชีเดียวกัน ฉันคิดว่าสิ่งเหล่านี้เป็นเอกลักษณ์ในการเข้าสู่ระบบstatementId
: รหัสคำสั่งฉันคิดว่ามันเป็นหมายเลขที่เพิ่มขึ้นเริ่มต้นที่ 1
- ไม่ซ้ำกันในการเข้าสู่ระบบ ข้อความจะแนบกับการเข้าสู่ระบบ (ตรงข้ามกับบัญชี) และ statementId
S ไม่ซ้ำกันภายในการเข้าสู่ระบบaccounty object
: วัตถุที่มีคุณสมบัติ accountId
ขอให้ดึงคำขอบน GitHub! เพื่อเริ่มต้น:
npm install
npm run test
เพื่อเรียกใช้การทดสอบด้วยความตลกขบขันnpm run build
เบ็ดล่วงหน้าที่มีประโยชน์ (บันทึกเป็น .git/hooks/pre-commit
) เพื่อให้แน่ใจว่าการทดสอบผ่านรหัสจะถูกจัดรูปแบบอย่างถูกต้องและคุณไม่ได้ทิ้งรายละเอียดส่วนตัวของคุณไว้โดยไม่ได้ตั้งใจ (เปลี่ยน 000123456 เป็นรหัสบัญชีของคุณหรืออื่น ๆ ข้อมูลส่วนบุคคลที่คุณต้องการค้นหา):
#! /bin/sh
npm run test && npm run lint && ! grep --exclude=pre-commit -r ' 000123456 ' .
คำเตือน: ยังคงเป็นไปได้ที่จะส่งข้อมูลของคุณหากคุณจัดเวทีลบออกแล้วกระทำ โปรดระวัง!
เวอร์ชันติดตามข้อมูลจำเพาะเวอร์ชันความหมาย
เพื่อวางจำหน่าย:
npm version <major | minor | patch>
เพื่อชนเวอร์ชันgit push --follow-tags
เพื่อกดด้วยแท็ก