bankcn

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

README

国内银行支行的联行号和地区信息, 银行图标, 校验银行卡

Go Reference Go goreleaser GitHub go.mod Go version of a Go module GoReportCard GitHub license GitHub release

API List

  • 获取所有支行 [ BankBranchList() []Bank ]
  • 根据 areaID 获取当前区域下所有支行 [ BankListByArea(bankID string, areaID string) []*Bank ]
  • 检测是否是银行卡 [ IsBankCard(bankCardNo string) bool ]
  • 根据卡号获取银行信息 [ GetBankByCardBin(bankCardNo string, bank *Bank) error ]
  • 使用阿里接口查询银行卡信息 [ GetBankByCardOnline(cardNo string, bankInfo *Bank) error ]

Usage


package main

import (
	"fmt"
	"log"

	"github.com/bububa/bankcn"
)

func main() {
    cardNo := "XXXXXX"
	var bank bankcn.Bank
	if err := bankcn.GetBankByCardOnline(cardNo, &bank); err != nil {
		log.Fatalln(err)
		return
	}
	fmt.Printf("%+v\n", bank)
	if err := bankcn.GetBankByCardBin(cardNo, &bank); err != nil {
		log.Fatalln(err)
		return
	}
	fmt.Printf("%+v\n", bank)
}

Documentation

Overview

Package bankcn 国内银行支行的联行号和地区信息, 银行图标, 校验银行卡

Index

Constants

View Source
const (
	VALIDATE_GATEWAY = "https://ccdcapi.alipay.com/validateAndCacheCardInfo.json"
)

Variables

This section is empty.

Functions

func AreaMapBank

func AreaMapBank() map[string]map[string][]*Bank

func GetBankByCardBin

func GetBankByCardBin(bankCardNo string, bank *Bank) error

GetBankByCardBin 根据卡号获取银行信息

func GetBankByCardOnline

func GetBankByCardOnline(cardNo string, bankInfo *Bank) error

GetBankByCardOnline 使用阿里接口查询银行卡信息

func IsBankCard

func IsBankCard(bankCardNo string) bool

IsBankCard 检测是否是银行卡

Types

type Bank

type Bank struct {
	// 银行标识符
	Bank string `json:"bank,omitempty"`
	// 银行名字
	Name string `json:"name,omitempty"`
	// 银行联行号
	BankUnionID string `json:"bank_union_id,omitempty"`
	// 联系地址
	Address string `json:"address,omitempty"`
	// 联系电话
	Phone string `json:"phone,omitempty"`
	// 所在区域代号
	AreaID string `json:"area_id,omitempty"`
	// CardType 银行卡类型
	CardType CardType `json:"card_type"`
}

Bank 银行信息

func BankBranchList

func BankBranchList() []Bank

BankList 获取所有支行

func BankListByArea

func BankListByArea(bankID string, areaID string) []*Bank

BankListByArea 根据 areaID 获取当前区域下所有支行

func (*Bank) GetName

func (bank *Bank) GetName() string

GetName 根据bank 获取中文名

type CardBin

type CardBin struct {
	Bin  string   `json:"bin,omitempty"`
	Bank string   `json:"bank,omitempty"`
	Type CardType `json:"type,omitempty"`
	Len  int      `json:"len,omitempty"`
}

func CardBinList

func CardBinList() []CardBin

func SearchCardBin

func SearchCardBin(bankCardNo string) []CardBin

SearchCardBin 根据传入的数据源,搜索银行卡信息 存在部分不同银行的卡Bin相同,但卡号长度不同。如622303和622305,16位是南京银行,18位是中国工商银行。所以cardBin查询时,如果卡号输入不完整,只给第一个结果。 当前有以下卡Bin存在重复:690755,622442,622425,622302,622308,622309,622510,622162,622307,622303,622305,621260

type CardType

type CardType string

CardType 卡类型

const (
	// DC 储蓄卡
	DC CardType = "DC"
	// CC 信用卡
	CC CardType = "CC"
	// SCC 准贷记卡
	SCC CardType = "SCC"
	// PC 预付费卡
	PC CardType = "PC"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL