• 工作总结_手机及时到账


        最近为支付宝忙破了脑袋,以下是我终于成功后的经验以供参考

        首先你得先去支付宝官网上下一个code,以供参考.

        在配置时尽量不要改动文件,把需要的那几个文件(app_code,imageslog)直接放在你的项目里面,然后在建同步回传页面(call_back_url),异步回传页面(notify_url).

        在初始配置时你只有配置AlipayConfig文件的(

                //合作身份者ID,以2088开头由16位纯数字组成的字符串
                partner = "";
    
                //交易安全检验码,由数字和字母组成的32位字符串
                //如果签名方式设置为“MD5”时,请设置该参数
                key = "";
    
                //商户的私钥
                //如果签名方式设置为“0001”时,请设置该参数
                private_key = @"";
    
                //支付宝的公钥
                //如果签名方式设置为“0001”时,请设置该参数
                public_key = @"";
    
                //↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
    
    
    
                //字符编码格式 目前支持 utf-8
                input_charset = "utf-8";
    
                //签名方式,选择项:0001(RSA)、MD5
                sign_type = "MD5";
                //无线的产品中,签名方式为rsa时,sign_type需赋值为0001而不是RSA
    View Code

    )

     在你的支付页面配置如下:

       //支付宝网关地址
                string GATEWAY_NEW = "http://wappaygw.alipay.com/service/rest.htm?";
    
                ////////////////////////////////////////////调用授权接口alipay.wap.trade.create.direct获取授权码token////////////////////////////////////////////
    
                //返回格式
                string format = "xml";
                //必填,不需要修改
    
                //返回格式
                string v = "2.0";
                //必填,不需要修改
    
                //请求号
                string req_id = DateTime.Now.ToString("yyyyMMddHHmmss");
                //必填,须保证每次请求都是唯一
    
                //req_data详细信息
    
                //服务器异步通知页面路径
                string notify_url = "" // 你自己的项目的路径
                //需http://格式的完整路径,不允许加?id=123这类自定义参数
    
                //页面跳转同步通知页面路径
                string call_back_url = ""; 同上
                //需http://格式的完整路径,不允许加?id=123这类自定义参数
    
                //操作中断返回地址
                string merchant_url = ""// 支付不成功时(最好是你的最初页面,因为此不可更参数)
                //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数
    
                //卖家支付宝帐户
                string seller_email = "";
                //必填
    
                //商户订单号
                string out_trade_no ="";// 你自己生成的唯一编号
                //商户网站订单系统中唯一订单号,必填
    
                //订单名称
                string subject = "";//产品名称
                //必填
    
                //付款金额
                string total_fee = "";
                //必填
    
                   //////之后尽量不改
                //请求业务参数详细
                string req_dataToken = "<direct_trade_create_req><notify_url>" + notify_url + "</notify_url><call_back_url>" + call_back_url + "</call_back_url><seller_account_name>" + seller_email + "</seller_account_name><out_trade_no>" + out_trade_no + "</out_trade_no><subject>" + subject + "</subject><total_fee>" + total_fee + "</total_fee><merchant_url>" + merchant_url + "</merchant_url></direct_trade_create_req>";
                //必填
    
                //把请求参数打包成数组
                Dictionary<string, string> sParaTempToken = new Dictionary<string, string>();
                sParaTempToken.Add("partner", Config.Partner);
                sParaTempToken.Add("_input_charset", Config.Input_charset.ToLower());
                sParaTempToken.Add("sec_id", Config.Sign_type.ToUpper());
                sParaTempToken.Add("service", "alipay.wap.trade.create.direct");
                sParaTempToken.Add("format", format);
                sParaTempToken.Add("v", v);
                sParaTempToken.Add("req_id", req_id);
                sParaTempToken.Add("req_data", req_dataToken);
    
                //建立请求
                string sHtmlTextToken = Submit.BuildRequest(GATEWAY_NEW, sParaTempToken);
                //URLDECODE返回的信息
                Encoding code = Encoding.GetEncoding(Config.Input_charset);
                sHtmlTextToken = HttpUtility.UrlDecode(sHtmlTextToken, code);
    
                //解析远程模拟提交后返回的信息
                Dictionary<string, string> dicHtmlTextToken = Submit.ParseResponse(sHtmlTextToken);
    
                //获取token
                string request_token = dicHtmlTextToken["request_token"];
    
                ////////////////////////////////////////////根据授权码token调用交易接口alipay.wap.auth.authAndExecute////////////////////////////////////////////
    
    
                //业务详细
                string req_data = "<auth_and_execute_req><request_token>" + request_token + "</request_token></auth_and_execute_req>";
                //必填
    
                //把请求参数打包成数组
                Dictionary<string, string> sParaTemp = new Dictionary<string, string>();
                sParaTemp.Add("partner", Config.Partner);
                sParaTemp.Add("_input_charset", Config.Input_charset.ToLower());
                sParaTemp.Add("sec_id", Config.Sign_type.ToUpper());
                sParaTemp.Add("service", "alipay.wap.auth.authAndExecute");
                sParaTemp.Add("format", format);
                sParaTemp.Add("v", v);
                sParaTemp.Add("req_data", req_data);
    
                //建立请求
                string sHtmlText = Submit.BuildRequest(GATEWAY_NEW, sParaTemp, "get", "确认");
                Response.Write(sHtmlText);
    View Code

       在你的(notify_url ) 页面进行你数据处理,在次此页面有两个判断,可以组装一下,和为一个判断这个也可以节约一笔小钱

      一定要注意的是如果你做的是pc  版可以不用配置 

    <httpRuntime requestValidationMode="2.0" />
    <pages validateRequest="false" />

     ValidateRequest="false" (页面,必须在你要进行支付的页面进行配置,以及同步,异步页面)

    但是你如果做的手机版支付 那么你不配置以上代码.那么及时你支付成功它也不能请求到异步通知页面,虽然同步处理页面能进行数据处理,但是那样不能保证数据的准确信.

    在做手机版时,因为不能再电脑上测试,所以你尽量用写文件的方式来进行测试数据,流程是否到达你想要的步骤.

        

        

  • 相关阅读:
    .net core ELK
    mongodb基础
    .net core FluentValidation
    使用Identity Server 4建立Authorization Server
    .net core JWT应用
    .net core action过滤器的普通应用
    matplotlib
    python-13:文件操作 之二
    python-13:文件操作 open
    python-12:内置 函数之一 filter map sorted reduce
  • 原文地址:https://www.cnblogs.com/shuaif/p/3830075.html
Copyright © 2020-2023  润新知