用c#写一段微信支付代码
时间: 2024-01-30 12:01:47 浏览: 87
微信小程序支付C#后端
以下是C#中使用微信支付的示例代码:
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
namespace WeChatPay
{
class Program
{
static void Main(string[] args)
{
// 构造XML格式的请求数据
string xmlData = "<xml>" +
"<appid>wx2421b1c4370ec43b</appid>" +
"<mch_id>10000100</mch_id>" +
"<nonce_str>ec2316275641faa3aacf3cc599e8730f</nonce_str>" +
"<body>test</body>" +
"<out_trade_no>1415659990</out_trade_no>" +
"<total_fee>1</total_fee>" +
"<spbill_create_ip>14.23.150.211</spbill_create_ip>" +
"<notify_url>http://wxpay.weixin.qq.com/pub_v2/pay/notify.v2.php</notify_url>" +
"<trade_type>JSAPI</trade_type>" +
"<openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid>" +
"<sign>0CB01533B8C1EF103065174F50BCA001</sign>" +
"</xml>";
// 发送请求并获取响应数据
string responseData = HttpPost("https://api.mch.weixin.qq.com/pay/unifiedorder", xmlData);
// 解析响应数据
XmlDocument responseXml = new XmlDocument();
responseXml.LoadXml(responseData);
XmlNode returnCodeNode = responseXml.SelectSingleNode("/xml/return_code");
XmlNode returnMsgNode = responseXml.SelectSingleNode("/xml/return_msg");
if (returnCodeNode.InnerText == "SUCCESS")
{
// 请求成功,获取预支付交易会话标识prepay_id
XmlNode prepayIdNode = responseXml.SelectSingleNode("/xml/prepay_id");
string prepayId = prepayIdNode.InnerText;
// 构造JSON格式的请求数据
string jsonData = "{" +
"\"appId\":\"wx2421b1c4370ec43b\"," +
"\"timeStamp\":\"1395712654\"," +
"\"nonceStr\":\"e61463f8efa94090b1f366cccfbbb444\"," +
"\"package\":\"prepay_id=" + prepayId + "\"," +
"\"signType\":\"MD5\"," +
"\"paySign\":\"C380BEC2BFD727A4B6845133519F3AD6\"" +
"}";
// 调用微信支付API,发起支付请求
// ...
Console.WriteLine("支付请求已发送");
}
else
{
// 请求失败,输出错误信息
Console.WriteLine(returnMsgNode.InnerText);
}
Console.ReadKey();
}
static string HttpPost(string url, string data)
{
// 发送HTTP POST请求并获取响应数据
// ...
return "响应数据";
}
}
}
```
请注意,该示例代码中的 `HttpPost` 方法需要自行实现,用于发送HTTP POST请求并获取响应数据。另外,该代码中的请求数据、请求URL、请求方法、请求参数等均是示例数据,实际使用时需要根据自己的情况进行修改。
阅读全文