• 简单集成支付宝在线支付功能的关键代码


    1、首先把DEMO中APP_CODE的5个类加入到项目中。可根据实际情况自己修改。

    AlipayConfig.cs
    AlipayCore.cs
    AlipayNotify.cs
    AlipaySubmit.cs
    MD5.cs
     
    2、如无其他需求,只需修改AlipayConfig.cs中的两个参数。
    partner  //合作身份者ID
    key  //交易安全检验码 ,这个必须填写。刚开始做DEMO里没有以为不用填,总是报签名错误。
    sign_type //签名方式,一般默认MD5。有需求自行修改
    input_charset //字符编码,一般是UTF8或GBK。会影响生成签名,如果提示签名错误,可从这里入手查找问题。
     
    3、生成签名的方法文档里都有。
     
    4、添加商品信息之类的DEMO中都有,这里记录下添加的参数。
     
     1 //把请求参数打包成数组
     2 SortedDictionary<string, string> sParaTemp = new SortedDictionary<string, string>();
     3 sParaTemp.Add("partner", Com.Alipay.Config.Partner);
     4 sParaTemp.Add("_input_charset", Com.Alipay.Config.Input_charset.ToLower());
     5 sParaTemp.Add("service", "create_direct_pay_by_user");
     6 sParaTemp.Add("payment_type", payment_type);
     7 sParaTemp.Add("notify_url", notify_url);
     8 sParaTemp.Add("return_url", return_url);
     9 sParaTemp.Add("seller_email", seller_email);
    10 sParaTemp.Add("out_trade_no", out_trade_no);
    11 sParaTemp.Add("subject", subject);
    12 sParaTemp.Add("total_fee", total_fee);
    13 sParaTemp.Add("body", body);
    14 sParaTemp.Add("show_url", show_url);
    15 sParaTemp.Add("anti_phishing_key", anti_phishing_key);
    16 sParaTemp.Add("exter_invoke_ip", exter_invoke_ip);
    17 
    18 //建立请求
    19 string sHtmlText = Submit.BuildRequest(sParaTemp, "get", "确认");
    20 Response.Write(sHtmlText);
    这里需要注意的是使用了SortedDictionary,这个可以自动排序。如果使用Dictionary需要在生产签名的代码处自己排下序。会导致生成签名无效。
     
    总体来说,即时到帐的集成比较简单。大问题没有。主要是生成签名无效的问题,总结一下,可以从几点去查找原因:1、Key是否正确,是由数字和字母组成的32位字符串;2、input_charset 主要看一下当前网站的编码;3、参数的排序,生产签名需要排序。
  • 相关阅读:
    谈谈入职新公司1月的体会
    来点高逼格的,使用前端Sendmessage实现SSO
    2019做的第一个艰难决定
    Golang中设置函数默认参数的优雅实现
    linux系统shell基础知识入门二
    在AWS中自定义Credential Provider实现Client连接
    linux系统shell基础知识入门
    初学者学习golang可能遇到的坑
    【Menu】 目录索引
    rsync 服务介绍及相关实验
  • 原文地址:https://www.cnblogs.com/chenliang-zibo/p/4337563.html
Copyright © 2020-2023  润新知