Maison Applet WeChat Développement WeChat Méthode de mise en œuvre de l'utilisation de .NET pour analyser le paiement WeChat

Méthode de mise en œuvre de l'utilisation de .NET pour analyser le paiement WeChat

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

En raison de l'utilisation généralisée de WeChat, une série de produits développés sur la base de WeChat ont vu le jour. Cet article présente principalement la méthode de mise en œuvre de l'analyse du paiement WeChat (version .NET). Ceux qui sont intéressés peuvent en apprendre davantage.

J'ai créé une version Web du paiement WeChat il y a quelque temps et j'ai rencontré de nombreux problèmes, mais ils ont finalement été résolus. Je vais maintenant enregistrer le processus de développement et les instructions ici pour donner aux autres quelques références.

1. Préparation

Tout d'abord, vous devez activer la fonction de paiement WeChat. Dans le passé, l'activation du paiement WeChat nécessitait un dépôt de 30 000, mais c'est maintenant le cas. n'est plus nécessaire, alors... Création de cette fonctionnalité.

Pour développer le paiement WeChat, vous devez effectuer les réglages appropriés dans le backend du compte officiel et le backend du marchand WeChat.

1. Configuration du répertoire de développement

Le paiement WeChat doit configurer le répertoire d'autorisation de paiement en arrière-plan du compte officiel (paiement WeChat = "Configuration de développement"). Le répertoire autorisé ici doit être une adresse en ligne, c'est-à-dire une adresse accessible via Internet. Le système de paiement WeChat doit pouvoir accéder à votre adresse via Internet.

Le répertoire autorisé WeChat doit être précis par rapport au répertoire de deuxième ou troisième niveau. Exemple : Si le lien pour lancer le paiement est http://www.hxfspace.net/weixin/WeXinPay/WeXinPayChoose, alors le répertoire configuré. devrait être http://www.hxfspace.net/weixin/WeXinPay/ où http://www.hxfspace.net est le nom de domaine et weixin est le répertoire virtuel WeXinPay, qui est le contrôleur. Les demandes de paiement associées sont toutes présentes. l'action dans WeXinPay.

Méthode de mise en œuvre de lutilisation de .NET pour analyser le paiement WeChat

                                                              Effectuez un rappel de la demande de paiement pour obtenir le code d'autorisation (code), vous devez donc définir ici le nom de domaine d'autorisation. Bien entendu, le nom de domaine doit ici être le même que celui figurant dans le répertoire d'autorisation de paiement. N'oubliez pas de configurer ça. J'ai juste oublié de le configurer et j'ai longtemps cherché la raison, en pleurant à mort.

3. Préparation des paramètres pertinents

Méthode de mise en œuvre de lutilisation de .NET pour analyser le paiement WeChat
Pour appeler le paiement WeChat, vous devez lancer une demande de paiement auprès du système de paiement WeChat via un script. Pour la description des paramètres, voir

Plateforme de paiement du site officiel WeChat

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

La génération du package et paySign nécessite la clé de développeur AppSecret (clé d'application), le compte marchand WeChat et la clé de paiement WeChat

2. processus

Méthode de mise en œuvre de lutilisation de .NET pour analyser le paiement WeChat

Sans plus tarder, parlons du processus après le tri :

1 Obtenez le code d'autorisation via le rappel d'autorisation WeChat
2. Via le code d'autorisation En échange de l'autorisation de la page Web access_token et openid


3. Appelez l'interface de commande unifiée pour obtenir le prepayId


4. Configurez les paramètres de demande de paiement jsapi WeChat et lancez le paiement


5. Recevez un rappel de paiement WeChat pour les opérations ultérieures


3. Développement spécifique (code ci-dessus)


Le paiement WeChat ne peut être effectué que dans un environnement en ligne. Il est très peu pratique de déboguer, il est donc préférable d'enregistrer les journaux à chaque emplacement clé lors du développement.


1. Obtenez le code d'autorisation via le rappel d'autorisation WeChat

Tout d'abord, transmettez l'adresse de paiement d'initiation et les paramètres associés à l'interface de paiement WeChat. reçu et vérifié, demandez votre adresse de paiement et apportez le code d'autorisation.

Par exemple, me voici



Méthode d'URL d'autorisation de page Web Stitching WeChat


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



2. Échangez le code d'autorisation pour l'autorisation de la page Web access_token et openid


Après avoir obtenu le code d'autorisation dès la première étape, combinez l'URL de demande d'autorisation de la page Web pour obtenir access_token et openid

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;
    }
