首页 > 编程语言 >C# xorpay 生成支付二维码 和 回调业务处理

C# xorpay 生成支付二维码 和 回调业务处理

时间:2022-12-15 17:11:06浏览次数:62  
标签:string C# pay Add sign 二维码 xorpay order dir

/ // <summary>
        /// post 生成支付订单
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        public static dynamic PostGetPayCode_New(PayOrder order)
        {
            string str = string.Empty;
            Dictionary<string, object> dir = new Dictionary<string, object>();
            dir.Add("name", order.Title);
            dir.Add("pay_type", "alipay");
            dir.Add("price", order.PayAmount);
            dir.Add("order_id", order.OrderNo);
            dir.Add("notify_url", _callBack_Url);
            foreach (var item in dir)
            {
                str += item.Value;
            }
            string sign = MD5Encryption.Encryption(str+_appSecretKey);
            dir.Add("order_uid", order.OrderUserId);
            dir.Add("expire", _expire_In);
            dir.Add("more",order.More);
            dir.Add("sign", sign);
            var url = $"{_pay_Code_api}{_app_Id}";
            var resData = HttpHelper.PostData(url, dir);
            //{ "status": "ok", "info": { "qr": "https://qr.alipay.com/bax01068kxbbcz2r799i007c"}, "expires_in": "900", "aoid": "67736d7057d6465791c24a513afb52a7"}
            return JsonConvert.DeserializeObject<dynamic>(resData);
        }
      
 #region 支付回调
        /// <summary>
        /// 支付回调
        /// </summary>
        /// <returns></returns>
        public ApiResponse Pay_CallBack()
        {
            try
            {
                string aoid = HttpContextCore.Current.Request.Form["aoid"];
                string detail = HttpContextCore.Current.Request.Form["detail"];
                string more = HttpContextCore.Current.Request.Form["more"]; ;
                string order_id = HttpContextCore.Current.Request.Form["order_id"];
                string pay_price = HttpContextCore.Current.Request.Form["pay_price"];
                string pay_time = HttpContextCore.Current.Request.Form["pay_time"];
                string sign = HttpContextCore.Current.Request.Form["sign"];

                _logger.Info(LogType.订单支付跟踪, "----------订单回调通知接收参数----------");
                _logger.Info(LogType.订单支付跟踪, $"aoid:{aoid},detail:{detail},more:{more},order_id:{order_id},pay_price:{pay_price},pay_time:{pay_time},sign:{sign}");
                //获取回调参数

                if (!string.IsNullOrWhiteSpace(sign))
                {
                    string parameters = $"{aoid}{order_id}{pay_price}{pay_time}";
                    //验证签名
                    if (FuBeiHelper.CheckNotify_New(parameters, sign))
                    {
                        if (!string.IsNullOrWhiteSpace(more))
                        {
                            var dyn = JsonConvert.DeserializeObject<ContentInfo>(more);
                            //业务逻辑处理
                        }
                    }
                }
                return Success();
            }
            catch (Exception ex)
            {
                return Error("支付回调业务处理异常");
            }
        }
        #endregion

 

标签:string,C#,pay,Add,sign,二维码,xorpay,order,dir
From: https://www.cnblogs.com/guangzhiruijie/p/16985533.html

相关文章

  • 拆解一款支持蓝牙配网的IPC是怎么样的体验
    现在的人工作原来越忙,无论是白天上班的打工人,还是家中有宠物的单身年轻人,都希望家里可以安装一个无线摄像头(IPC)时刻关注、记录精彩生活瞬间,除了摄像头的清晰度,产品的无线通......
  • springcloud学习笔记
    SpringCloud学习笔记1.   简介架构的演进单体架构->SOA->微服务1.1 微服务1.1.1      什么是微服务?是以开发一组小型服务的方式来开发一个独立的应用系统......
  • eclipse使用git提交项目
    eclipse使用git提交项目有2种方式:一种是git命令窗口,另一种是eclipse自带git插件(跟svn插件一样使用)一、使用git命令窗口提交项目1.首先官网下载git并安装,然后配置用户信息(任......
  • 【LeeCode】链表的学习
    基础知识​​学习参考​​importjava.util.*;//JAVA链表classNode{publicintdata;publicNodenext;publicNode(intdata){this.data=data;......
  • ElasticSearch的基本用法与集群搭建 good
    一、简介ElasticSearch和Solr都是基于Lucene的搜索引擎,不过ElasticSearch天生支持分布式,而Solr是4.0版本后的SolrCloud才是分布式版本,Solr的分布式支持需要ZooKeeper的支持......
  • nacos简介
    学习地址:https://www.bilibili.com/video/BV18E411x7eT?p=96&vd_source=e7f24a421cc55783283e95fe226df2af官网:https://nacos.io/zh-cn/docs/what-is-nacos.htmlgithub:ht......
  • ocelot + consul 保姆级快速上手及遇到的坑,只讲步骤不讲原理
    本文只讲步骤不讲原理,先搭建成功再自行找资料看具体配置是什么意思!环境:win10,vs2022,.net6,neget包(Ocelot和Ocelot.Provider.Consul皆为18.0.0版本,Consul1.6.10.8版本),co......
  • ASEMI肖特基二极管MBR10100FCT图片,MBR10100FCT大小
    编辑-ZASEMI肖特基二极管MBR10100FCT参数:型号:MBR10100FCT最大重复峰值反向电压(VRRM):100V最大RMS电桥输入电压(VRMS):70V最大直流阻断电压(VDC):100V最大平均正向整流输出电......
  • BUUCTF Helloword 特别简单的安卓逆向
    BUUCTFHelloword特别简单的安卓逆向 用apkide打开即可工具下载:https://down.52pojie.cn/Tools/   点击左上角的项目打开apk文件,找到主函数.   安卓......
  • ASEMI肖特基二极管MBR30200FCT封装,MBR30200FCT体积
    编辑-ZASEMI肖特基二极管MBR30200FCT参数:型号:MBR30200FCT最大重复峰值反向电压(VRRM):200V最大RMS电桥输入电压(VRMS):140V最大直流阻断电压(VDC):200V最大平均正向整流输出电......