zoukankan      html  css  js  c++  java
  • 微信支付JSAPI支付V3查询订单

    接口链接

    https://api.mch.weixin.qq.com/pay/orderquery

    请求参数:

    字段名

    变量名

    必填

    类型

    示例值

    描述

    公众账号ID

    appid

    String(32)

    wx8888888888888888

    微信分配的公众账号ID

    商户号

    mch_id

    String(32)

    1900000109

    微信支付分配的商户号

    微信订单号

    transaction_id

    String(32)

    013467007045764

    微信的订单号,优先使用

    商户订单号

    out_trade_no

    String(32)

    1217752501201407033233368018

    商户系统内部的订单号,当没提供transaction_id时需要传这个。

    随机字符串

    nonce_str

    String(32)

    C380BEC2BFD727A4B6845133519F3AD6

    随机字符串,不长于32位。推荐随机数生成算法

    签名

    sign

    String(32)

    5K8264ILTKCH16CQ2502SI8ZNMTM67VS

    签名,详见签名生成算法

    返回结果

    字段名

    变量名

    必填

    类型

    示例值

    描述

    返回状态码

    return_code

    String(16)

    SUCCESS

    SUCCESS/FAIL

    此字段是通信标识,非交易标识,交易是否成功需要查看trade_state来判断

    返回信息

    return_msg

    String(128)

    签名失败

    返回信息,如非空,为错误原因

    签名失败

    参数格式校验错误

    以下字段在return_code为SUCCESS的时候有返回

    字段名

    变量名

    必填

    类型

    示例值

    描述

    公众账号ID

    appid

    String(32)

    wx8888888888888888

    微信分配的公众账号ID

    商户号

    mch_id

    String(32)

    1900000109

    微信支付分配的商户号

    随机字符串

    nonce_str

    String(32)

    5K8264ILTKCH16CQ2502SI8ZNMTM67VS

    随机字符串,不长于32位。推荐随机数生成算法

    签名

    sign

    String(32)

    C380BEC2BFD727A4B6845133519F3AD6

    签名,详见签名生成算法

    业务结果

    result_code

    String(16)

    SUCCESS

    SUCCESS/FAIL

    错误代码

    err_code

    String(32)

    SYSTEMERROR

    详细参见第6节错误列表

    错误代码描述

    err_code_des

    String(128)

    系统错误

    结果信息描述

    以下字段在return_code 和result_code都为SUCCESS的时候有返回

    字段名

    变量名

    必填

    类型

    示例值

    描述

    设备号

    device_info

    String(32)

    013467007045764

    微信支付分配的终端设备号,

    用户标识

    openid

    String(128)

    wxd930ea5d5a258f4f

    用户在商户appid下的唯一标识

    是否关注公众账号

    is_subscribe

    String(1)

    Y

    用户是否关注公众账号,Y-关注,N-未关注,仅在公众账号类型支付有效

    交易类型

    trade_type

    String(16)

    JSAPI

    调用接口提交的交易类型,取值如下:JSAPI,NATIVE,APP,MICROPAY,详细说明见参数规定

    交易状态

    trade_state

    String(32)

    SUCCESS

    SUCCESS—支付成功

    REFUND—转入退款

    NOTPAY—未支付

    CLOSED—已关闭

    REVOKED—已撤销

    USERPAYING--用户支付中

    PAYERROR--支付失败(其他原因,如银行返回失败)

    付款银行

    bank_type

    String(16)

    CMC

    银行类型,采用字符串类型的银行标识

    总金额

    total_fee

    Int

    100

    订单总金额,单位为分

    货币种类

    fee_type

    String(8)

    CNY

    货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型

    现金支付金额

    cash_fee

    Int

    100

    现金支付金额订单现金支付金额,详见支付金额

    现金支付货币类型

    cash_fee_type

    String(16)

    CNY

    货币类型,符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型

    代金券或立减优惠金额

    coupon_fee

    Int

    100

    “代金券或立减优惠”金额<=订单总金额,订单总金额-“代金券或立减优惠”金额=现金支付金额,详见支付金额

    代金券或立减优惠使用数量

    coupon_count

    Int

    1

    代金券或立减优惠使用数量

    代金券或立减优惠批次ID

    coupon_batch_id_$n

    String(20)

    100

    代金券或立减优惠批次ID ,$n为下标,从1开始编号

    代金券或立减优惠ID

    coupon_id_$n

    String(20)

    10000 

    代金券或立减优惠ID, $n为下标,从1开始编号

    单个代金券或立减优惠支付金额

    coupon_fee_$n

    Int

    100

    单个代金券或立减优惠支付金额, $n为下标,从1开始编号

    微信支付订单号

    transaction_id

    String(32)

    1217752501201407033233368018

    微信支付订单号

    商户订单号

    out_trade_no

    String(32)

    1217752501201407033233368018

    商户系统的订单号,与请求一致。

    商家数据包

    attach

    String(128)

    123456

    商家数据包,原样返回

    支付完成时间

    time_end

    String(14)

    20141030133525

    订单支付时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。其他详见时间规则

    交易状态描述

    trade_state_desc

    String(256)

    支付失败,请重新下单支付

    对当前查询订单状态的描述和下一步操作的指引

    后台代码:

    /// <summary>
            /// 订单查询
            /// </summary>
            /// <returns></returns>
            public JsonResult OrderQuery(WXM_TRADE_Model trade)
            {
              
                string nonceStr = Senparc.Weixin.MP.TenPayLibV3.TenPayV3Util.GetNoncestr();
    
                Senparc.Weixin.MP.TenPayLibV3.RequestHandler packageReqHandler = new Senparc.Weixin.MP.TenPayLibV3.RequestHandler(null);
    
                //设置package订单参数
                packageReqHandler.SetParameter("appid", AppId);          //公众账号ID
                packageReqHandler.SetParameter("mch_id", MchId);          //商户号
                //packageReqHandler.SetParameter("transaction_id", "");       //填入微信订单号 
                packageReqHandler.SetParameter("out_trade_no", trade.TRADE_NO);         //填入商家订单号
                packageReqHandler.SetParameter("nonce_str", nonceStr);             //随机字符串
    
                string querysign = packageReqHandler.CreateMd5Sign("key", Key);
    
                packageReqHandler.SetParameter("sign", querysign);                        //签名
    
                string data = packageReqHandler.ParseXML();
    
                var result = Senparc.Weixin.MP.AdvancedAPIs.TenPayV3.OrderQuery(data);
                var res =System.Xml.Linq.XDocument.Parse(result);
    
                string return_code = res.Element("xml").Element("return_code").Value;
                string trade_state = res.Element("xml").Element("trade_state").Value;//SUCCESS-支付成功,REFUND-转入退款,NOTPAY-未支付,CLOSED-已关闭,REVOKED-已撤销,USERPAYING-用户支付中,PAYERROR-支付失败
    
                Hashtable hashtable = new Hashtable();
    
                hashtable.Add("trade_state", trade_state);
    
                return Json(hashtable);
            }
  • 相关阅读:
    SQL Server 触发器
    [转]SQL Server 存储过程
    C#-DataView及其用法
    IEnumerable和IEnumerator 详解 And迭代器
    C#多线程学习(六) 互斥对象
    GDI简单的图片处理
    C#委托的介绍(delegate、Action、Func、predicate)
    接口的理解与使用《转》
    Mysql drop、delete和truncate的区别
    如何查看笔记本CPU是几核的?
  • 原文地址:https://www.cnblogs.com/rockchen/p/4479017.html
Copyright © 2011-2022 走看看