# 资金存管系统API文档

[![Build Status via Travis CI](https://travis-ci.org/kaolalicai/lanmaoly.svg?branch=master)](https://travis-ci.org/kaolalicai/lanmaoly) [![Coverage Status](https://coveralls.io/repos/github/kaolalicai/lanmaoly/badge.svg?branch=master)](https://coveralls.io/github/kaolalicai/lanmaoly?branch=master) [![NPM version](https://badge.fury.io/js/lanmaoly.png)](http://badge.fury.io/js/lanmaoly)

*注意:API约定*

- 所有接口调用仅支持promise
- 所有接口调用isSuccess方法判断结果是否成功
- 两个同步钩子方法_getReqParams,_getResParams分别用于获取参数


## usage

```js
var LMLY = require('lanmaoly');
var lmly = new LMLY({
    platformNo: '3000000252', // 平台编号
    keySerial: 1, // 证书序号,用于多证书密钥切换,默认值为 1
    privateKey: '', // 商户私钥, 用于数据签名
    publicKey: '', // 懒猫平台公钥,用于签名验证
    gatewayUrl: '', // 网关接口地址
    serviceUrl: '', // 直连接口地址
    downloadUrl: '', // 对账接口地址
    loadingHtml: '<div>loading</div>', //浏览器跳转时的提示html
    timeout: 60000, //http请求超时时间,默认60秒
    debug: true //打印函数调用的参数,默认是fasle
});

// 个人绑卡注册
// promise
lmly.personalRegister({
    platformUserNo: '',
    requestNo: '',
    realName: '',
    idCardType: '',
    userRole: '',
    idCardNo: '',
    mobile: '',
    bankcardNo: '',
    checkType: '',
    redirectUrl: '',
    userLimitType: '',
    authList: 'TENDER,REPAYMENT,CREDIT_ASSIGNMENT,WITHDRAW,RECHARGE,COMPENSATORY'
}).then(function (redirectHtml) {
        // todo
    })
    .catch(function (error) {
        // todo
    })

// callback
huifu.userRegister({
    platformUserNo: '',
    requestNo: '',
    realName: '',
    idCardType: '',
    userRole: '',
    idCardNo: '',
    mobile: '',
    bankcardNo: '',
    checkType: '',
    redirectUrl: '',
    userLimitType: '',
    authList: 'TENDER,REPAYMENT,CREDIT_ASSIGNMENT,WITHDRAW,RECHARGE,COMPENSATORY'
}, function (err, redirectHtml) {
    // todo
});
```

## API

委托开户

- [`entrustImportUser`](#entrustImportUser) 1.1 个人委托开户 [直连, 异步]
- [`enterpriseEntrustImportUser`](#enterpriseEntrustImportUser) 1.2 企业委托开户 [直连, 异步]

账户接口

- [`personalRegister`](#personalRegister) 2.1 个人绑卡注册 [网关, 异步]
- [`enterpriseRegister`](#enterpriseRegister) 2.2企业绑卡注册 [网关, 异步]
- [`personalBindBankcard`](#personalBindBankcard) 2.3 个人绑卡 [网关, 异步]
- [`enterpriseBindBankcard`](#enterpriseBindBankcard) 2.4 企业绑卡 [网关, 异步]
- [`unbindBankcard`](#unbindBankcard) 2.5 解绑银行卡 [网关, 异步]
- [`resetPassword`](#resetPassword) 2.6 修改密码 [网关, 异步]
- [`checkPassword`](#checkPassword) 2.7 验证密码 [网关, 异步]
- [`modifyMobile`](#modifyMobile) 2.8 预留手机号更新 [网关, 异步]
- [`enterpriseInformationUpdate`](#enterpriseInformationUpdate) 2.9 企业信息修改 [网关, 异步]
- [`activateStockedUser`](#activateStockedUser) 2.10 会员激活 [网关, 异步]
- [`changeUserBankcard`](#changeUserBankcard) 2.11 未激活换卡 [直连]

充提接口

- [`recharge`](#recharge) 3.1 充值  [网关, 异步]
- [`directRecharge`](#directRecharge) 3.2 自动充值 [直连, 幂等]
- [`withdraw`](#withdraw) 3.3 提现 [网关, 异步]
- [`confirmWithdraw`](#confirmWithdraw) 3.4 提现确认 [直连, 幂等]
- [`cancelWithdraw`](#cancelWithdraw) 3.5 取消提现 [直连, 幂等]
- [`autoWithdraw`](#autoWithdraw) 3.6 自动提现 [直连]
- [`interceptWithdraw`](#interceptWithdraw) 3.7 提现拦截 [直连, 异步, 幂等]

交易接口

- [`establishProject`](#establishProject) 4.1 创建标的 [直连]
- [`modifyProject`](#modifyProject) 4.2 变更标的 [直连]
- [`userPreTransaction`](#userPreTransaction) 4.3 用户预处理 [网关, 异步, 幂等]
- [`cancelPreTransaction`](#cancelPreTransaction) 4.4 预处理取消 [网关, 幂等]
- [`syncTransaction`](#syncTransaction) 4.5 单笔交易 [直连, 幂等]
- [`asyncTransaction`](#asyncTransaction) 4.6 批量交易 [直连, 异步, 幂等]
- [`debentureSale`](#debentureSale) 4.7 单笔债权出让 [直连]
- [`intelligentProjectDebentureSale`](#intelligentProjectDebentureSale) 4.8 批量债权出让 [直连, 幂等]
- [`cancelDebentureSale`](#cancelDebentureSale) 4.9 取消债权出让 [直连]
- [`userAuthorization`](#userAuthorization) 4.10 用户授权 [网关, 异步]
- [`cancelUserAuthorization`](#cancelUserAuthorization) 4.11 取消用户授权 [直连]
- [`userAutoPreTransaction`](#userAutoPreTransaction) 4.12 授权预处理 [直连, 幂等]
- [`establishIntelligentProject`](#establishIntelligentProject) 4.13 创建批量投标计划 [直连]
- [`purchaseIntelligentProject`](#purchaseIntelligentProject) 4.14 创建批量投标请求 [直连, 幂等]
- [`intelligentProjectUnfreeze`](#intelligentProjectUnfreeze) 4.15 批量投标请求解冻 [直连, 幂等]
- [`verifyDeduct`](#verifyDeduct) 4.16 验密扣费 [网关, 异步, 幂等]
- [`freeze`](#freeze) 4.17 资金冻结 [直连, 幂等]
- [`unfreeze`](#unfreeze) 4.18 资金解冻 [直连, 幂等]
- [`downloadCheckFile`](#downloadCheckFile) 4.19 对账文件下载 [对账] `该接口返回base64格式的字符串，需要base64 to binary ,然后生成zip格式的对账文件`
- [`confirmCheckFile`](#confirmCheckFile) 4.20 对账文件确认 [直连]
- [`unfreezeTradePassword`](#unfreezeTradePassword) 4.21 交易密码解冻 [直连, 幂等]

查询接口

- [`queryUserInformation`](#queryUserInformation) 5.1 用户信息查询 [直连]
- [`queryTransaction`](#queryTransaction) 5.2 单笔交易查询 [直连]
- [`queryProjectInformation`](#queryProjectInformation) 5.3 标的信息查询 [直连]
- [`queryIntelligentProjectOrder`](#queryIntelligentProjectOrder) 5.4 批量投标请求流水查询 [直连]

工具方法

- [`isSuccess`](#isSuccess) 判断结果是否成功

## test

- npm test
- npm run cov

```

# Changelog

- 20180417 更新银行卡列表


=============================== Coverage summary ===============================
Statements   : 80.82% ( 392/485 )
Branches     : 67.74% ( 84/124 )
Functions    : 56.03% ( 79/141 )
Lines        : 80.82% ( 392/485 )
================================================================================
```
