asp.net网站接入虎皮椒支付系统
搜收录网整理 发布日期:2022/3/17 16:28:52
虎皮椒支付系统asp.net网站接入方法和步骤
完成签约获取APPID和SECRET。
下载对应开发语言的 SDK
C#版的sdk是mvc框架的,非MVC框架的asp.net网站需要做一些修改,主要修改的是提交支付信息返回跳转链接打开支付二维码
主要参数 
paymentType 支付类型支付接口标识:wechat(微信接口)|alipay(支付宝接口)
money 支付金额
title 支付标题
还可以加入自定义attach参数传递订单信息
public ActionResult Index(string paymentType, string money, string title)
        {
            var json = new JObject();
 
            try
            {
                var dic = new Dictionary<string, string>
                {
                    {"version", "1.1"},
                    {"lang", "zh-cn"},
                    {"plugins", "test-001"},
                    {"appid", "2147483647"},//appid
                    {"appsecret", "160130736b1ac0d54ed7abe51e44840b"},//appsecret
                    {"trade_order_id", Generate.GenerateOutTradeNo()},//订单号
                    {"payment", "wechat"},//支付类型
                    {"total_fee", money},//金额
                    {"title", "iphone"},//标题,只能数据字或英文(中文乱码,找不到原因)
                    {"time", Date.GetTimeStamp()},//时间戳
                    {"notify_url", "https://www.baidu.com/"},//通知链接
                    {"return_url", "https://www.baidu.com/"},//跳转链接
                    {"nonce_str", Generate.RndNum(32)},//随机字符串
                };
 
                dic.Add("hash", Sign(dic));
 
                var sr = JsonConvert.DeserializeObject<SamplesResult>(PostHttp(dic));
 
                json.Add(new JProperty("openid", sr.Openid));
                json.Add(new JProperty("url", sr.Url));
                json.Add(new JProperty("errcode", sr.Errcode));
                json.Add(new JProperty("errmsg", sr.Errmsg));
                json.Add(new JProperty("hash", sr.Hash));
            }
            catch (Exception e)
            {
                throw e;
            }
 
            return Content(json.ToString());
        }
通过返回的JSON值中的url跳转打开付款二维码页面,付款后会回调付款成功页面更新网站付款信息。
回调页面重点程序如下
获取回调参数
    public Dictionary<string, string> request2Dic(HttpRequest request)
    {
        Dictionary<string, string> returnDic = new Dictionary<string, string>();
        string[] keys = request.Form.AllKeys;
        if (keys.Length == 0)
        {
            keys = request.QueryString.AllKeys;
        }
        foreach (string name in keys)
        {
            if (name == "hash") continue;
            string value = request.Params[name].ToString().Trim();
            returnDic.Add(name, value);
        }
        return returnDic;
    }
获取回传哈希值
string hash = context.Request.Form["hash"];
Dictionary<string, string> dicArray = new Dictionary<string, string>();
dicArray = request2Dic(context.Request);
根据回传参数生成新的哈希值
var newhash = hpjalipay.Sign(dicArray);
判断两个哈希值知否相同,如果相同则执行更新用户支付订单信息
注意,一般支付成功后会发起多次回调,所以要做重复判断。
 

信息网址:http://www.soshoulu.com/ziyuan/view20211.htm
相关信息