| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- package llpay
- import (
- // "crypto"
- // "crypto/md5"
- // "crypto/rand"
- // "crypto/rsa"
- // "crypto/sha1"
- // "crypto/sha256"
- // "crypto/x509"
- // "encoding/base64"
- "encoding/json"
- "strconv"
- // "encoding/pem"
- "fmt"
- // "sort"
- // "strings"
- // "time"
- "github.com/astaxie/beego"
- // "github.com/astaxie/beego/httplib"
- "fohow.com/libs/tool"
- )
- const (
- RETURN_CODE_SUCCESS = "0000"
- RETURN_CODE_NO_RECORD = "8901"
- )
- //银行卡信息
- type BankCardBin struct {
- RetCode string `json:"ret_code"`
- RetMsg string `json:"ret_msg"`
- SignType string `json:"-"`
- Sign string `json:"-"`
- BankCode string `json:"bank_code"`
- BankName string `json:"bank_name"`
- CardType string `json:"card_type"`
- }
- //用户已签约的银行卡
- type UserAgreeBankCards struct {
- AgreementList []struct {
- NoAgree string `json:"no_agree"` // 银通协议编号 no_agree 否 String 银行卡签约的唯一编号
- CardNo string `json:"card_no"` // 银行卡号后4 位 card_no 否 String 银行卡号后4 位
- BankCode string `json:"bank_code"` // 所属银行编号 bank_code 否 String
- BankName string `json:"bank_name"` // 所属银行名称 bank_name 否 String
- CardType int `json:"card_type"` // 银行卡类型 card_type 否 String 2-储蓄卡 3-信用卡
- BindMobile string `json:"bind_mobile"` // 绑定手机号码 bind_mobile
- } `json:"agreement_list"` //结果集,返回按签约时间倒叙的结果集
- RetCode string `json:"ret_code"` // 交易结果代码 ret_code 是 String(4) 0000
- RetMsg string `json:"ret_msg"` // 交易结果描述 ret_msg 是 String(100) 交易成功
- SignType string `json:"sign_type"` // 签名方式 sign_type 是 String RSA 或者 MD5
- Sign string `json:"sign"` //签名 sign 是 String RSA 加密签名,见安全签名机制
- UserId int64 `json:"user_id"` // 商户用户唯一编号,该用户在商户系统中的唯一编号,要求是该编号在商户系统中唯一标识该用户
- Count int64 `json:"count"` //总记录条数 count 是 Int 本次返回的总记录条数
- }
- // 获取银行卡信息
- // "{\"bank_code\":\"01040000\",\"bank_name\":\"中国银行\",\"card_type\":\"2\",\"ret_code\":\"0000\",\"ret_msg\":\"交易成功\",\"sign\":\"SC6nh3/JN/MdV6icMd5mKIMGb3NoKx4kyevMLYNwyRKcxAmcjqwNf6dzj4YTixfRlqqnnMJJ3ulw5KueC9rw6FLRROcRTgvlxDdsxNYz1VeNKOpo401Nx4PZCynSZSjjqnblRI7FE5hEm5zARRiROcD4lIEBgIpjc4iPJuw6VD8=\",\"sign_type\":\"RSA\"}"
- func GetBankCardBin(cardNo string) *BankCardBin {
- params := map[string]string{
- "oid_partner": beego.AppConfig.String("LianLianPayOidPartner"),
- "sign_type": beego.AppConfig.String("LianLianPaySignType"), //MD5 || RSA
- "card_no": cardNo,
- }
- params["sign"] = Signature(params)
- url := "https://queryapi.lianlianpay.com/bankcardbin.htm"
- resp := tool.PostJSON(url, params)
- bankCardBin := new(BankCardBin)
- json.Unmarshal([]byte(resp), &bankCardBin)
- return bankCardBin
- }
- //获取绑定的银行卡列表
- func GetBankcardBindList(uId int64, offset, cardNo, platform, noAgree string) UserAgreeBankCards {
- params := map[string]string{
- "oid_partner": beego.AppConfig.String("LianLianPayOidPartner"),
- "user_id": strconv.FormatInt(uId, 10),
- "offset": offset,
- "pay_type": "D",
- "sign_type": beego.AppConfig.String("LianLianPaySignType"), //MD5 || RSA
- "card_no": cardNo,
- }
- params["sign"] = Signature(params)
- url := "https://queryapi.lianlianpay.com/bankcardbindlist.htm"
- resp := tool.PostJSON(url, params)
- // beego.BeeLogger.Error("GetBankcardBindList resp=[%s]", resp)
- var userAgreeBankCards UserAgreeBankCards
- err := json.Unmarshal([]byte(resp), &userAgreeBankCards)
- if err != nil {
- fmt.Println("error:", err)
- }
- return userAgreeBankCards
- }
- //解绑银行卡
- type UnbindBankCard struct {
- RetCode string `json:"ret_code"` // 交易结果代码 ret_code 是 String(4) 0000
- RetMsg string `json:"ret_msg"` // 交易结果描述 ret_msg 是 String(100) 交易成功
- SignType string `json:"sign_type"` // 签名方式 sign_type 是 String RSA 或者 MD5
- Sign string `json:"sign"` //签名 sign 是 String RSA 加密签名,见安全签名机制
- }
- func BankCardUnbind(uId int64, noAgree string) *UnbindBankCard {
- params := map[string]string{
- "oid_partner": beego.AppConfig.String("LianLianPayOidPartner"),
- "sign_type": beego.AppConfig.String("LianLianPaySignType"), //MD5 || RSA
- // "card_no": cardNo,
- "pay_type": "D",
- "user_id": strconv.FormatInt(uId, 10),
- "no_agree": noAgree,
- }
- params["sign"] = Signature(params)
- url := "https://yintong.com.cn/traderapi/bankcardunbind.htm"
- resp := tool.PostJSON(url, params)
- unbindBankCard := new(UnbindBankCard)
- json.Unmarshal([]byte(resp), &unbindBankCard)
- return unbindBankCard
- }
|