如题: 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;
}
}
?>
<?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;
}
}
?>
解决方案 »
- C#能不能定义Dictionary<string, T>这样的字典?
- 在C#中如何把一个Bytes(BMP图片数据位数组)转换为内存指针
- 前段时间还看到有人说c是垃圾,真的是没见识了,看看这个帖~~~~
- Microsoft Visual Studio .Net 2003 ,在哪有下载啊!
- 根据一个人员组织结构图的列表制作一个从上到下树状组织结构图的WebPart
- 为什么.net web应用程序老是自动重启?
- C#中如何格式化一个硬盘的分区?
- 【求助】声卡 输入/输出 录音代码 or 思路。
- 送分题:怎么才能在vs2005中实现alt+F8,代码重排
- 请高手将下面的一段Delphi代码(下载整个网站的图片)转换成C#代码
- UDP多个客户端接收信息问题
- CefSharp.BrowserSubprocess 已停止工作”,如何解决
很纠结,你是c#不懂还是php不懂
你的 private function getBytes(string) 中
bytes .= ord(string[i]); 将传入串处理成连续的10进制数字串,毫无意义,因为不能再还原private function sign(param) 中
string .= (k . p); 将键值对处理成无分隔的连续串,无法还原