c#企业微信在线支付

	企业微信支付方式与普通微信有所不同,而网上的关于c#的企业微信代码又少之又少,问微信客服一问三不知,所幸经过4天研究终于能肝出来算是给自己留档备份,下面是方式:

首先是传统艺能:能拿到的老三样票据: *
APPID:绑定支付的APPID(必须配置)
* MCHID:商户号(必须配置)
* KEY:商户支付密钥,参考开户邮件设置(必须配置)
* APPSECRET:公众帐号secert(仅JSAPI支付的时候需要配置)
*/
public const string APPID = "企业微信的id(企业ID) ";
public const string MCHID = "商户号 “;
public const string KEY = “这个key是公众平台一个xxxlv3的回调key,和平常的不同 “;
public const string APPSECRET = " 企业微信工作台的SECRET,而这个工作台要自己新添加”;
然后在新添加的工作台上设置网页授权(注:一定要设置里面的需完成域名归属验证不然会报错)
然后就是实际使用了,大体上和正常的没什么不同但是很重要的一点是要设置验证,代码如下
function fPostCharge() {
alert(location.href.split(’#’)[0])
var urltest= encodeURIComponent(location.href.split(’#’)[0]);
alert(urltest);
var auuu = location.href.split(’#’)[0];
var vChargeVal = $(”#ChargeVal”).val();
vChargeVal = parseFloat(vChargeVal);
if (vChargeVal > 0) {
$.messager.progress({
title: “”,
msg: “正在调用微信支付接口,请稍后…”,

            });
            $.ajax({
                type: "post",
                data: {
                    totalfee: vChargeVal,
                    urltest: urltest,
                },
               

                url: "/Home/MeterRecharge",
                success: function (json) {
                    $.messager.progress('close');//记得关闭
                    //var json = eval("(" + msg + ")");//转换后的JSON对象
                    //onBridgeReady(json);  data: "totalfee=" + vChargeVal,

                    //

                    wx.config({
                        debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来
                        appId: json.appId, // 必填,企业微信的corpID 
               
                        timestamp: json.timeStamp, // 必填,生成签名的时间戳
                        nonceStr: json.nonceStr, // 必填,生成签名的随机串
                        signature: json.signature,// 必填,签名
                        jsApiList: ['getBrandWCPayRequest']
                    });
                    wx.ready(() => {
                        alert("aooooo");
                    });
                },
                error: function () {
                    $.messager.progress('close');//记得关闭
                    $.messager.alert("提示", '调用微信支付模块失败,请稍后再试。', 'info')
                }
            })
        }
        else {
            alert("房间名或者充值金额不可以为空或者为负数,请确认后再试.")
        }
    }

可以看到,这里有个signature签名,这个是最难的一步,这里安装文档要拿的参数不谈,最重要的是url从前转后要转码,后台拿到以后在解码,组成字符串后,然后再用hsa1组合(注意:sha1一定要去企业微信转码的对照网站对比才能用)
public string Sha1(string str)
{
var buffer = Encoding.UTF8.GetBytes(str);
var data = SHA1.Create().ComputeHash(buffer);

        var sb = new StringBuilder();
        foreach (var t in data)
        {
            sb.Append(t.ToString("X2"));
        }

        return sb.ToString();
    }
    这个就是组好连接然后扔进sha1的连接,noncestr是随机字符串
        var poi = "jsapi_ticket=" + ticket + "&noncestr=6655×tamp=" + times + "&url=" + str;
        获取的token之类的连接和普通的公众号我记得也有所不同,要注意点

c#企业微信在线支付_第1张图片

你可能感兴趣的:(c#企业微信在线支付)