掃碼支付 開發模式二
微信簽名驗證過了 沒有問題
支付時報下面的錯誤

public string GetPayUrl(string productId)
{
WxPayData data = new WxPayData();
data.SetValue("body", "test");//商品描述
data.SetValue("attach", "test");//附加資料
data.SetValue("out_trade_no", DateTime.Now.ToString("yyyyMMddHHmmss"));//訂單號
data.SetValue("total_fee", "1");//總金額
data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));//交易起始時間
data.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss"));//交易結束時間
data.SetValue("goods_tag", "test");//商品標記
data.SetValue("trade_type", "NATIVE");//交易型別
data.SetValue("product_id", productId);//商品ID
WxPayData result = WxPayAPI.UnifiedOrder(data);//呼叫統一下單介面
string url = result.GetValue("code_url").ToString();//獲得統一下單介面回傳的二維碼鏈接
return url;
}
public static WxPayData UnifiedOrder(WxPayData inputObj, int timeOut = 6)
{
string url = "https://api.mch.weixin.qq.com/pay/unifiedorder";
//檢測必填引數
if (!inputObj.IsSet("out_trade_no"))
{
throw new Exception("缺少統一支付介面必填引數out_trade_no!");
}
else if (!inputObj.IsSet("body"))
{
throw new Exception("缺少統一支付介面必填引數body!");
}
else if (!inputObj.IsSet("total_fee"))
{
throw new Exception("缺少統一支付介面必填引數total_fee!");
}
else if (!inputObj.IsSet("trade_type"))
{
throw new Exception("缺少統一支付介面必填引數trade_type!");
}
//關聯引數
if (inputObj.GetValue("trade_type").ToString() == "JSAPI" && !inputObj.IsSet("openid"))
{
throw new Exception("統一支付介面中,缺少必填引數openid!trade_type為JSAPI時,openid為必填引數!");
}
if (inputObj.GetValue("trade_type").ToString() == "NATIVE" && !inputObj.IsSet("product_id"))
{
throw new Exception("統一支付介面中,缺少必填引數product_id!trade_type為NATIVE時,product_id為必填引數!");
}
//異步通知url未設定,則使用組態檔中的url
if (!inputObj.IsSet("notify_url"))
{
inputObj.SetValue("notify_url", WxSmConfig.NOTIFY_RESULT_URL);//異步通知url
}
inputObj.SetValue("appid", WxSmConfig.APPID);//公眾賬號ID
inputObj.SetValue("mch_id", WxSmConfig.MCH_ID);//商戶號
inputObj.SetValue("spbill_create_ip",HttpContext.Current.Request.UserHostAddress );//終端ip
inputObj.SetValue("nonce_str", GenerateNonceStr());//隨機字串
//簽名
inputObj.SetValue("sign", inputObj.MakeSign());
string xml = inputObj.ToXml();
//var start = DateTime.Now;
WeiXin.WriteLog("UnifiedOrder request:"+xml);
string response = MyHttp.MyHttpPost(url, xml);
WeiXin.WriteLog("UnifiedOrder response:" + response);
//var end = DateTime.Now;
//int timeCost = (int)((end - start).TotalMilliseconds);
WxPayData result = new WxPayData();
result.FromXml(response);
//ReportCostTime(url, timeCost, result);//測速上報
return result;
}
/**
* 生成隨機串,隨機串包含字母或數字
* @return 隨機串
*/
public static string GenerateNonceStr()
{
return Guid.NewGuid().ToString().Replace("-", "");
}
uj5u.com熱心網友回復:
哥們,這個問題解決了嗎,我也遇到了這個問題,而且有的手機可以支付,有的手機報這個錯誤uj5u.com熱心網友回復:
還沒呢 好幾天了 郁悶uj5u.com熱心網友回復:
哥們,我已經解決了,我的問題是 api_key 設定問題,重新換一個,設定一下,盡量復雜點。就好了!uj5u.com熱心網友回復:
樓主,解決了嗎?@xiangronghua1984uj5u.com熱心網友回復:
樓主請問解決了嗎? 煩請發個原始碼包到[email protected],學習學習!謝謝!uj5u.com熱心網友回復:
http://jingyan.baidu.com/article/59703552c3c9808fc1074072.html?st=2&os=0&bd_page_type=1&net_type=2轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/133355.html
標籤:智能路由器
