微信支付-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);
        }
时间: 2024-08-06 21:57:10

微信支付-JSAPI支付V3-查询订单的相关文章

微信支付-JSAPI支付V3-发起一次支付请求

JSAPI支付业务流程:图片来源于:http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=7_4 准备工作:需要先在项目中引用Senparc.WeiXin.dll和Senparc.WeiXin.MP.dll,开源项目见:https://github.com/JeffreySu/WeiXinMPSDK 第一步:绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. 第二步:引入JS文件 在需要调用JS接口的

微信支付JSAPI支付问题

JS支付脚本没有执行 调起微信支付的JS脚本为 WeixinJSBridge.invoke( 'getBrandWCPayRequest', { "appId": "{{.AppId}}", //公众号名称,由商户传入 "timeStamp": "{{.TimeStamp}}",//时间戳,自1970年以来的秒数 "nonceStr": "{{.NonceStr}}",//随机串 &qu

微信支付-JSAPI支付V3-关闭订单

接口链接 https://api.mch.weixin.qq.com/pay/closeorder 请求参数 字段名 变量名 必填 类型 示例值 描述 公众账号ID appid 是 String(32) wx8888888888888888 微信分配的公众账号ID 商户号 mch_id 是 String(32) 1900000109 微信支付分配的商户号 商户订单号 out_trade_no 否 String(32) 1217752501201407033233368018 商户系统内部的订单号

C# 微支付 JSAPI支付方式 V3.3.6版本

<script type="text/javascript">//结算 (订单号) function PayClearing(num) { $.ajax({ type: "POST", url: "/***/handler/***.ashx", data: "otype=Account&ids=" + num , async: false, success: function (msg) { if (msg

微信支付-JSAPI支付V3-支付通知接口

首先我们会在配置支付请求参数的时候,配置了回调地址(notify_url),支付完成微信服务器就会将结果推送到这个地址上,我们只是需要获取那些数据就可以了,然后根据处理相关业务. 后台代码: /// <summary> /// 微信服务器支付结果通知接口 /// </summary> /// <returns></returns> public ActionResult PayNotifyUrl() { Senparc.Weixin.MP.TenPayLib

微信支付-JSAPI支付V3-下载对账单

接口链接 https://api.mch.weixin.qq.com/pay/downloadbill 是否需要证书 不需要. 请求参数 字段名 变量名 必填 类型 示例值 描述 公众账号ID appid 是 String(32) wx8888888888888888 微信分配的公众账号ID 商户号 mch_id 是 String(32) 1900000109 微信支付分配的商户号 设备号 device_info 否 String(32) 013467007045764 微信支付分配的终端设备号

微信JSApi支付~集成到MVC环境后的最后一个坑(网上没有这种解决方案)

大叔第一人 之前写了关于微信的坑<微信JSApi支付~坑和如何填坑>,今天将微信的jsapi支付封装到了MVC环境里,当然也出现了一些新的坑,如支付参数应该是Json对象而不是Json字符串,这样也会应付引起“get_brand_wcpay_request:fail_invalid appid”这个大家都知道的异常,呵呵,解决方案网上说是“授权目录“,事实上,还有一种原因,那就是你的WeixinJSBridge.invoke方法里的参数应该是Json对象而不是字符串,这才是最重要的. 代码我们

asp.net微信jsapi支付

1.前台页面: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <meta name="viewpo

ThinkPHP5微信扫码支付

1.把微信官网下载的demo放在根目录/vendor/目录下,这里我的是/vendor/wxpay_pc目录 2.把cert里面的文件替换成自己项目的证书(登陆微信商户平台,账户中心,API安全下载) 3.把/wxpay_pc/lib目录下的WxPay.Config.php文件里的信息改成自己的信息,只需改以下四个就行: 3.把example/目录下的notify.php改名为PayNotifyCallBack.php  不改也没事,我是为了和该文件里的类名保持一致 4.把里面require_o