开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 283|回复: 6
打印 上一主题 下一主题
收起左侧

[易语言] C#代码转易语言代码

[复制链接]
结帖率:70% (31/44)
跳转到指定楼层
楼主
发表于 2025-1-22 13:46:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式   辽宁省丹东市
20精币
[C#] 纯文本查看 复制代码
 /// <summary>
        /// 拼多多签名
        /// </summary>
        /// <returns></returns>
        public static string GetSign(Dictionary<string, string> param)
        {
            //拼多多 签名认证
            //*签名算法
            //POP目前支持的签名算法为:MD5(sign_method=md5),签名大体过程如下:
            //1-所有参数进行按照首字母先后顺序排列
            //2-把排序后的结果按照参数名+参数值的方式拼接
            //3-拼装好的字符串首尾拼接client_secret进行md5加密后转大写,secret的值是拼多多开放平台后台分配的client_secret
            //Dictionary<string, string> param = new Dictionary<string, string>();
            //param.Add("type", "pdd.goods.cats.get");
            //param.Add("data_type", "JSON");
            //param.Add("timestamp", "1579145265");
            //param.Add("client_id", "ssssss");
            //param.Add("parent_cat_id", "0");
            //param.Add("client_secret", "ccccc");
 
            string sclient_secret = string.Empty;
            string jstring = string.Empty;
            Dictionary<string, string> list = param.OrderBy(o => o.Key).ToDictionary(o => o.Key, p => p.Value);
            foreach (KeyValuePair<string, string> kv in list)
            {
                if (kv.Key != "client_secret")
                {
                    jstring += kv.Key + kv.Value;
                }
                else
                {
                    sclient_secret = kv.Value;
                }
 
            }
            jstring = sclient_secret + jstring + sclient_secret;
            string md5jstring = Utils.Common.PubEncypt.MD5(jstring).ToUpper();
            return md5jstring;
        }


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:100% (1/1)

签到天数: 9 天

沙发
发表于 2025-1-22 14:29:34 | 只看该作者   河南省郑州市
/1-所有参数进行按照首字母先后顺序排列
//2-把排序后的结果按照参数名+参数值的方式拼接
//3-拼装好的字符串首尾拼接client_secret进行md5加密后转大写,secret的值是pdd开放平台后台分配的client_secret

签名过程都有了,按照这个写就是了
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 9 天

板凳
发表于 2025-1-22 14:33:52 | 只看该作者   河南省郑州市
到大写(取数据摘要(到字节集(”client_idssssssdata_typeJSONparent_cat_id0timestamp1579145265typepdd.goods.cats.getccccc“)))
回复

使用道具 举报

结帖率:50% (1/2)

签到天数: 1 天

地板
发表于 2025-1-22 15:52:15 | 只看该作者   云南省楚雄彝族自治州
.版本 2
.支持库 dp1

.子程序 GetSign, 文本型
.参数 param, 文本型, 数组, 参考  ' 使用数组存储键值对,格式为 ["key1=value1", "key2=value2", ...]
.局部变量 sclient_secret, 文本型
.局部变量 jstring, 文本型
.局部变量 i, 整数型
.局部变量 keyValue, 文本型
.局部变量 key, 文本型
.局部变量 value, 文本型
.局部变量 sortedParam, 文本型
.局部变量 md5jstring, 文本型

' 初始化变量
sclient_secret = “”
jstring = “”
sortedParam = 取空白文本 (0)

' 将键值对数组按键名排序
.计次循环首 (取数组成员数 (param), i)
    keyValue = param [i]
    key = 取文本左边 (keyValue, 寻找文本 (keyValue, “=”, , 假) - 1)
    value = 取文本右边 (keyValue, 取文本长度 (keyValue) - 寻找文本 (keyValue, “=”, , 假))
    ' 将键值对按键名排序
    插入成员 (sortedParam, i, keyValue)
.计次循环尾 ()

' 对 sortedParam 按键名排序
数组排序 (sortedParam, 真)

' 遍历排序后的键值对
.计次循环首 (取数组成员数 (sortedParam), i)
    keyValue = sortedParam [i]
    key = 取文本左边 (keyValue, 寻找文本 (keyValue, “=”, , 假) - 1)
    value = 取文本右边 (keyValue, 取文本长度 (keyValue) - 寻找文本 (keyValue, “=”, , 假))
    .如果真 (key ≠ “client_secret”)
        jstring = jstring + key + value
        sclient_secret = value
    .如果真结束

.计次循环尾 ()

' 拼接字符串并进行MD5加密
jstring = sclient_secret + jstring + sclient_secret
md5jstring = 到大写 (取数据摘要 (到字节集 (jstring)))

返回 (md5jstring)
回复

使用道具 举报

签到天数: 15 天

地下
发表于 2025-1-22 18:31:02 | 只看该作者   湖北省武汉市
其实 精易抓住这波ai风口就好了 把论坛所有代码喂养一个ai 然后集成到助手里面 再收费
回复

使用道具 举报

结帖率:70% (31/44)

签到天数: 11 天

6
 楼主| 发表于 2025-1-23 12:57:20 | 只看该作者   辽宁省丹东市
后弦 发表于 2025-1-22 15:52
.版本 2
.支持库 dp1

老哥,这个写的还是有点问题,结果不对,您看下这个文档
https://open.pinduoduo.com/application/document/browse?idStr=8EC06C399636041E
原始数据:
array (
'access_token' => 'asd78172s8ds9a921j9qqwda12312w1w21211'
'client_id' =>1,
'data_type => 'XML',
'type'=> 'pdd.order.number.list.get',
'timestamp' => '1480411125',
'order_status' => '1',
'page' => '1',
'page_size' => '10'
)
最终的结果应该是
"sign": "E4DE3ED21002510DED352819E7AE6775"
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 9 天

7
发表于 2025-1-23 22:37:31 | 只看该作者   河南省郑州市
新建 易程序 2.e (957.06 KB, 下载次数: 5)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表