global.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package alipay
  2. import (
  3. "fmt"
  4. "github.com/smartwalle/alipay"
  5. "git.qianqiusoft.com/qianqiusoft/light-apiengine/config"
  6. "git.qianqiusoft.com/qianqiusoft/light-apiengine/entitys"
  7. "io/ioutil"
  8. )
  9. var alipayClient *alipay.Client = nil
  10. var alipayConfig struct {
  11. AppId string // app id
  12. AppPrivateKeyFile string // 保存支付宝开发平台助手生成应用密钥(第一个页面)内容的文件
  13. AppPublicCertFile string // 应用公钥证书,获取csr并上传csr后获得的
  14. AliPayRootCertFile string // 支付宝根证书,获取csr并上传csr后获得的
  15. AliPayPublicCertFile string // 支付宝公钥证书,获取csr并上传csr后获得的
  16. AliPayCallback string // 支付宝完整回调信息接口url,既notifyurl
  17. }
  18. func init(){
  19. alipayConfig.AppId = config.AppConfig.GetKey("appid")
  20. alipayConfig.AppPrivateKeyFile = config.AppConfig.GetKey("app_private_key_file") // 保存支付宝开发平台助手生成应用密钥(第一个页面)内容的文件
  21. alipayConfig.AppPublicCertFile = config.AppConfig.GetKey("app_public_cert_file") // 应用公钥证书,获取csr并上传csr后获得的
  22. alipayConfig.AliPayRootCertFile = config.AppConfig.GetKey("alipay_root_cert_file") // 支付宝根证书,获取csr并上传csr后获得的
  23. alipayConfig.AliPayPublicCertFile = config.AppConfig.GetKey("alipay_public_cert_file")// 支付宝公钥证书,获取csr并上传csr后获得的
  24. alipayConfig.AliPayCallback = config.AppConfig.GetKey("alipay_callback") // 支付宝完整回调信息接口url,既notifyurl
  25. bytess , err := ioutil.ReadFile(alipayConfig.AppPrivateKeyFile)
  26. if err != nil{
  27. fmt.Println("init alipay error, app private key file", alipayConfig.AppPrivateKeyFile, "does not exist")
  28. return
  29. }
  30. alipayClient, err = alipay.New(alipayConfig.AppId, string(bytess), true)
  31. }
  32. /***********************************************************/
  33. // 支付参数
  34. type PayParams struct{
  35. // 请求上下文
  36. Ctx *entitys.CtrlContext
  37. // 订单标题
  38. Subject string
  39. // 交易单号(最长64位)
  40. OutTradeNo string
  41. // 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]
  42. TotalAmount string
  43. // 销售产品码,与支付宝签约的产品码名称。 注:目前仅支持FAST_INSTANT_TRADE_PAY
  44. ProductCode string
  45. }