djdg common verify
Project description
- database model description:
VerifiedUser model
class VerifiedUser(models.Model): TYPE_REAL_NAME_VALIDATE = 0 TYPE_UPLOAD_VALIDATE = 1 CHOICE_TYPE = ( (TYPE_REAL_NAME_VALIDATE, '实名认证'), (TYPE_UPLOAD_VALIDATE, '上传认证') ) STATUS_AUDIT_PASS = 0 STATUS_AUDIT = 1 STATUS_NOT_USE = 2 STATUS_RE_AUDIT = 4 CHOICE_STATUS = ( (STATUS_AUDIT_PASS, '认证成功'), (STATUS_AUDIT, '待审核'), (STATUS_NOT_USE, '未使用'), (STATUS_RE_AUDIT, '认证失败') ) user = models.OneToOneField(User, related_name="common_verified_user") id_name = models.CharField(u"身份证姓名", max_length=64, null=True) id_card_no = models.CharField(u"身份证号码", max_length=32, null=True) type = models.SmallIntegerField(u"认证类型", default=0, choices=CHOICE_TYPE) id_card_img1 = models.CharField(u"身份证正面", max_length=128, null=True) id_card_img2 = models.CharField(u"身份证反而", max_length=128, null=True) status = models.SmallIntegerField(u"认证状态", default=0, choices=CHOICE_STATUS) stime = models.DateTimeField(u"状态时间", auto_now=True) ctime = models.DateTimeField(u"创建时间", auto_now_add=True) pay_password = models.CharField(u"支付密码", max_length=128, null=True, blank=True)
BankInfo model
class BankInfo(models.Model): name = models.CharField(u"银行名称", max_length=32) logo = models.CharField(u"银行LOGO URL", max_length=255) color = models.CharField(u"银行卡底色", max_length=8, default='FFFFFF')
BankVerify model
class BankVerify(models.Model): TYPE_BANK_BOOK = 0 TYPE_DEBIT_CARD = 1 TYPE_CREDIT_CARD = 2 CHOICE_TYPE = ( (TYPE_BANK_BOOK, '存折'), (TYPE_DEBIT_CARD, '借记卡'), (TYPE_CREDIT_CARD, '信用卡') ) STATUS_AUDIT_PASS = 0 STATUS_AUDIT = 1 STATUS_NOT_USE = 2 STATUS_RE_AUDIT = 4 CHOICE_STATUS = ( (STATUS_AUDIT_PASS, '绑定成功'), (STATUS_AUDIT, '绑定中'), (STATUS_NOT_USE, "未使用"), (STATUS_RE_AUDIT, '绑定失败') ) user = models.ForeignKey(User) bank_info = models.ForeignKey(BankInfo, related_name="dealer_bank_card", null=True, default=None, on_delete=models.SET_NULL) card_branch = models.TextField("开户支行", max_length=64, null=True) province = models.CharField("省份", max_length=32, default='') city = models.CharField("城市", max_length=16, default='') card_no = models.CharField("卡号", max_length=64) card_tel = models.CharField("预留手机", max_length=16) type = models.SmallIntegerField("卡类型", default=1, choices=CHOICE_TYPE) status = models.SmallIntegerField("卡状态", default=0, choices=CHOICE_STATUS) stime = models.DateTimeField("状态时间", auto_now=True) ctime = models.DateTimeField("创建时间", auto_now_add=True)
- Setting Config:
INSTALLED_APPS
INSTALLED_APPS = [ "**", "djdg_common_verify" ] # INSTALLED_APPS 增加如上app # 然后运行python manage.py migrate djdg_common_verify # 生成数据库的表,以及插入bankinfo的信息
JAVA_COMMON_SYSTEM
JAVA_COMMON_SYSTEM = { 'host': 'localhost', 'protocol': 'http', 'base_url': '/ja/common/v1/', 'appid': 'abc', 'secret': '123'} # 需要在settings.py增加java common模块的配置,具体的配置信息如上
RESPONSE_CONFIG
RESPONSE_CONFIG = { 'STATUS_PARAM': 'statusCode', 'MSG_PARAM': 'msg', 'DATA_PARAM': 'data', 'OK_STATUS': 0, 'OK_MSG': 'success' } # 配置RESPONSE_CONFIG, 主要用于系统间的http请求
REDIS
REDIS = { 'HOST': 'localhost', 'PORT': 6379, 'DB': 0, 'PASSWORD': '123', } # 配置redis
LOGGING
LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': '%(asctime)s [%(levelname)s] [%(process)d:%(thread)d] [%(name)s] [%(module)s.%(funcName)s:%(lineno)d] - %(message)s' }, 'middle': { 'format': '%(asctime)s [%(levelname)s] [%(module)s.%(funcName)s:%(lineno)d] - %(message)s' }, 'simple': { 'format': '%(levelname)s %(message)s' }, }, 'filters': { 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse' } }, 'handlers': { 'null': { 'level': 'DEBUG', 'class': 'logging.NullHandler', }, 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'middle' }, 'testlog': { 'level': 'DEBUG', 'class': 'logging.handlers.RotatingFileHandler', 'formatter': 'verbose', 'filename': os.path.join(BASE_DIR, 'test.log'), 'maxBytes': '1024 * 1024 * 10', 'backupCount': '5' }, }, 'loggers': { 'django': { 'handlers': ['testlog'], 'propagate': True, 'level': 'INFO', }, 'djdg_common_verify': { 'handlers': ['testlog'], 'propagate': False, 'level': 'DEBUG', }, } } # 如果讲认证的信息保存到log里面,需要在loggers里面设置djdg_common_verify,具体配置可参考上述代码
- Function list:
IdCardUserAuther Example:
用户获取实名认证信息
创建实例对象
Auther = IdCardUserAuther(user_id=1)
获取序列化之后的信息
Auther.serializer()
2.1 返回信息为dict
2.1.1 未通过认证:
{"statusCode": 5000, "msg": "用户暂未通过认证", "data":{}}
2.1.2 通过认证:
{"statusCode": 0, "msg": "成功", "data":{"name":"张三", "identity":1234}}
传参进行认证
Auther = IdCardUserAuther(user_id=1, auth_data={"name":"张三", "identity":"123456789"})
3.1 调用认证方法
Auther.auth()
3.2 获取序列化之后的信息
Auther.serializer()
3.3 返回信息为dict
3.3.1 未通过认证
{"statusCode": 5000, "msg": "用户暂未通过认证", "data":{}}
3.3.2 通过认证
{"statusCode": 0, "msg": "成功", "data":{"name":"张三", "identity":1234}}
bankcardauth Example:
用户获取银行卡绑定信息
Auther = BankCardUserAuther(user_id=1)
获取序列化之后的信息
Auther.serializer()
返回信息为dict
# 未通过认证 {"statusCode": 5000, "msg": "银行卡暂未通过认证", "data": {}} # 通过认证 {"statusCode": 0, "msg": "成功", "data": { "bankcard": "", "bank_branch_name": "", "type": "", "province": "", "city": "", "tel": "", "bank_name": "", "bank_logo": "", "color": "", "name": "", "identity": "" } }
传参进行认证
Auther = BankCardUserAuther(user_id=1, auth_data={ "bankcard": "", "bank_branch_name": "", "type": "", "province": "", "city": "", "tel": "", "bank_name": "", "bank_logo": "", "color": "", "name": "", "identity": "" }
绑定或修改银行卡
auth_data={ "name": "张三", "bankcard": "1234567890", "tel":"13112345678" } # "name":姓名, "bankcard":银行卡号, "tel":电话号码 三个字段不能为空
修改银行卡支行信息
auth_data={ "province": "广东", "city":"深圳", "bank_branch_name": "科技园支行" } # "province":省份, "city":城市, "bank_branch_name":支行名称 三个字段不能为空
调用认证方法
Auther.auth()
获取序列化之后的信息
Auther.serializer()
返回信息为dict
# 未通过认证 {"statusCode": 5000, "msg": "用户暂未通过认证", "data":{}} # 通过认证 {"statusCode": 0, "msg": "成功", "data": { "bankcard": "", "bank_branch_name": "", "type": "", "province": "", "city": "", "tel": "", "bank_name": "", "bank_logo": "", "color": "", "name": "", "identity": "" } }
paypasswordauth Example:
用户获取银行卡绑定信息
Auther = UserPasswordAuther(user_id=1)
获取序列化之后的信息
Auther.serializer()
返回信息为dict
{"statusCode": 0, "msg": "成功", "data": {"password": "设置的密码"}} # 已经设置密码 {"statusCode": 5000, "msg": "用户暂未设置交易密码", "data": {}} # 未设置密码
传参进行认证
设置交易密码 (之前尚未设置交易密码)
Auther = UserPasswordAuther(user_id=1) # 调用认证方法 Auther.auth() # 获取序列化之后的信息 Auther.serializer() # 返回信息为dict {"statusCode": 5006, "msg": "密码无效或者为空", "data": {}} # 未通过认证 {"statusCode": 0, "msg": "成功", "data": {"password": "设置的密码"}} # 通过认证
修改交易密码 (之前已经设置交易密码)
# 第一步获取settingtoken Auther = UserPasswordAuther(user_id=1, auth_data={"identity":"身份证号码"}) # 调用获取settingtoken方法 Auther.get_settingtoken() # 返回信息为dict {"statusCode": 5003, "msg": "用户身份证信息未通过校验", "data": {}} {"statusCode": 5000, "msg": "用户暂未设置交易密码", "data": {}} {"statusCode": 0, "msg": "验证身份信息成功", "data": { "settingToken": settingtoken.token }} # 获取成功返回信息 # 第一步获取settingtoken Auther = UserPasswordAuther(user_id=1, \ auth_data={"password":"设置的交易密码", "setttingtoken":"通过第一步获取的settingtoken"}) # 调用认证方法 Auther.auth() # 获取序列化之后的信息 Auther.serializer() # 返回信息为dict {"statusCode": 5001, "msg": "setting token未通过校验", "data": {}} 未通过认证 {"statusCode": 5005, "msg": "settingtoken失效", "data": {}} 未通过认证 {"statusCode": 0, "msg": "成功", "data": {"password": "设置的密码"}} 通过认证
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for djdg_python_common_verify_SDK-0.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fd85c2f324f1602ec76a50fead3ce9a10eab71a8a6b4c6ba80f763e584c2f8f |
|
MD5 | bd27a7a4dd6a3a1d8386ae5fb1ea6c59 |
|
BLAKE2b-256 | 17b1d3d9d684978f3a8999f621ff1516ff4dbbb1bf9106f71167318aab92e15c |