Copier après la connexion




3. Appelez l'interface de commande unifiée pour obtenir le prépaiement prepayId


Le RequestHandler ici est une dll packagée par d'autres en ligne, qui vous aide à packager la génération de signature et certaines demandes de vérification. La dll peut être téléchargée depuis leur site officiel http://weixin.senparc.com/

 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;
    }
Copier après la connexion




4 . Configurez les paramètres de demande de paiement jsapi WeChat, lancez le paiement

.

我这里是首先组装好微信支付所需要的参数,然后再创建调用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"
      };
Copier après la connexion


创建调用脚本


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;
    }
Copier après la connexion


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();
Copier après la connexion


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


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Si vous oubliez votre mot de passe de paiement WeChat, comment le récupérer ? Si vous oubliez votre mot de passe de paiement WeChat, comment le récupérer ? Feb 23, 2024 pm 09:40 PM

Dans WeChat, les utilisateurs peuvent saisir leur mot de passe de paiement pour effectuer des achats, mais comment récupérer leur mot de passe de paiement s’ils l’oublient ? Les utilisateurs doivent accéder à Mes-Services-Wallet-Paramètres de paiement-pour récupérer leur mot de passe de paiement s'ils l'oublient. Cette introduction sur la façon de récupérer votre mot de passe de paiement si vous l'oubliez vous indiquera la méthode de fonctionnement spécifique. Ce qui suit est une introduction détaillée, alors jetez-y un œil ! Tutoriel d'utilisation de WeChat. Comment trouver le mot de passe de paiement WeChat si vous l'oubliez ? Réponse : Mon-Service-Wallet-Paramètres de paiement-Mot de passe de paiement oublié Méthode spécifique : 1. Tout d'abord, cliquez sur Mon. 2. Cliquez sur le service à l'intérieur. 3. Cliquez sur le portefeuille à l'intérieur. 4. Recherchez les paramètres de paiement. 5. Cliquez sur Mot de passe de paiement oublié. 6. Entrez vos propres informations pour vérification. 7. Saisissez ensuite le nouveau mot de passe de paiement pour le modifier.

Que dois-je faire si j'oublie mon mot de passe de paiement WeChat ? Que dois-je faire si j'oublie mon mot de passe de paiement WeChat ? Jan 08, 2024 pm 05:02 PM

Solution pour oublier le mot de passe de paiement WeChat : 1. Ouvrez l'application WeChat, cliquez sur « I » dans le coin inférieur droit pour accéder à la page du centre personnel ; 2. Dans la page du centre personnel, cliquez sur « Payer » pour accéder à la page de paiement ; sur la page de paiement, cliquez sur "..." dans le coin supérieur droit pour accéder à la page de gestion des paiements ; 4. Dans la page de gestion des paiements, recherchez et cliquez sur "Mot de passe de paiement oublié" 5. Suivez les invites de la page et saisissez les informations personnelles pour vérification d'identité. Après une vérification réussie, vous pouvez choisir la méthode « récupérer en faisant glisser votre visage » ou « récupérer en vérifiant les informations de votre carte bancaire » pour récupérer votre mot de passe, etc.

Comment configurer le paiement WeChat pour Meituan Takeout Comment configurer le paiement WeChat Comment configurer le paiement WeChat pour Meituan Takeout Comment configurer le paiement WeChat Mar 12, 2024 pm 10:34 PM

Il existe de nombreux magasins d'alimentation et de collations proposés dans l'application de plats à emporter Meituan, et tous les utilisateurs de téléphones mobiles se connectent via leur compte. Ajoutez votre adresse de livraison personnelle et votre numéro de contact pour profiter du service de plats à emporter le plus pratique. Ouvrez la page d'accueil du logiciel, saisissez les mots-clés des produits et effectuez une recherche en ligne pour trouver les résultats des produits correspondants. Faites simplement glisser votre doigt vers le haut ou vers le bas pour acheter et passer une commande. La plateforme recommandera également des dizaines de restaurants à proximité avec des avis élevés en fonction de l'adresse de livraison. fourni par l'utilisateur. Le magasin peut également mettre en place différents modes de paiement. Vous pouvez passer une commande en un seul clic pour finaliser la commande. Le coursier peut organiser la livraison immédiatement et la vitesse de livraison est également très rapide. différents montants à utiliser. L'éditeur est désormais en ligne en détail pour les utilisateurs de plats à emporter Meituan. Nous vous montrons comment configurer le paiement WeChat. 1. Après avoir sélectionné le produit, soumettez la commande et cliquez sur Maintenant.

