微信支付成功后(四)

官方API:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_2

微信支付成功后,微信服务器端回调到/example/ResultNotifyPage.aspx页面。

ResultNotify resultNotify = new ResultNotify(this);
resultNotify.ProcessNotify();

//ProcessNotify支付回调结果,先查询订单号,订单号没有问题,返回return_code和result_code都返回SUCCESS的时候交易成功,用户可以添加交易完成后的逻辑,然后返回给微信服务器端。



        public override void ProcessNotify()
        {
            WxPayData notifyData = GetNotifyData();

            //检查支付结果中transaction_id是否存在
            if (!notifyData.IsSet("transaction_id"))
            {
                //若transaction_id不存在,则立即返回结果给微信支付后台
                WxPayData res = new WxPayData();
                res.SetValue("return_code", "FAIL");
                res.SetValue("return_msg", "支付结果中微信订单号不存在");
                Log.Error(this.GetType().ToString(), "The Pay result is error : " + res.ToXml());
                page.Response.Write(res.ToXml());
                page.Response.End();
            }

            string transaction_id = notifyData.GetValue("transaction_id").ToString();

            //查询订单,判断订单真实性
            if (!QueryOrder(transaction_id))
            {
                //若订单查询失败,则立即返回结果给微信支付后台
                WxPayData res = new WxPayData();
                res.SetValue("return_code", "FAIL");
                res.SetValue("return_msg", "订单查询失败");
                Log.Error(this.GetType().ToString(), "Order query failure : " + res.ToXml());
                page.Response.Write(res.ToXml());
                page.Response.End();
            }
            //查询订单成功
            else
            {          //充值成功用户可以添加自己的逻辑
                WxPayData res = new WxPayData();
                res.SetValue("return_code", "SUCCESS");
                res.SetValue("return_msg", "OK");
                Log.Info(this.GetType().ToString(), "order query success : " + res.ToXml());
                page.Response.Write(res.ToXml());
                page.Response.End();
            }
        }

//QueryOrder查询订单:

  //查询订单
        private bool QueryOrder(string transaction_id)
        {
            WxPayData req = new WxPayData();
            req.SetValue("transaction_id", transaction_id);
            WxPayData res = WxPayApi.OrderQuery(req);
            if (res.GetValue("return_code").ToString() == "SUCCESS" &&
                res.GetValue("result_code").ToString() == "SUCCESS")
            {
                return true;
            }
            else
            {
                return false;
            }
        }
时间: 2024-08-07 04:13:42

微信支付成功后(四)的相关文章

ectouch 微信支付成功后订单状态未改变的解决办法 (转载)

原文地址: 微信支付支付成功后,返回到mobile/wx_native_callback.php 之前代码 define('IN_ECS', true); require(dirname(__FILE__) . '/include/init.php'); require(ROOT_PATH . 'include/lib_payment.php'); require_once(ROOT_PATH .'include/modules/payment/wx_new_jspay.php'); $paym

微信支付 支付成功后不跳转 ecshop微信支付 如下操作即可

微信--订单处理页: <?php    include("WxPayPubHelper.php");    //使用jsapi接口    $jsApi = new JsApi_pub();    //=========步骤1:网页授权获取用户openid============    //通过code获得openid    if (!isset($_GET['code']))    {        //触发微信返回code码        $url = $jsApi->c

微信支付完成后跳转的页面

微信支付完成后不能跳转指定的页面,多半原因是前段js写错了,也就是微信支付调起H5插件的那部分,这个是微信支付调h5插件的开发文档https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6 下面小编把自己的前段支付js送给大家参考 function 支付按钮(){ var appId = "${appid}"; var timeStamp = "${timeStamp}"; var

android 微信支付成功,未返回回调页面

可以弹出微信支付的界面,但是支付之后没有进入回调的Activity(WXPayEntryActivity ) 1. 回调的Activity(WXPayEntryActivity.java)必须放在:(你的包名+.wxapi)包内 例如:包名为com.example.ex_example 回调activity则放在名为com.example.ex_example.wxapi 包内

订单支付成功后存储过程 - MYSQL

BEGIN SET @userId = (SELECT user_id FROM t_shoporder WHERE id = orderId); /*修改订单状态,改成已支付*/ UPDATE t_shoporder SET `status` = 1,update_time = NOW() WHERE id = orderId; /*查询用户是否已经学习改课程*/ SET @count = (SELECT count(1) FROM t_course_user WHERE course_id

实现先pop后push的效果,如支付成功后的界面

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #18b5b1 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #e7e8eb } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #29a09f } span.s1 { color: #e

微信支付V3集成过程(Native)

长话短说,微信支付V3版本相比V2版本,简化许多接口,大大降低了商户的接入代价,只不过由于相关的集成说明文档写的过于笼统,细节描述不够具体,demo版本不够完善等等原因,被大家诟病. 最近基于业务需要,完成了微信支付的接入,选择的是公众号扫码支付(Native模式).在此把集成的大致过程贴出来,希望能对正在困扰的各位有所帮助. 整个交互过程分为四步: 1.商户:生成微信支付二维码 2.微信:扫描二维码,获取商户订单信息 3.微信:确认支付,调起微信支付模块,完成支付,回调商户通知接口 4.商户:

微信开发(一):用JSAPI做微信支付+微信卡包(代金券)

做微信支付前期准备: 1,服务好开通微信支付. 2,公众账号ID:AppId. 3,公众账号密钥:AppSecret. 4,微信支付密钥:Key. 第一步:获取用户信息并跳转到需要微信支付的页面 public void ProcessRequest (HttpContext context) { var returnUrl = "http://wap.yueyangdujia.com/ActivityOrder.aspx?id="+context.Request["id&qu

微信支付h5客户端开发步骤

第一步:用户同意授权,获取code 在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下 服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面: https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&s