예제 #1
0
        public static async Task <QueryOrderResponse> QueryOrder(WechatPayBaseInfo payBaseInfo, QueryOrderRequest req)
        {
            var payData = new WechatPayData();

            payData.SetStringValue("appid", payBaseInfo.AppId);
            payData.SetStringValue("mch_id", payBaseInfo.MchId);
            if (!string.IsNullOrEmpty(req.TransactionId))
            {
                payData.SetStringValue("transaction_id", req.TransactionId);
            }
            else
            {
                payData.SetStringValue("out_trade_no", req.OutTradeNo);
            }
            payData.SetStringValue("nonce_str", req.NonceStr);
            payData.SetStringValue("sign_type", req.SignType == Enums.SignType.MD5 ? "MD5" : "HMAC-SHA256");
            var sign = SignatureHelper.CalcSignature(payData.ToUrlParams(), payBaseInfo.Key, req.SignType);

            payData.SetStringValue("sign", sign);
            var orderQueryRes = await HttpClientHelper.Post <QueryOrderResponse>("https://api.mch.weixin.qq.com/pay/orderquery", payData.ToXml());

            return(orderQueryRes);
        }
예제 #2
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="appId">公众账号ID</param>
 /// <param name="appSecret">APPID唯一凭证密钥</param>
 /// <param name="mchId">商户号</param>
 /// <param name="key">商户支付密钥Key,在商户平台(https://pay.weixin.qq.com)可以拿到</param>
 /// <param name="notifyUrl">通知URL地址,不能带参数</param>
 public WechatPayClient(string appId, string appSecret, string mchId, string key, string notifyUrl)
 {
     this.PAY_BASE_INFO = new WechatPayBaseInfo(appId, appSecret, mchId, key, notifyUrl);
 }