| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- package alipay
- import (
- "fmt"
- "github.com/smartwalle/alipay"
- "git.qianqiusoft.com/qianqiusoft/light-apiengine/config"
- "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
- "io/ioutil"
- "strings"
- )
- var alipayClient *alipay.Client = nil
- var alipayConfig struct {
- AppId string // app id
- SignMode string // 签名模式,common:普通公钥;cert:公钥证书
- AppPrivateKeyFile string // 保存支付宝开发平台助手生成应用密钥(第一个页面)内容的文件
- // 签名模式为普通公钥所需的文件
- AliPayPublicKeyFile string // 支付宝支付公钥文件
- // 签名模式为共钥证书所需的文件
- AppPublicCertFile string // 应用公钥证书,获取csr并上传csr后获得的
- AliPayRootCertFile string // 支付宝根证书,获取csr并上传csr后获得的
- AliPayPublicCertFile string // 支付宝公钥证书,获取csr并上传csr后获得的
- AliPayCallback string // 支付宝完整回调信息接口url,既notifyurl
- }
- func init(){
- alipayConfig.AppId = config.AppConfig.GetKey("alipay_appid")
- alipayConfig.SignMode = config.AppConfig.GetKey("alipay_sign_mode") // 签名模式,common:普通公钥;cert:公钥证书
- if alipayConfig.SignMode == ""{
- // 默认为普通公钥
- alipayConfig.SignMode = "common"
- }
- alipayConfig.AppPrivateKeyFile = config.AppConfig.GetKey("alipay_app_private_key_file") // 保存支付宝开发平台助手生成应用密钥(第一个页面)内容的文件
- // 签名模式为普通公钥所需的文件
- alipayConfig.AliPayPublicKeyFile = config.AppConfig.GetKey("alipay_public_key_file")
- // 签名模式为共钥证书所需的文件
- alipayConfig.AppPublicCertFile = config.AppConfig.GetKey("alipay_app_public_cert_file") // 应用公钥证书,获取csr并上传csr后获得的
- alipayConfig.AliPayRootCertFile = config.AppConfig.GetKey("alipay_root_cert_file") // 支付宝根证书,获取csr并上传csr后获得的
- alipayConfig.AliPayPublicCertFile = config.AppConfig.GetKey("alipay_public_cert_file")// 支付宝公钥证书,获取csr并上传csr后获得的
- // 回调
- alipayConfig.AliPayCallback = config.AppConfig.GetKey("alipay_callback") // 支付宝完整回调信息接口url,既notifyurl
- bytess , err := ioutil.ReadFile(alipayConfig.AppPrivateKeyFile)
- if err != nil{
- fmt.Println("init alipay error, app private key file", alipayConfig.AppPrivateKeyFile, "does not exist", err.Error())
- return
- }
- appPrivateKey := "MIIEogIBAAKCAQEAsUJX2IP/AbjzD0n2Ul5tpjn8bouNWyOt8pqHrVevciqWLmBQHSPXDyyP9+0+FTF3X9RDqVLuU7S+jlnKwLmjqZOa3SXQNjynaSPZudkr8T+8fdyzlWx5pgbs+o4707GOpYuraTOpTPO8HyVyBuTSzVUHyeQ09IRhT3lFatY3xEzUQv3t7Pk19te32yRqqTFvC4iHkb2b0dQM9wc59bgjqb9rsOYW6nypa2wkiA+e2Gu/1VkZRl/otnGKWR3NohN7gKv3/jpzNI8we43GO5PNV9bXrFNwdwusBq6zU4+ZUloSlAZ2ns6ZuVDr1q4DnJPzj55mSx5nGQK+ePSG3jrqcQIDAQABAoIBAD/SDybZf3rzSC/9BT7q2Le8sPJsNFzYH8z1blwu8fA8/Q19h9q2CLxh4wP02yFuSfiqyCGyxjRFI0bFdYamUBLCHkP5VVnxxKTKT53mXzfhJtB6If5uq+3nGHOtukSh7SYVf4XFH/Og3d6o8MEiqfNb5g3+qEJRV2fx1dh9gF6gYQeHJ146TyKohBGSoP3XgWpii5dCWYPBUp/RiGKDgukYIK1t2BKOVmAqO3pwbVA3sp4mk9SDDAce68VrqixQ4yBwJT3FOeOa/4uf73F+VV7tMGls1Adohlcua9znGM+pVfuSFGtBfXuNqdPVyd0ffyMhgd25QW8WjPAkQxESowECgYEA5a6uoV2JCo/LUh0M5uXpZkSlwW4Rha4+4RflsTlx+EpA/EXTipYvkMDMc2zvAusv2fxryaOTOJdCuQiMBBJ0w2mI00SnmcyRvCvGJpUyLfpTXtyVo1ZdtuM/mopTw345hFO/U69/4QSBV4uZa/EjK/L3weuMsyX00tgbbTY9Y9kCgYEAxZHrwgWA8w//WUPQDhuh9hh5FJT2Ef5RL4EspD+ukU5zAKbYrvS243pQ7gdAo46/UTEj+FSnRhQ2/QMRd13wvu7JKbHdlThfq9/+h/ujNT7Y7Zu89gFXOyQp2GRYuB1x83GIcwgRC8zy7tjR31+ngDHuJlsyEI4n9V0McpsgVFkCgYAN9mCHTrhV/AfQJhPytWdK4EFzUM2f4sfPxzQfYe6buWfZ7iS9+ANMOWw0WBrvgnyWM9IZn+gDOK7FsM9SMA0JFBFNRo8pulXhqoeRMOCsCtummKJAG6/2vjnPmzkcWUAF21F2NOUBONTkDYh2F2Kb+Vk2YKtc+KG5b4m7SeDRgQKBgHkupdLeGVf9KfyQsZ7VqCQQosPTEpO60AU5UC52uRZ7beKqdCHsC/m/XsCBRk6MEiE06QE6u1cqswfByAbVYgNa55xhcq5CY7xCqhaybEsOf3ROoDqsW9r0tY37Dsfvl6NgsfcMrZf1X9TMvP4r58uj1JVGPpEVAMFpD2eEavIRAoGAanK6o/SC2m9e5dLQHvLiu++aZOUKQUaUYmOZoejXx4G7KdjvZYbdoDcVXEVHQajwu+OFOJfgJRfvA4IXDfJ+QnVfN08kuKSMnKRQufpHEA8TDzicChC+KDvN38cMx2l/QNrP3J59WPIm2TrEoiIBkMqp/Fst7gE6/u8oLwPfizI="
- alipayPublicKey := "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxNnmJTHLQwoEue/IwjRe8p2BlYG1jw17y6DsKAd0i67Wbw6bCuuNnOxLP5C+WmVP2ohojuA6OSbK3n/XK1h7P5Ly4eiCOWTX3mF3T5li3+sEWKadTpKeYF4lK6Cbh8pEdFE3eub5pLF8Egz8sSvKY2uygmSTYWMBN00kP2Rs6QmRdR1krJoVvPu0cSJe0tpmh2hOKBx+jmb7R89dKx2tgAihCi9GfWFkzKRfOq7MY6VTQO3CtH3RES/3JSkZmSfCAa5DDJfwc0MUyHDjyUHc3ZzyPzxARH2g44t8uRZh+pCz9aJO1fJD+UmGiwtIJEF3knpfNCYe7uypOaw7exJgmQIDAQAB"
- fmt.Println("---------------------------->private key 1-->")
- fmt.Println(appPrivateKey)
- fmt.Println(strings.TrimSpace(string(bytess)))
- fmt.Println("---------------------------->private key 1-->")
- alipayClient, err = alipay.New(alipayConfig.AppId, appPrivateKey, true)
- if err != nil{
- fmt.Println("new alipay client error", err.Error())
- return
- }
- if alipayConfig.SignMode == "common"{
- bytess, err = ioutil.ReadFile(alipayConfig.AliPayPublicKeyFile)
- if err != nil{
- fmt.Println("read alipay public key error", err.Error(), alipayConfig.AliPayPublicKeyFile)
- return
- }
- fmt.Println("---------------------------->public key 1-->")
- fmt.Println(alipayPublicKey)
- fmt.Println(strings.TrimSpace(string(bytess)))
- fmt.Println("---------------------------->public key 1-->")
- err = alipayClient.LoadAliPayPublicKey(alipayPublicKey)
- if err != nil{
- fmt.Println("LoadAliPayPublicKey error", err.Error(), alipayConfig.AliPayPublicKeyFile)
- return
- }
- }else{
- err = alipayClient.LoadAppPublicCertFromFile(alipayConfig.AppPublicCertFile)
- if err != nil{
- fmt.Println("LoadAppPublicCertFromFile error", err.Error(), alipayConfig.AppPublicCertFile)
- return
- }
- err = alipayClient.LoadAliPayRootCertFromFile(alipayConfig.AliPayRootCertFile)
- if err != nil{
- fmt.Println("LoadAliPayRootCertFromFile error", err.Error(), alipayConfig.AliPayRootCertFile)
- return
- }
- err = alipayClient.LoadAliPayPublicCertFromFile(alipayConfig.AliPayPublicCertFile)
- if err != nil{
- fmt.Println("LoadAliPayPublicCertFromFile error", err.Error(), alipayConfig.AliPayPublicCertFile)
- return
- }
- }
- }
- /***********************************************************/
- // 支付参数
- type PayParams struct{
- // 请求上下文
- Ctx *entitys.CtrlContext
- // 订单标题
- Subject string
- // 交易单号(最长64位)
- OutTradeNo string
- // 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]
- TotalAmount string
- // 销售产品码,与支付宝签约的产品码名称。 注:目前仅支持FAST_INSTANT_TRADE_PAY
- ProductCode string
- }
|