Comment définir l'ordre de déduction pour le paiement WeChat Comment définir l'ordre de déduction pour le paiement WeChat Sep 06, 2023 am 11:11 AM

Étapes pour définir l'ordre des déductions pour le paiement WeChat : 1. Ouvrez l'application WeChat, cliquez sur l'interface « Moi », cliquez sur « Services », puis cliquez sur « Collecte et paiement » 2. Cliquez sur « Prioriser l'utilisation de ceci » ; Mode de paiement" sous le code de paiement sur l'interface d'encaissement et de paiement ; 3. Sélectionnez le mode de paiement préféré dont vous avez besoin.

Xianyu peut-il payer avec WeChat ? Comment passer au mode de paiement WeChat ? Xianyu peut-il payer avec WeChat ? Comment passer au mode de paiement WeChat ? Mar 12, 2024 pm 12:19 PM

Quand tout le monde n'a rien à faire, ils choisiront de parcourir la plateforme Xianyu. Tout le monde peut constater qu'il existe un grand nombre de produits sur cette plateforme, ce qui peut permettre à chacun de voir divers produits d'occasion, même si ces produits sont d'occasion. produits, il n'y a absolument aucun problème avec la qualité de ces produits, donc tout le monde peut les acheter en toute confiance. Les prix sont très abordables, et ils permettent toujours à tout le monde de se retrouver en face-à-face avec ces produits. communiquer et mener certaines opérations de négociation de prix. Tant que tout le monde négocie correctement, vous pouvez choisir d'effectuer des transactions, et lorsque tout le monde paie ici, il veut effectuer un paiement WeChat, mais il semble que la plateforme ne soit pas autorisée. pour voir quelle est la situation spécifique. Xianyu

WeChat Pay doit-il lier une carte bancaire ? WeChat Pay doit-il lier une carte bancaire ? Nov 17, 2022 am 11:57 AM

WeChat Pay n'a pas besoin d'être lié à une carte bancaire. Le paiement WeChat peut être utilisé sans lier de carte bancaire, à condition qu'une authentification par nom réel soit effectuée. Tant que l'authentification par nom réel est réussie, vous pouvez utiliser le changement WeChat pour envoyer des enveloppes rouges, transférer, collecter de l'argent, payer WeChat et. d'autres opérations. Il convient de noter que WeChat ne peut pas retirer d'argent s'il n'est pas lié à une carte bancaire, et qu'il existe des limites sur les reçus, paiements, virements, etc., avec un maximum de 200 yuans pour une seule transaction et par jour, et un maximum de 500 yuans par mois.

Partager les étapes pour demander un remboursement avec WeChat Pay Partager les étapes pour demander un remboursement avec WeChat Pay Mar 25, 2024 pm 06:31 PM

1. Tout d'abord, nous devons ouvrir l'application WeChat sur le téléphone mobile, puis cliquer pour nous connecter au compte WeChat, afin d'accéder à la page d'accueil de WeChat. 2. Cliquez sur le bouton [Moi] dans le coin inférieur droit de la page d'accueil de WeChat, puis sélectionnez l'option [Paiement] Nous cliquons pour accéder à la page de paiement. 3. Après avoir accédé à la page [Paiement], cliquez sur l'option [Porte-monnaie] pour entrer, puis cliquez sur [Facture] dans le coin supérieur droit de la page [Porte-monnaie].

Comment payer avec WeChat sur Alibaba_Comment payer avec WeChat sur Alibaba 1688 Comment payer avec WeChat sur Alibaba_Comment payer avec WeChat sur Alibaba 1688 Mar 20, 2024 pm 05:51 PM

Alibaba 1688 est un site Web d'achat et de vente en gros, et les articles y sont beaucoup moins chers que Taobao. Alors, comment Alibaba utilise-t-il le paiement WeChat ? L'éditeur a compilé du contenu pertinent à partager avec vous. Les amis dans le besoin peuvent venir y jeter un œil. Comment Alibaba utilise-t-il WeChat pour payer ? Réponse : Le paiement WeChat ne peut pas être utilisé pour le moment ; allez dans [Alipay, paiement échelonné], caissier] peut être sélectionné ;

See all articles