PHP帮忙转成C#代码,实在是看不太懂,求帮忙,可有偿

说几句话就 2019-01-22 07:30:48
如题: PHP帮忙转成C#代码,实在是看不太懂,求帮忙 ,万分感谢。。。
<?php
if (!(defined('IN_IA'))) {
exit('Access Denied');
}

class Reqkuaimai_EweiShopV2Model
{
private apiUrl = 'https://AAAAA';
private appKey = '****';
private appSecret = '****';

private function getBytes(string) {
bytes = '';
for(i = 0; i < strlen(string); i++){
bytes .= ord(string[i]);
}
return bytes;
}

//生成签名
private function sign(param)
{
ksort(param); //按索引排序

/*echo '排完序之后:';
var_dump(param);*/

string = '';
string .= this->appSecret; //首先拼接appSecret
foreach (param as k => p) { //拼接各个参数
string .= (k . p);
}
string .= this->appSecret;

/*echo '拼接各种参数之后:';
print_r(string);*/

/*string = this->getBytes(string);
echo '转化成字节流之后:'. string;*/

string = md5(string); //md5加密

/*echo 'md5之后:';
print_r(string);*/
return string;


/*echo '16进制之后:';
print_r(bin2hex(string));

return bin2hex(string);//转化为16进制*/
}

//请求数据
public function req(param){
param['timestamp'] = time() * 1000; //php里时间戳是10位数,而java是13位?所以,乘以1000
param['appKey'] = this->appKey;
param['format'] = 'json';
param['simplify'] = 'true';
param['signMethod'] = 'md5';
//echo '请求参数:';var_dump(param);
param['sign'] = this->sign(param);//生成签名

ch = curl_init();// 初始化crul,返回一个句柄
curl_setopt(ch, CURLOPT_URL, this->apiUrl);// 设置选项:请求的地址
curl_setopt(ch, CURLOPT_RETURNTRANSFER, 1);// 返回的数据以文件流的形式输出
curl_setopt(ch, CURLOPT_HEADER,0);// 将头文件的信息作为数据流输出:否
curl_setopt(ch, CURLOPT_POSTFIELDS, param);
curl_setopt(ch, CURLOPT_USERAGENT, _SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt(ch, CURLOPT_TIMEOUT, 100); // 设置超时限制防止死循环
res = curl_exec(ch);// 请求到的数据应该是一个json字符串
curl_close(ch);
//echo '原始结果:'. res . '<br>';
res_arr = json_decode(res, true);

return res_arr;
}
}


?>
...全文
127 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
张天星 2019-01-23
  • 打赏
  • 举报
回复
第二次遇到这个转换代码的问题了。。。
很纠结,你是c#不懂还是php不懂
xuzuning 2019-01-23
  • 打赏
  • 举报
回复
错误的源代码是不可能移植成正确的目标代码的 你的 private function getBytes(string) 中 bytes .= ord(string[i]); 将传入串处理成连续的10进制数字串,毫无意义,因为不能再还原 private function sign(param) 中 string .= (k . p); 将键值对处理成无分隔的连续串,无法还原

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