Exemple #1
0
        //支付宝支付异步回调
        public ContentResult alinotifyurl()
        {
            SortedDictionary <string, string> sPara = GetRequestPost();

            if (sPara.Count > 0)//判断是否有带返回参数
            {
                string out_trade_no = Request.Form["out_trade_no"];
                string notify_id    = Request.Form["notify_id"];
                string sign         = Request.Form["sign"];
                string trade_no     = Request.Form["trade_no"];
                string trade_status = Request.Form["trade_status"];
                LogUtils.LogInfo($"ali异步回调参数out_trade_no={out_trade_no}&notify_id={notify_id}&sign={sign}&trade_no={trade_no}&trade_status={trade_status}");
                bool verifyResult = new Notify().Verify(sPara, notify_id, sign);

                if (verifyResult)//验证成功
                {
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    //请在这里加上商户的业务逻辑程序代码
                    //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
                    //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
                    //商户订单号
                    //支付宝交易号
                    //交易状态
                    string[] str = DesEncoderAndDecoder.Decrypt(out_trade_no).Split('#');
                    if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")
                    {
                        _payCallBackService.Callback(str[0].ToInt32(), trade_no);
                    }
                    else
                    {
                        //支付失败
                        _orderService.UpdateStatus(str[0].ToInt32(), Model.enums.OrderStatusEm.支付失败);
                        return(Content(trade_status));
                    }

                    //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
                    return(Content("success")); //请不要修改或删除
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                }
                else//验证失败
                {
                    return(Content("fail")); //请不要修改或删除
                }
            }
            else
            {
                return(Content("无通知参数"));
            }
        }
Exemple #2
0
 public void Callback()
 {
     service.Callback(1, "testpaylog");
 }