weixin_api/wxpay/example/orderquery.ashx.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using WxPayAPI;

namespace weixin_api.wxpay.example
{
    /// <summary>
    /// orderquery 的摘要说明
    /// </summary>
    public class orderquery : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            if ("POST" == context.Request.RequestType)
            {
                System.IO.Stream sm = context.Request.InputStream;//获取post正文
                int len = (int)sm.Length;//post数据长度
                byte[] inputByts = new byte[len];//字节数据,用于存储post数据
                sm.Read(inputByts, 0, len);//将post数据写入byte数组中
                sm.Close();//关闭IO流

                //**********下面是把字节数组类型转换成字符串**********

                string data = Encoding.GetEncoding("utf-8").GetString(inputByts);//转为unicode编码
                //data = context.Server.UrlDecode(data);//下面解释一下Server.UrlDecode和Server.UrlEncode的作用

                string out_trade_no = "", transaction_id = "";
                string trade_state = "";
                Boolean cs_moren = false;
                string[] dataArray = data.Split(new char[2] { '&', '=' });
                Dictionary<string, string> _tmpkeyimg = new Dictionary<string, string>();
                for (int i = 0; i < dataArray.Length; i++)
                {
                    _tmpkeyimg.Add(dataArray[i], dataArray[++i]);
                }
                if (_tmpkeyimg != null)
                {
                    out_trade_no = _tmpkeyimg.ContainsKey("out_trade_no") ? context.Server.UrlDecode(_tmpkeyimg["out_trade_no"]) : "";
                    if (string.IsNullOrEmpty(transaction_id) && string.IsNullOrEmpty(out_trade_no))
                    {
                        context.Response.Write("<script LANGUAGE='javascript'>alert('微信订单号和商户订单号至少填写一个,微信订单号优先!');</script>");
                        return;
                    }
                    //调用订单查询接口,如果内部出现异常则在页面上显示异常原因
                    string result = OrderQuery.Run(transaction_id, out_trade_no);//调用订单查询业务逻辑
                    result = result!=string.Empty?result.TrimEnd('\n'):"";
                    //string[] dataArray2 = result.Split(new char[2] { '\n',','});
                    //返回数据格式
                    //appid=wx6e7b41aded8b00ef attach=test bank_type=CFT cash_fee=1 fee_type=CNY is_subscribe=Y mch_id=1540617331 nonce_str=sk8kL3CJ4zPcdwLY openid=oaC4153y6k9HtPmoUjjGBywNBX4c out_trade_no=154061733120190627102355527 result_code=SUCCESS return_code=SUCCESS return_msg=OK sign=03922905931080BBEC6AF366313A81093A234F5005701956A5D71BD9BD9C7741 time_end=20190627102443 total_fee=1 trade_state=SUCCESS trade_state_desc=支付成功 trade_type=NATIVE transaction_id=4200000299201906270622452228
                    string[] dataArray2 = result.Split(new string[] { "\n", "=" }, StringSplitOptions.None);
                    Dictionary<string, string> _tmpkeyimg2 = new Dictionary<string, string>();
                    for (int i = 0; i < dataArray2.Length; i++)
                    {
                        _tmpkeyimg2.Add(dataArray2[i], dataArray2[++i]);
                    }
后面还有 38 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。