package pay import ( "code.fnuoos.com/go_rely_warehouse/zyos_go_pay.git/lib/local_alipay" local_wxpay "code.fnuoos.com/go_rely_warehouse/zyos_go_pay.git/lib/local_wechat" "code.fnuoos.com/go_rely_warehouse/zyos_go_pay.git/md" zhios_pay_utils "code.fnuoos.com/go_rely_warehouse/zyos_go_pay.git/utils" "fmt" "github.com/iGoogle-ink/gopay" v3 "github.com/iGoogle-ink/gopay/wechat/v3" "github.com/iGoogle-ink/gotil/xlog" "github.com/pkg/errors" ) //自有支付 支付宝 func Alipay(args map[string]string) (string, error) { var paySet = &md.PayData{ PayAppCertSn: args["pay_app_cert_sn"], PayAlipayRootCertSn: args["pay_alipay_root_cert_sn"], PayAlipayrsaPublicKey: args["pay_alipayrsa_public_key"], PayAliUseType: args["pay_ali_use_type"], WxAppletFilepathUrl: args["wx_applet_filepath_url"], } if args["private_key"] == "" || args["app_id"] == "" { return "", errors.New("请在后台正确配置支付宝") } var param interface{} var err error switch args["platform"] { case md.PLATFORM_ALIPAY_APPLET: param, err = local_alipay.TradeCreate(args["app_id"], args["private_key"], args["subject"], args["ord_id"], args["amount"], args["notify_url"], args["rsa"], args["pkcs"], paySet) case md.PLATFORM_WAP: param, err = local_alipay.TradeWapPay(args["app_id"], args["private_key"], args["subject"], args["ord_id"], args["amount"], args["notify_url"], args["rsa"], args["pkcs"], args["page_url"], paySet) case md.PLATFORM_ANDROID, md.PLATFORM_IOS: param, err = local_alipay.TradeAppPay(args["app_id"], args["private_key"], args["subject"], args["ord_id"], args["amount"], args["notify_url"], args["rsa"], args["pkcs"], paySet) default: return "", errors.New("支付平台不存在") } if err != nil { fmt.Println("支付宝错误日志") fmt.Println(param) fmt.Println(err) return "", errors.New("支付宝订单创建失败") } return zhios_pay_utils.AnyToString(param), nil } func AlipayApp(args map[string]string) (string, error) { var paySet = &md.PayData{ PayAppCertSn: args["pay_app_cert_sn"], PayAlipayRootCertSn: args["pay_alipay_root_cert_sn"], PayAlipayrsaPublicKey: args["pay_alipayrsa_public_key"], PayAliUseType: args["pay_ali_use_type"], WxAppletFilepathUrl: args["wx_applet_filepath_url"], } if args["private_key"] == "" || args["app_id"] == "" { return "", errors.New("请在后台正确配置支付宝") } param, err := local_alipay.TradeAppPay(args["app_id"], args["private_key"], args["subject"], args["ord_id"], args["amount"], args["notify_url"], args["rsa"], args["pkcs"], paySet) if err != nil { fmt.Println("支付宝错误日志") fmt.Println(param) fmt.Println(err) return "", errors.New("支付宝订单创建失败") } return zhios_pay_utils.AnyToString(param), nil } func AlipayWap(args map[string]string) (string, error) { var paySet = &md.PayData{ PayAppCertSn: args["pay_app_cert_sn"], PayAlipayRootCertSn: args["pay_alipay_root_cert_sn"], PayAlipayrsaPublicKey: args["pay_alipayrsa_public_key"], PayAliUseType: args["pay_ali_use_type"], WxAppletFilepathUrl: args["wx_applet_filepath_url"], } if args["private_key"] == "" || args["app_id"] == "" { return "", errors.New("请在后台正确配置支付宝") } param, err := local_alipay.TradeWapPay(args["app_id"], args["private_key"], args["subject"], args["ord_id"], args["amount"], args["notify_url"], args["rsa"], args["pkcs"], args["page_url"], paySet) if err != nil { fmt.Println("支付宝错误日志") fmt.Println(param) fmt.Println(err) return "", errors.New("支付宝订单创建失败") } return zhios_pay_utils.AnyToString(param), nil } func AlipayApplet(args map[string]string) (string, error) { var paySet = &md.PayData{ PayAppCertSn: args["pay_app_cert_sn"], PayAlipayRootCertSn: args["pay_alipay_root_cert_sn"], PayAlipayrsaPublicKey: args["pay_alipayrsa_public_key"], PayAliUseType: args["pay_ali_use_type"], WxAppletFilepathUrl: args["wx_applet_filepath_url"], } if args["private_key"] == "" || args["app_id"] == "" { return "", errors.New("请在后台正确配置支付宝") } param, err := local_alipay.TradeCreate(args["app_id"], args["private_key"], args["subject"], args["ord_id"], args["amount"], args["notify_url"], args["rsa"], args["pkcs"], paySet) if err != nil { fmt.Println("支付宝错误日志") fmt.Println(param) fmt.Println(err) return "", errors.New("支付宝订单创建失败") } return zhios_pay_utils.AnyToString(param), nil } //自有支付 微信支付 // app支付v2 func WxAppPay(params *md.WxPayParams) (map[string]string, error) { appId := params.PayWxAppid mchId := params.PayWxMchId apiKey := params.PayWxApiKey notifyUrl := params.NotifyUrl client := local_wxpay.NewClient(appId, mchId, apiKey, true) r, err := local_wxpay.TradeAppPay(client, params.Subject, params.OrdId, params.Amount, notifyUrl) return r, err } // H5支付v2 func WxH5Pay(params *md.WxPayParams) (map[string]string, error) { appId := params.PayWxAppid mchId := params.PayWxMchId apiKey := params.PayWxApiKey notifyUrl := params.NotifyUrl client := local_wxpay.NewClient(appId, mchId, apiKey, true) r, err := local_wxpay.TradeH5Pay(client, params.Subject, params.OrdId, params.Amount, notifyUrl) return r, err } // 小程序v2 func WxMiniProgPay(params *md.WxPayParams) (map[string]string, error) { appId := params.PayWxAppid mchId := params.PayWxMchId apiKey := params.PayWxApiKey notifyUrl := params.NotifyUrl client := local_wxpay.NewClient(appId, mchId, apiKey, true) if params.ThirdPartyWechatOpenid == "" { return nil, errors.New("请先授权微信") } r, err := local_wxpay.TradeMiniProgPay(client, params.Subject, params.OrdId, params.Amount, notifyUrl, params.ThirdPartyWechatOpenid) return r, err } // app支付V3 func WxAppPayV3(params *md.WxPayParams) (map[string]string, error) { appId := params.PayWxAppid mchId := params.PayWxMchId notifyUrl := params.NotifyUrl SerialNo := params.PayWxApiKey ApiV3Key := params.PayWxApiKey PKContent := params.PayWxApiKey client, err := v3.NewClientV3(appId, mchId, SerialNo, ApiV3Key, PKContent) if err != nil { xlog.Error(err) return nil, err } client.DebugSwitch = gopay.DebugOff r, err := local_wxpay.TradeAppPayV3(client, params.Subject, params.OrdId, params.Amount, notifyUrl) return r, err } // 微信JSAPI支付 func WxAppJSAPIPay(params *md.WxPayParams) (map[string]string, error) { appId := params.PayWxAppid mchId := params.PayWxMchId apiKey := params.PayWxApiKey notifyUrl := params.NotifyUrl client := local_wxpay.NewClient(appId, mchId, apiKey, true) if params.ThirdPartyWechatOpenid == "" { return nil, errors.New("请先授权微信") } r, err := local_wxpay.TradeJSAPIPay(client, params.Subject, params.OrdId, params.Amount, notifyUrl, params.ThirdPartyWechatOpenid) return r, err } // H5支付V3 func WxH5PayV3(params *md.WxPayParams) (string, error) { appId := params.PayWxAppid mchId := params.PayWxMchId apiKey := params.PayWxApiKey notifyUrl := params.NotifyUrl client := local_wxpay.NewClient(appId, mchId, apiKey, false) _, err := local_wxpay.TradeH5Pay(client, params.Subject, params.OrdId, params.Amount, notifyUrl) return "", err } // 小程序V3 func WxMiniProgPayV3(params *md.WxPayParams) (string, error) { appId := params.PayWxAppid mchId := params.PayWxMchId notifyUrl := params.NotifyUrl SerialNo := params.PayWxApiKey ApiV3Key := params.PayWxApiKey PKContent := params.PayWxApiKey client, err := v3.NewClientV3(appId, mchId, SerialNo, ApiV3Key, PKContent) if err != nil { xlog.Error(err) return "", err } client.DebugSwitch = gopay.DebugOff r, err := local_wxpay.TradeMiniProgPayV3(client, params.Subject, params.OrdId, params.Amount, notifyUrl) return r, err }