Heim WeChat-Applet WeChat-Entwicklung Implementierungsmethode zur Verwendung von .NET zum Parsen von WeChat-Zahlungen

Implementierungsmethode zur Verwendung von .NET zum Parsen von WeChat-Zahlungen

Mar 17, 2017 pm 03:21 PM
asp.net 微信支付

Aufgrund der weit verbreiteten Verwendung von WeChat ist eine Reihe von Produkten entstanden, die auf WeChat basieren. In diesem Artikel wird hauptsächlich die Implementierungsmethode zum Parsen von WeChat-Zahlungen (.NET-Version) vorgestellt.

Ich habe vor einiger Zeit eine Webversion der WeChat-Zahlung erstellt und bin auf viele Probleme gestoßen, die jedoch endlich gelöst wurden. Jetzt werde ich den Entwicklungsprozess und die Anweisungen hier aufzeichnen, um anderen eine Referenz zu geben.

1. Vorbereitung

Zuerst müssen Sie die WeChat-Zahlungsfunktion aktivieren. Früher war für die Aktivierung der WeChat-Zahlung eine Anzahlung von 30.000 erforderlich Nicht mehr erforderlich, also... Diese Funktion wurde hinzugefügt.

Um die WeChat-Zahlung zu entwickeln, müssen Sie relevante Einstellungen im offiziellen Konto-Backend und im WeChat-Händler-Backend vornehmen.

1. Konfiguration des Entwicklungsverzeichnisses

WeChat-Zahlung muss das Zahlungsautorisierungsverzeichnis im Hintergrund des offiziellen Kontos konfigurieren (WeChat-Zahlung = „Entwicklungskonfiguration“). Das autorisierte Verzeichnis muss hier eine Online-Adresse sein, also eine Adresse, auf die über das Internet zugegriffen werden kann. Das WeChat-Zahlungssystem muss über das Internet auf Ihre Adresse zugreifen können.

Das autorisierte WeChat-Verzeichnis muss dem Verzeichnis der zweiten oder dritten Ebene entsprechen. Beispiel: Wenn der Link zum Einleiten der Zahlung http://www.hxfspace.net/weixin/WeXinPay/WeXinPay lautet, wählen Sie das konfigurierte Verzeichnis sollte http://www.hxfspace.net/weixin/WeXinPay/ sein, wobei http://www.hxfspace.net der Domänenname und weixin das virtuelle Verzeichnis WeXinPay ist, das der Controller ist die Aktion in WeXinPay.

Implementierungsmethode zur Verwendung von .NET zum Parsen von WeChat-Zahlungen

                                                Rufen Sie die Zahlungsanforderung zurück, um den Autorisierungscode (Code) zu erhalten. Daher müssen Sie hier den autorisierten Domainnamen festlegen. Natürlich muss der Domainname hier mit dem Domainnamen im Zahlungsautorisierungsverzeichnis übereinstimmen. Vergessen Sie nicht, das einzurichten. Ich habe nur vergessen, es einzurichten und habe lange und zu Tode weinend nach dem Grund gesucht.

3. Relevante Parametervorbereitung

Implementierungsmethode zur Verwendung von .NET zum Parsen von WeChat-Zahlungen
Um die WeChat-Zahlung aufzurufen, müssen Sie eine Zahlungsanforderung an das WeChat-Zahlungssystem initiieren Ein Skript. Eine Parameterbeschreibung finden Sie unter

offizielle Website-Zahlungsplattform von WeChat

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6

Für die Generierung von Paket und PaySign sind der Entwicklerschlüssel AppSecret (Anwendungsschlüssel), das WeChat-Händlerkonto und der WeChat-Zahlungsschlüssel erforderlich

2 Prozess

Implementierungsmethode zur Verwendung von .NET zum Parsen von WeChat-Zahlungen

Lassen Sie uns nach dem Sortieren ohne weiteres über den Prozess sprechen:

1. Erhalten Sie den Autorisierungscode über den WeChat-Autorisierungsrückruf

2. Über den Autorisierungscode Im Austausch für die Webseitenautorisierung access_token und openid


3. Rufen Sie die einheitliche Bestellschnittstelle auf, um prepayId zu erhalten


