设为首页 加入收藏

TOP

微信支付-golang后端处理(二)
2017-09-30 13:28:13 】 浏览:8523
Tags:支付 -golang 后端 处理
(): GetOrderByOrderNoDb error.")
        return "", err
    }
    nonceStr := GetRandomString(32)
 
 
    //请求UnifiedOrder的代码
    var yourReq UnifyOrderReq
    yourReq.Appid = WX_APP_ID //微信开放平台我们创建出来的app的app id
    yourReq.Body = bookOrder.LineNum
    yourReq.Mch_id = WX_MCH_ID
    yourReq.Nonce_str = nonceStr
    yourReq.Notify_url = WX_NOTIFY_URL
    yourReq.Trade_type = "APP"
    yourReq.Spbill_create_ip = WX_INVOKE_API_IP
    yourReq.Total_fee = int(bookOrder.TotalPrice * 100) //单位是分
    yourReq.Out_trade_no = orderNo
 
 
    var m map[string]interface{}
    m = make(map[string]interface{}, 0)
    m["appid"] = yourReq.Appid
    m["body"] = yourReq.Body
    m["mch_id"] = yourReq.Mch_id
    m["notify_url"] = yourReq.Notify_url
    m["trade_type"] = yourReq.Trade_type
    m["spbill_create_ip"] = yourReq.Spbill_create_ip
    m["total_fee"] = yourReq.Total_fee
    m["out_trade_no"] = yourReq.Out_trade_no
    m["nonce_str"] = yourReq.Nonce_str
    yourReq.Sign = o.wxpayCalcSign(m, WX_PAY_KEY) // 这个是计算wxpay签名的函数上面已贴出
 
 
    bytes_req, err := xml.Marshal(yourReq)
 
 
    if err != nil {
        log4go.Error("wxUnifyChargeReq(): xml.Marshal error:%s", err)
        return "", err
    }
 
 
    str_req := string(bytes_req)
    //wxpay的unifiedorder接口需要http body中xmldoc的根节点是<xml></xml>这种,所以这里需要replace一下
    str_req = strings.Replace(str_req, "XUnifyOrderReq", "xml", -1)
    bytes_req = []byte(str_req)
    log4go.Debug("wxUnifyChargeReq()...str_req:%s", str_req)
 
 
    //发送unified order请求.
    req, err := http.NewRequest("POST", WX_UNIFIEDORDER_API, bytes.NewReader(bytes_req))
    if err != nil {
        log4go.Error("wxUnifyChargeReq(): http.NewRequest error:%s", err)
        return "", err
    }
    req.Header.Set("Accept", "application/xml")
    //这里的http header的设置是必须设置的.
    req.Header.Set("Content-Type", "application/xml;charset=utf-8")
 
 
&nbs
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Go语言之旅 下一篇Golang学习-第一篇 Golang的简单..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目