|
@@ -12,6 +12,7 @@ import (
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"github.com/go-pay/gopay"
|
|
|
"github.com/go-pay/gopay/wechat"
|
|
|
+ wechatV3 "github.com/go-pay/gopay/wechat/v3"
|
|
|
"github.com/shopspring/decimal"
|
|
|
"net/http"
|
|
|
"strconv"
|
|
@@ -126,6 +127,58 @@ func UnifiedOrder(c *gin.Context) {
|
|
|
|
|
|
}
|
|
|
|
|
|
+func PayCashOut(c *gin.Context) {
|
|
|
+ var inData models.PayCashOutRequest
|
|
|
+ //var sqlData
|
|
|
+
|
|
|
+ if inData.CashType == "client" {
|
|
|
+ //先设置账户状态 为提现中,提现中不允许再操作,提现金额默认全部
|
|
|
+
|
|
|
+ } else if inData.CashType == "merchant" {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ app.Error(c, 400, errors.New("类型错误"), "类型错误")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ client := NewWechatService()
|
|
|
+
|
|
|
+ err := client.AddCertPkcs12FilePath("./apiclient_cert.p12")
|
|
|
+ if err != nil {
|
|
|
+ app.Error(c, 400, err, err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ bm := make(gopay.BodyMap)
|
|
|
+
|
|
|
+ partnerTradeNo := common.GetRandomString(32)
|
|
|
+
|
|
|
+ bm.Set("nonce_str", common.GetRandomString(32))
|
|
|
+ bm.Set("partner_trade_no", partnerTradeNo)
|
|
|
+ bm.Set("openid", inData.OpenId)
|
|
|
+ bm.Set("check_name", "FORCE_CHECK")
|
|
|
+ bm.Set("re_user_name", inData.UserName)
|
|
|
+ bm.Set("amount", 30) // 企业付款金额,单位为分
|
|
|
+ bm.Set("desc", "测试转账") // 企业付款备注,必填。注意:备注中的敏感词会被转成字符*
|
|
|
+ bm.Set("spbill_create_ip", "127.0.0.1")
|
|
|
+
|
|
|
+ wxResp, err := client.Transfer(c, bm)
|
|
|
+ if err != nil {
|
|
|
+ app.Error(c, 400, err, "提现失败")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if wxResp.ReturnCode != "SUCCESS" {
|
|
|
+ app.Error(c, 400, errors.New(wxResp.ReturnMsg), "提现")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if wxResp.ResultCode != "SUCCESS" {
|
|
|
+ app.Error(c, 400, errors.New(wxResp.ErrCode+"--"+wxResp.ErrCodeDes), "提现")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
func PayCallBack(c *gin.Context) {
|
|
|
var payLog shanghu.PayCallbackLog
|
|
|
var payTrans shanghu.ClientPayTrans
|
|
@@ -212,3 +265,49 @@ func NewWechatService() *wechat.Client {
|
|
|
|
|
|
return client
|
|
|
}
|
|
|
+
|
|
|
+func NewWechatServiceV3() (*wechatV3.ClientV3, error) {
|
|
|
+
|
|
|
+ key := `MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQD/RTrS1Tycrskr
|
|
|
+SkuzdLNmOic4UklFtoyKtKDIeklbQFvynJBC1wYaitoOqFkdGWagkcuqRqJOcgEQ
|
|
|
+T8DRDD/rnVKTrnntevUSW3vZYwMscomK3dgjRRui5GLY5wYHuKhp02bldLrhPKNy
|
|
|
+wT5IYhoDwQLmf5IrURbtT8bKpdC+NyEEfw+d/mHMK56w80YKfzFtSmjoB9SkWDLg
|
|
|
+YFBlw91C78E73uqhCKnArN7p2iJe+tsp7EGpDVcdowqcMKjY2YiNPY6ABZaI9YJx
|
|
|
+nRQs5Sjm6YSsJujMR5rQVZ3HCfLlzxLpPyHfqffbJ+vviend1PJ/ugJeM2hehn1d
|
|
|
+LrpKuWyHAgMBAAECggEAIbow6nhYGM+TLtATLnPF3ETkt7FPkxFqgk0ZTUOy+4aG
|
|
|
+X4jGGr60RL+Bzhv6Ijkf8SkyQp4whbLUZyZScIxwyZ2wsmiEHZd4V+OUeoV1fuLn
|
|
|
+P1zOWOKhoyUP1l630j9YqRrQZpLEuku7wMa9huzHSSWwT2odkvGU2OgIeO/to6P7
|
|
|
+gIE4Q+3pNmTdaXJweUlVoz6sdqsSWAZ729SxzY34zcRyXI+feBQb9n/C1hr9+Ge4
|
|
|
+KbBsvrECy0eUNiAT9f5dPwgwjyRpR9gJ8xxaezIYfxdpTTW3EB1Gf+xPX4X7ml2B
|
|
|
+zObPN2HEwLHhrwbOXLFP8F/62TK4fIGe2yXPIKIe8QKBgQD/t4Xy9pTFrmNhDLMe
|
|
|
+ZMHdj9XMoM/izcquI6rq4pGWLtnyxIcFuXiqvPszbJL+urCc1+HqfPAVScryEg5W
|
|
|
+b6AvLENVhC5E3GcZA50ciAr+PUrB1UXH0vbbc7HP/Mofsz61kxEW2SvKaPoKhW8M
|
|
|
+IavoVWDJkcLHnjM20Gt7tioEXwKBgQD/jZR7FDSB8VCRp687QcH4s0HyAWaRVhmC
|
|
|
+qId2xVbPFVlbm4BWcQVWPdsUei29sPPtcvzREFStKwTmu2FSUfoDv3uM4Nl2+h/Y
|
|
|
+pbhfuYfHd79UZa0OtT9njJHZcYPwKRmZQIVBVHSJFSZy2HSGLe9AdI7gAsNMx/Mm
|
|
|
+eqZDU79I2QKBgQCBSNoSIpTI9QgNkwwkO7DAQe5IDK3N71mffSz2oCIXGgza7n2N
|
|
|
+aV4WhIFEWIpg+yY7xfHUSeJgAPT4OiTBkqIb93b7j16NNhlxzh/qwuU78OUQ5rDm
|
|
|
+/EQOY4nsq9PM/ySfTIGBWb8IENcJ5rhkG8n8Jt5OSsF9hwBBoFIXM9w+ZQKBgQD1
|
|
|
+rArw43Sy8uTskZKA2e96ggHEgBo1X9s4Y4GO6ZlRjQmRaoVPFGn4BZEGN4qfkGx/
|
|
|
+egqXhSaSLwgQNFUUCWDbl4pT3ZjRqxVQdcgwpjBkzratkO10dUOV7WoM6vbWuvwz
|
|
|
++vXf3ywE2MNUpsgmciROB3+O1LkhqBsVg9UwZmM+yQKBgQD6yBvxOaHXBSZncz+m
|
|
|
+3SpdbcRjK82i3IUJ3sl18J7YEPer0FclsUcQOluqBbHTOAr8letWPrKnjZGuyFfg
|
|
|
+gAjwa8uLSyfEEcWb9WcObvud2GNxS/LiI0GnW9ittvT29JvOhmUUtnty5/TiWIsi
|
|
|
+slm2kO53RSw9brymV8PAX2+SXg==`
|
|
|
+
|
|
|
+ client, err := wechatV3.NewClientV3("wx25357518f710b8ce", "219B3AF3B5F17D4C2F145EE318188708318DD7BD", "9x9ydkdk0nzsa4mr2ucq75grlvt9n8l3", key)
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ // 启用自动同步返回验签,并定时更新微信平台API证书(开启自动验签时,无需单独设置微信平台API证书和序列号)
|
|
|
+ err = client.AutoVerifySign()
|
|
|
+ if err != nil {
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ // 打开Debug开关,输出日志,默认是关闭的
|
|
|
+ //client.DebugSwitch = gopay.DebugOn
|
|
|
+
|
|
|
+ return client, nil
|
|
|
+}
|