|
@@ -12,27 +12,79 @@ var alipayClient *alipay.Client = nil
|
|
|
|
|
|
|
|
var alipayConfig struct {
|
|
var alipayConfig struct {
|
|
|
AppId string // app id
|
|
AppId string // app id
|
|
|
|
|
+ SignMode string // 签名模式,common:普通公钥;cert:公钥证书
|
|
|
AppPrivateKeyFile string // 保存支付宝开发平台助手生成应用密钥(第一个页面)内容的文件
|
|
AppPrivateKeyFile string // 保存支付宝开发平台助手生成应用密钥(第一个页面)内容的文件
|
|
|
|
|
+
|
|
|
|
|
+ // 签名模式为普通公钥所需的文件
|
|
|
|
|
+ AliPayPublicKeyFile string // 支付宝支付公钥文件
|
|
|
|
|
+
|
|
|
|
|
+ // 签名模式为共钥证书所需的文件
|
|
|
AppPublicCertFile string // 应用公钥证书,获取csr并上传csr后获得的
|
|
AppPublicCertFile string // 应用公钥证书,获取csr并上传csr后获得的
|
|
|
AliPayRootCertFile string // 支付宝根证书,获取csr并上传csr后获得的
|
|
AliPayRootCertFile string // 支付宝根证书,获取csr并上传csr后获得的
|
|
|
AliPayPublicCertFile string // 支付宝公钥证书,获取csr并上传csr后获得的
|
|
AliPayPublicCertFile string // 支付宝公钥证书,获取csr并上传csr后获得的
|
|
|
|
|
+
|
|
|
AliPayCallback string // 支付宝完整回调信息接口url,既notifyurl
|
|
AliPayCallback string // 支付宝完整回调信息接口url,既notifyurl
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func init(){
|
|
func init(){
|
|
|
alipayConfig.AppId = config.AppConfig.GetKey("alipay_appid")
|
|
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.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.AppPublicCertFile = config.AppConfig.GetKey("alipay_app_public_cert_file") // 应用公钥证书,获取csr并上传csr后获得的
|
|
|
alipayConfig.AliPayRootCertFile = config.AppConfig.GetKey("alipay_root_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.AliPayPublicCertFile = config.AppConfig.GetKey("alipay_public_cert_file")// 支付宝公钥证书,获取csr并上传csr后获得的
|
|
|
|
|
+
|
|
|
|
|
+ // 回调
|
|
|
alipayConfig.AliPayCallback = config.AppConfig.GetKey("alipay_callback") // 支付宝完整回调信息接口url,既notifyurl
|
|
alipayConfig.AliPayCallback = config.AppConfig.GetKey("alipay_callback") // 支付宝完整回调信息接口url,既notifyurl
|
|
|
|
|
|
|
|
bytess , err := ioutil.ReadFile(alipayConfig.AppPrivateKeyFile)
|
|
bytess , err := ioutil.ReadFile(alipayConfig.AppPrivateKeyFile)
|
|
|
if err != nil{
|
|
if err != nil{
|
|
|
- fmt.Println("init alipay error, app private key file", alipayConfig.AppPrivateKeyFile, "does not exist")
|
|
|
|
|
|
|
+ fmt.Println("init alipay error, app private key file", alipayConfig.AppPrivateKeyFile, "does not exist", err.Error())
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
alipayClient, err = alipay.New(alipayConfig.AppId, string(bytess), true)
|
|
alipayClient, err = alipay.New(alipayConfig.AppId, string(bytess), 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
|
|
|
|
|
+ }
|
|
|
|
|
+ err = alipayClient.LoadAliPayPublicKey(string(bytess))
|
|
|
|
|
+ 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
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/***********************************************************/
|
|
/***********************************************************/
|