微信支付签名算法JavaScript版,参数名ASCII码从小到大排序;0,A,B,a,b;

  // 支付md5加密获取sign
  paysignjs: function (jsonobj) {
    var signstr = this.obj2str(jsonobj)
    signstr = signstr + ‘&key=‘ + key;
    console.log("signstrkey:",signstr)
    var sign = md5util.hexMD5(signstr); //验证调用返回或微信主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
    return sign.toUpperCase()
  },
  //object转string,用于签名计算
  obj2str: function (args) {
    var keys = Object.keys(args)
    keys = keys.sort() //参数名ASCII码从小到大排序(字典序);
    var newArgs = {}
    keys.forEach(function (key) {
      if (args[key] != "" && args[key] != ‘undefined‘) {  //如果参数的值为空不参与签名;
        newArgs[key] = args[key]  //参数名区分大小写;
      }

    })
    var string = ‘‘
    for (var k in newArgs) {
      string += ‘&‘ + k + ‘=‘ + newArgs[k]
    }
    string = string.substr(1)
    return string
  },
  //随机函数的产生:
  createNonceStr: function () {
    return Math.random().toString(36).substr(2, 15)   //随机小数,转换36进制,去掉0.,保留余下部分
  },
  //时间戳产生的函数, 当前时间以证书表达,精确到秒的字符串
  createTimeStamp: function () {
    return parseInt(new Date().getTime() / 1000) + ‘‘
  }

原文地址:https://www.cnblogs.com/jopny/p/11454952.html

时间: 2024-09-30 03:02:46

微信支付签名算法JavaScript版,参数名ASCII码从小到大排序;0,A,B,a,b;的相关文章

.Net将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA

前言: 前段时间因为项目进度比较繁重所以一直都没有时间更新博客,内心深深的负重感,没有履行年初立下的flag.不过这个月会把上个月没有完成的任务补上来,咱们可不是喜欢拖欠任务的攻城狮.哈哈,废话不多说,接下来是要总结下关于对接支付时我们经常会遇到的将对应集合中的参数按照ASCII码按照从小到大排序,并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA,其实对于有些参数比较少的而已我们完全可以自己使用固定拼接的方式拼接好来,但是假如参数集合中的参

C# 参数按照ASCII码从小到大排序(字典序)

在对接第三方支付的时候,第三方会要求参数按照ASCII码从小到大排序.如下: 1 public static void requestPay() 2 { 3 Dictionary<string, string> dics = new Dictionary<string, string>(); 4 dics.Add("amount", amount); 5 dics.Add("callback_url", callback_url); 6 di

C# 非空字段按照ASCII码从小到大排序(字典序)

public static void requestPay() { Dictionary<string, string> dics = new Dictionary<string, string>(); dics.Add("amount", amount); dics.Add("callback_url", callback_url); dics.Add("goodsname", goodsname); dics.Add(

微信支付(.NET版)

前段时间做了网页版微信支付,遇到很多问题,不过最终还是解决了,现在在这里记录下开发流程以及说明,给其他人一些参考. 一.准备工作 首先肯定得先要开通微信支付功能,之前开通微信支付需要三万的押金的,现在不需要了,所以就做了这个功能. 要进行微信支付开发,需要在公众号后台和微信商户后台进行相关的设置. 1.开发目录配置 微信支付需要在公众号后台(微信支付=>开发配置)进行配置支付授权目录.这里授权目录需要是线上地址,也就是可以通过互联网访问到的地址,微信支付系统需要能够通过互联网访问到你的地址. 微

微信支付官方.net版之坑你没商量

//来源:http://www.cnblogs.com/ancms/p/4571567.html 微信支付官方.net版之坑你没商量 最近开始弄支付这块,先是支付宝手机网站支付,也是坑了我许久,不过还好,问题不大. 让我们看看微信支付有多少坑 微信商户平台,你们知道么(我前天才知道,别笑我) 登录地址:https://mch.weixin.qq.com 我查了很久,才知道,原来,帐号密码,发到你开户的邮箱里了,然后,我翻啊翻,终于让我找到帐号密码了. 实在不明白,帐号为嘛是:[email pro

微信公众号扫描带参数二维码实现自动分组?

最近很多人都在问微信公众号扫描带参数二维码实现自动分组,通过微号帮平台操作实现,这个功能不止如此,微信二维码来源统计分析.微信带参数二维码统计分析.微信渠道二维码统计分析.自动生成微信二维码统计分析.微信海报二维码统计分析管理平台(地推派传单提供有效渠道分析).解决了微信公众号地推派单推广渠道跟踪的问题,可以实时进行监控派单推广渠道的扫码微信的关注,取消,新增,净增等相关数据,实时进行数据分析,为推广方向提供有了强有力的帮助和分析,同时对派单人员进行有效的考核,比如每个派单人员现场扫码的关注用户

输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。

ASCII码排序 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符. 输入 第一行输入一个数N,表示有N组测试数据.后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格. 输出 对于每组输入数据,输出一行,字符中间用一个空格分开. 样例输入 2 qwe asd 样例输出 e q w a d s #include <iostream> using namespace

二级 长度为7的字符串除首位外其余五个字符按ascii码进行排序

//编写程序函数的功能为,对长度为7的字符串除首位外其余五个字符按ascii码进行排序 void fun(char *s,int num) { char t; int i,j; for(i=1;i<num-2;i++) for(j=i+1;j<num-1;j++) { if(s[i]<s[j]) { t=s[i]; s[i]=s[j]; s[j]=t; } } }

微信支付SDK(python版)

最近一段时间一直在搞微信平台开发,最近的v3.37版本微信支付接口变化贼大,所以就看着php的demo移植为 python版,为了保持一致,所以接口方法基本都没有变,这样的好处就是不用写demo了,看着微信官方的demo 照葫芦画瓢就可以了. 我已经把代码放到github了,https://github.com/Skycrab/wzhifuSDK,我主要测试了JsApi调用方式,其它的调用方式并没有测试,如果你发现了bug,请多多pull request,我将不甚感激. 方便观看,代码贴于此.