jsapi WeChat-Zahlungsanforderungsparameter aufrufen und Zahlung einleiten


5. WeChat-Zahlungsrückruf für nachfolgende Vorgänge erhalten


3. Spezifische Entwicklung (Code oben)


WeChat-Zahlung kann nur durchgeführt werden Das Debuggen in einer Online-Umgebung ist sehr umständlich, daher ist es am besten, bei der Entwicklung Protokolle an jedem wichtigen Ort aufzuzeichnen.

1. Erhalten Sie den Autorisierungscode über den WeChat-Autorisierungsrückruf

Übergeben Sie zunächst die Einleitungszahlungsadresse und die zugehörigen Parameter an die WeChat-Zahlungsschnittstelle Erhalten und überprüft, fordern Sie Ihre Zahlungsadresse an und bringen Sie den Autorisierungscode mit.


Hier bin ich zum Beispiel



Stitching WeChat-Webseiten-Autorisierungs-URL-Methode

 //判断是否网页授权,获取授权code,没有代表没有授权,构造网页授权获取code,并重新请求
      if (string.IsNullOrEmpty(Request.QueryString["code"]))
      {
        string redirectUrl = _weChatPaySerivce.GetAuthorizeUrl(account.AppId, account.RedquestUrl,
          "STATE" + "#wechat_redirect", "snsapi_base");
        return Redirect(redirectUrl);
      }
Nach dem Login kopieren



2. Tauschen Sie den Autorisierungscode gegen die Webseitenautorisierung access_token und openid aus

public string GetAuthorizeUrl(string appId, string redirectUrl, string state, string scope)
    {
      string url = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope={2}&state={3}",
          appId, HttpUtility.UrlEncode(redirectUrl), scope, state);
      /* 这一步发送之后,客户会得到授权页面,无论同意或拒绝,都会返回redirectUrl页面。
       * 如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。这里的code用于换取access_token(和通用接口的access_token不通用)
       * 若用户禁止授权,则重定向后不会带上code参数,仅会带上state参数redirect_uri?state=STATE
       */
      AppLog.Write("获取到授权url:", AppLog.LogMessageType.Debug); 
      return url;
    }
Nach dem Login kopieren
Nach Erhalt des Autorisierungscodes Kombinieren Sie ab dem ersten Schritt die URL der Webseiten-Autorisierungsanforderung, um access_token und openid zu erhalten




3. Rufen Sie an die einheitliche Bestellschnittstelle, um Prepaid prepayId zu erhalten

 public Tuple<string, string> GetOpenidAndAccessTokenFromCode(string appId, string code, string appSecret)
    {
      Tuple<string, string> tuple = null;
      try
      {
        string url = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code", appId, appSecret, code);
        string result = WeChatPayHelper.Get(url);
        AppLog.Write("微信支付-获取openid和access_token 请求Url:" + url + "result:" + result, AppLog.LogMessageType.Debug);
        if (!string.IsNullOrEmpty(result))
        {
          var jd=Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(result);
          tuple = new Tuple<string, string>(jd["openid"],jd["access_token"]);
          AppLog.Write("微信支付-获取openid和access_token成功", AppLog.LogMessageType.Debug);
        }
      }
      catch (Exception ex)
      {
        AppLog.Write("微信支付:获取openid和access_tokenu异常", AppLog.LogMessageType.Debug,ex);
      }
      return tuple;
    }
Nach dem Login kopieren
Der RequestHandler hier ist eine von anderen online gepackte DLL, die Ihnen beim Packen der Signaturgenerierung und einiger Verifizierungsanfragen hilft. Die DLL kann von der offiziellen Website http://weixin.senparc.com/ heruntergeladen werden




4 . Jsapi-WeChat-Zahlungsanforderungsparameter einrichten, Zahlung einleiten

我这里是首先组装好微信支付所需要的参数,然后再创建调用js脚本


