コード例 #1
0
        public void TestSHA256Signature()
        {
            var data = new WechatPayData();

            data.SetStringValue("appid", BaseConfig.AppId);
            data.SetStringValue("mch_id", BaseConfig.MchId);
            var sha256Str = SignatureHelper.CalcSignature(data.ToUrlParams(), BaseConfig.Key, SignType.SHA256);

            Assert.AreEqual <string>("81E64AC5312645C3DC7D3F55C358C8A0F8838FD28BF9C6A80A95BBAC87EC6CBD", sha256Str);
        }
コード例 #2
0
        public void TestMd5Signature()
        {
            var data = new WechatPayData();

            data.SetStringValue("appid", BaseConfig.AppId);
            data.SetStringValue("mch_id", BaseConfig.MchId);
            var md5Str = SignatureHelper.CalcSignature(data.ToUrlParams(), BaseConfig.Key);

            Assert.AreEqual <string>("9F64710000181B60AC5743C94455D2CB", md5Str);
        }
コード例 #3
0
ファイル: WechatPayHelper.cs プロジェクト: jjg0519/WeChatSDK
        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);
        }