PHP转成ASP.NET

ASP微信支付 APIV3 2015-10-01 04:32:04
<?php
$xml = $_POST["post_data"];
$url = $_POST["curl_url"];
$cert = $_POST["cert"];
$key = $_POST["key"];
$keys = $_POST["keys"];
if($cert !=""&&$key !=""){
$useCert = true;
}
$arr = FromXml($xml);
//echo $xml;
$string = ToUrlParams($arr);
$string.="&key=".$keys;
$string = strtoupper(md5($string));
if(isset($_POST["action"])&&$_POST["action"]=="checksign"){
echo $string;
exit();
}
$arr["sign"]=$string;
$xml = ToXml($arr);
//echo $xml;
//exit();
$data = postXmlCurl($xml, $url, $useCert, 30);
echo $data;
function postXmlCurl($xml, $url, $useCert = false, $second = 30)
{
$ch = curl_init();
//设置超时
curl_setopt($ch, CURLOPT_TIMEOUT, $second);

//如果有配置代理这里就设置代理
// if(WxPayConfig::CURL_PROXY_HOST != "0.0.0.0"
// && WxPayConfig::CURL_PROXY_PORT != 0){
// curl_setopt($ch,CURLOPT_PROXY, WxPayConfig::CURL_PROXY_HOST);
// curl_setopt($ch,CURLOPT_PROXYPORT, WxPayConfig::CURL_PROXY_PORT);
// }
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//严格校验
//设置header
curl_setopt($ch, CURLOPT_HEADER, FALSE);
//要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

if($useCert == true){
//设置证书
//使用证书:cert 与 key 分别属于两个.pem文件
curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
curl_setopt($ch,CURLOPT_SSLCERT, $cert);
curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
curl_setopt($ch,CURLOPT_SSLKEY, $key);
}
//post提交方式
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
//运行curl
$data = curl_exec($ch);
//返回结果
if($data){
curl_close($ch);
return $data;
} else {
$error = curl_errno($ch);
curl_close($ch);
return $error;
}
}


function FromXml($xml)
{
if(!$xml){
echo "xml数据异常!";
}
//将XML转为array
//禁止引用外部xml实体
libxml_disable_entity_loader(true);
$result = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
return $result;
}

function ToXml($values)
{
if(!is_array($values)
|| count($values) <= 0)
{
echo ("数组数据异常!");
}

$xml = "<xml>";
foreach ($values as $key=>$val)
{
if (is_numeric($val)){
$xml.="<".$key.">".$val."</".$key.">";
}else{
$xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
}
}
$xml.="</xml>";
return $xml;
}

/**
* 格式化参数格式化成url参数
*/
function ToUrlParams($values)
{
$buff = "";
foreach ($values as $k => $v)
{
if($k != "sign" && $v != "" && !is_array($v)){
$buff .= $k . "=" . $v . "&";
}
}

$buff = trim($buff, "&");
return $buff;
}

?>


哪位大神能帮我转成 ASP.Net
不胜感激!
...全文
179 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
穷得响叮当 2015-10-04
  • 打赏
  • 举报
回复
学西学习
bulls5988 2015-10-04
  • 打赏
  • 举报
回复
好长 饭后再看
hwyqy 2015-10-04
  • 打赏
  • 举报
回复
没这么多时间细看了,帮楼主顶顶
tcmakebest 2015-10-04
  • 打赏
  • 举报
回复
代码长不长是其次,如果没有环境只是乱写我觉得是没有意义的一定错误百出,楼主是要完成作业么

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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