//生成JsAPI支付参数
      RequestHandler paySignReqHandler = new RequestHandler(null);
      paySignReqHandler.SetParameter("appId", account.AppId);
      paySignReqHandler.SetParameter("timeStamp", timeStamp);
      paySignReqHandler.SetParameter("nonceStr", nonceStr);
      paySignReqHandler.SetParameter("package", string.Format("prepay_id={0}", prepayId));
      paySignReqHandler.SetParameter("signType", "MD5");
      string paySign = paySignReqHandler.CreateMd5Sign("key", account.PaySignKey);
      WeChatJsPayRequestModel resultModel = new WeChatJsPayRequestModel
      {
        AppId = account.AppId,
        NonceStr = nonceStr,
        TimeStamp = timeStamp,
        Package = string.Format("prepay_id={0}", prepayId),
        PaySign = paySign,
        SignType = "MD5"
      };
Nach dem Login kopieren


创建调用脚本


private string CreateWeixinJs(WeChatJsPayRequestModel model)
    {
      string js = @"<script type=&#39;text/javascript&#39;>
                callpay();
                function jsApiCall(){
                 WeixinJSBridge.invoke(
                  &#39;getBrandWCPayRequest&#39;, {
                    requestParam
                  },
                  function (res) {
                    if(res.err_msg == &#39;get_brand_wcpay_request:ok&#39; ){
                        window.location.href = &#39;successUrl&#39;;
                    }else{
                        window.location.href = &#39;failUrl&#39;;
                    }
                  }
                 ); 
                }
               function callpay()
                {
                  if (typeof WeixinJSBridge == &#39;undefined&#39;){
                    if( document.addEventListener ){
                      document.addEventListener(&#39;WeixinJSBridgeReady&#39;, jsApiCall, false);
                    }else if (document.attachEvent){
                      document.attachEvent(&#39;WeixinJSBridgeReady&#39;, jsApiCall); 
                      document.attachEvent(&#39;onWeixinJSBridgeReady&#39;, jsApiCall);
                    }
                  }else{
                    jsApiCall();
                  }
                }
            </script>";
      string requestParam = string.Format(@"&#39;appId&#39;: &#39;{0}&#39;,&#39;timeStamp&#39;: &#39;{1}&#39;,&#39;nonceStr&#39;: &#39;{2}&#39;,&#39;package&#39;: &#39;{3}&#39;,&#39;signType&#39;: &#39;{4}&#39;,&#39;paySign&#39;: &#39;{5}&#39;",
        model.AppId, model.TimeStamp, model.NonceStr, model.Package, model.SignType, model.PaySign);
      js = js.Replace("requestParam", requestParam)
        .Replace("successUrl", model.JumpUrl + "&result=1")
        .Replace("failUrl", model.JumpUrl + "&result=0");
      AppLog.Write("生成可执行脚本成功", AppLog.LogMessageType.Debug);
      return js;
    }
Nach dem Login kopieren


5、接收微信支付回调进行后续操作

回调的时候首先需要验证签名是否正确,保证安全性,签名验证通过之后再进行后续的操作,订单状态、通知啥的。


ResponseHandler resHandler = new ResponseHandler(System.Web.HttpContext.Current);
      bool isSuccess = _weChatPaySerivce.ProcessNotify(resHandler);
      if (isSuccess)
      {
        string result = @"<xml>
                  <return_code><![CDATA[SUCCESS]]></return_code>
                  <return_msg><![CDATA[支付成功]]></return_msg>
                 </xml>";
        HttpContext.Response.Write(result);
        HttpContext.Response.End();
      }
      return new EmptyResult();
Nach dem Login kopieren


这里有一点需要注意,就是微信支付回调的时候微信会通知八次,好像是这个数吧,所以你需要在第一次收到通知之后,把收到请求这个状态以xml的格式响应给微信支付接口。当然你不进行这个操作也是可以的,再回调的时候 每次去判断该订单是否已经回调成功,回调成功则不进行处理就可以了。


Das obige ist der detaillierte Inhalt vonImplementierungsmethode zur Verwendung von .NET zum Parsen von WeChat-Zahlungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wenn Sie Ihr WeChat-Zahlungspasswort vergessen haben, wie können Sie es abrufen? Wenn Sie Ihr WeChat-Zahlungspasswort vergessen haben, wie können Sie es abrufen? Feb 23, 2024 pm 09:40 PM

In WeChat können Benutzer ihr Zahlungspasswort eingeben, um Einkäufe zu tätigen. Aber wie können sie ihr Zahlungspasswort abrufen, wenn sie es vergessen? Benutzer müssen zu „Meine Dienste – Wallet – Zahlungseinstellungen“ gehen, um ihr Zahlungspasswort wiederherzustellen, wenn sie es vergessen. In dieser Einführung erfahren Sie, wie Sie Ihr Zahlungskennwort abrufen können, wenn Sie es vergessen haben. Im Folgenden finden Sie eine detaillierte Einführung. Schauen Sie also mal rein! Tutorial zur WeChat-Nutzung. Wie finde ich das WeChat-Zahlungspasswort? Antwort: „Meine Service-Wallet-Zahlungseinstellungen – Zahlungspasswort vergessen“: 1. Klicken Sie zunächst auf „Mein“. 2. Klicken Sie auf den Dienst darin. 3. Klicken Sie auf die darin enthaltene Brieftasche. 4. Suchen Sie nach den Zahlungseinstellungen. 5. Klicken Sie auf Zahlungspasswort vergessen. 6. Geben Sie Ihre eigenen Informationen zur Überprüfung ein. 7. Geben Sie anschließend das neue Zahlungspasswort ein, um es zu ändern.

Was soll ich tun, wenn ich mein WeChat-Zahlungspasswort vergesse? Was soll ich tun, wenn ich mein WeChat-Zahlungspasswort vergesse? Jan 08, 2024 pm 05:02 PM

Lösung zum Vergessen des WeChat-Zahlungskennworts: 1. Öffnen Sie die WeChat-App und klicken Sie auf „I“ in der unteren rechten Ecke, um die Seite des persönlichen Zentrums aufzurufen. 2. Klicken Sie auf der Seite des persönlichen Zentrums auf „Bezahlen“, um die Zahlungsseite aufzurufen Klicken Sie auf der Zahlungsseite oben rechts auf „…“, um die Zahlungsverwaltungsseite aufzurufen. 4. Suchen Sie auf der Zahlungsverwaltungsseite nach „Zahlungskennwort vergessen“ und klicken Sie darauf Nach erfolgreicher Überprüfung können Sie die Methode „Abrufen durch Wischen Ihres Gesichts“ oder „Abrufen durch Verifizieren der Bankkarteninformationen“ wählen, um Ihr Passwort usw. abzurufen.

So richten Sie die WeChat-Zahlung für Meituan Takeout ein. So richten Sie die WeChat-Zahlung ein So richten Sie die WeChat-Zahlung für Meituan Takeout ein. So richten Sie die WeChat-Zahlung ein Mar 12, 2024 pm 10:34 PM

In der Meituan-App zum Mitnehmen werden zahlreiche Lebensmittel- und Snackläden angeboten, und alle Mobiltelefonbenutzer melden sich über ihre Konten an. Fügen Sie Ihre persönliche Lieferadresse und Kontaktnummer hinzu, um den bequemsten Abholservice zu genießen. Öffnen Sie die Startseite der Software, geben Sie Produktschlüsselwörter ein und suchen Sie online, um die entsprechenden Produktergebnisse zu finden, um zu kaufen und eine Bestellung aufzugeben. Die Plattform empfiehlt Ihnen außerdem Dutzende nahegelegener Restaurants mit guten Bewertungen basierend auf der Lieferadresse Der Shop kann auch verschiedene Zahlungsmethoden einrichten, um die Bestellung sofort abzuschließen. Es gibt auch rote Umschläge zum Mitnehmen Verschiedene Beträge zur Nutzung. Jetzt ist der Editor im Detail für Meituan-Takeout-Nutzer verfügbar. Wir zeigen Ihnen, wie Sie die WeChat-Zahlung einrichten. 1. Nachdem Sie das Produkt ausgewählt haben, senden Sie die Bestellung ab und klicken Sie auf Jetzt

So legen Sie die Abzugsreihenfolge für die WeChat-Zahlung fest So legen Sie die Abzugsreihenfolge für die WeChat-Zahlung fest Sep 06, 2023 am 11:11 AM

Schritte zum Festlegen der Abzugsreihenfolge für die WeChat-Zahlung: 1. Öffnen Sie die WeChat-App, klicken Sie auf die Benutzeroberfläche „Ich“, klicken Sie auf „Dienste“ und dann auf „Einziehen und Bezahlen“. 2. Klicken Sie auf „Verwendung priorisieren“. Zahlungsmethode“ unter dem Zahlungscode auf der Inkasso- und Zahlungsschnittstelle; 3. Wählen Sie die gewünschte bevorzugte Zahlungsmethode aus.

Kann Xianyu mit WeChat bezahlen? Wie wechselt man zur WeChat-Zahlungsmethode? Kann Xianyu mit WeChat bezahlen? Wie wechselt man zur WeChat-Zahlungsmethode? Mar 12, 2024 pm 12:19 PM

Wenn jeder nichts zu tun hat, wird er sich dafür entscheiden, die Xianyu-Plattform zu durchsuchen. Jeder kann feststellen, dass es auf dieser Plattform eine große Anzahl von Produkten gibt, die es jedem ermöglichen, verschiedene gebrauchte Produkte zu sehen Es gibt absolut kein Problem mit der Qualität dieser Produkte, sodass jeder sie mit Vertrauen kaufen kann. Die Preise sind sehr erschwinglich und es ist für Verkäufer dennoch durchaus möglich, sie persönlich kennenzulernen Solange alle ordnungsgemäß verhandeln, können Sie sich für die Durchführung von Transaktionen entscheiden, und wenn alle hier bezahlen, möchten sie die Zahlung über WeChat durchführen, aber es scheint, dass die Plattform dies nicht erlaubt um herauszufinden, wie die konkrete Situation ist. Xianyu

Muss WeChat Pay eine Bankkarte binden? Muss WeChat Pay eine Bankkarte binden? Nov 17, 2022 am 11:57 AM

WeChat Pay muss nicht an eine Bankkarte gebunden sein. WeChat-Zahlungen können ohne Bindung einer Bankkarte verwendet werden, vorausgesetzt, dass die Echtnamen-Authentifizierung durchgeführt wird, können Sie WeChat-Änderungen zum Versenden roter Umschläge, Überweisungen, Geldeinziehungen und WeChat-Zahlungen verwenden andere Operationen. Es ist zu beachten, dass WeChat kein Bargeld abheben kann, wenn es nicht an eine Bankkarte gebunden ist, und dass es Beschränkungen für Belege, Zahlungen, Überweisungen usw. gibt, mit einem Maximum von 200 Yuan für eine einzelne Transaktion und täglich und einem Maximum von 500 Yuan pro Monat.

Teilen Sie uns die Schritte zur Beantragung einer Rückerstattung mit WeChat Pay mit Teilen Sie uns die Schritte zur Beantragung einer Rückerstattung mit WeChat Pay mit Mar 25, 2024 pm 06:31 PM

1. Zuerst müssen wir die WeChat-App auf dem Mobiltelefon öffnen und dann klicken, um uns beim WeChat-Konto anzumelden, um die WeChat-Homepage aufzurufen. 2. Klicken Sie auf die Schaltfläche [Ich] in der unteren rechten Ecke der WeChat-Startseite und wählen Sie dann die Option [Zahlung] aus. Wir klicken, um die Zahlungsseite aufzurufen. 3. Nachdem Sie die Seite [Zahlung] aufgerufen haben, klicken Sie auf die Option [Wallet], um sie aufzurufen, und klicken Sie dann auf [Rechnung] in der oberen rechten Ecke der Seite [Wallet].

So bezahlen Sie mit WeChat auf Alibaba_So bezahlen Sie mit WeChat auf Alibaba 1688 So bezahlen Sie mit WeChat auf Alibaba_So bezahlen Sie mit WeChat auf Alibaba 1688 Mar 20, 2024 pm 05:51 PM

Alibaba 1688 ist eine Einkaufs- und Großhandelswebsite, und die Artikel dort sind viel günstiger als bei Taobao. Wie nutzt Alibaba die WeChat-Zahlung? Der Herausgeber hat einige relevante Inhalte zusammengestellt, die Sie mit Ihnen teilen können. Freunde in Not können vorbeikommen und einen Blick darauf werfen. Wie nutzt Alibaba WeChat zum Bezahlen? Antwort: WeChat-Zahlung kann vorerst nicht verwendet werden gehen Sie zu [Alipay, gestaffelte Zahlung], Kassierer] kann ausgewählt werden;

See all articles