Maison Applet WeChat Développement WeChat Paiement WeChat pour le développement du compte public WeChat

Paiement WeChat pour le développement du compte public WeChat

Feb 22, 2017 pm 04:02 PM
微信公众号

Il y a quelques jours, en raison des besoins d'un projet d'entreprise, j'ai souhaité créer une fonction de recharge en ligne à l'aide de WeChat. Il s'agit de cliquer sur une page Web dans le navigateur WeChat pour appeler le paiement WeChat. Parlons maintenant brièvement de WeChat. paiement Paiement du compte officiel processus de développement :

Tout d'abord, votre compte officiel doit être un compte de service certifié et doit avoir les autorisations de paiement WeChat activées avant de développer et d'écrire du code ; , nous devons effectuer certains paiements liés. Les informations sont configurées pour faciliter les opérations ultérieures. Après l'activation, WeChat vous enverra un e-mail contenant des informations relatives à la connexion en arrière-plan de votre plateforme marchande de compte officiel. sur la plateforme marchand, allez dans -> ;Paramètres du compte->Sécurité APIDéfinissez la clé, qui sera utilisée plus tard;

微信公众号开发之微信支付

Description des paramètres du compte


邮件中参数 API参数名 详细说明
APPID appid appid是微信公众账号或开放平台APP的唯一标识,在公众平台申请公众账号或者在开放平台申请APP账号后,微信会自动分配对应的appid,用于标识该应用。商户的微信支付审核通过邮件中也会包含该字段值。
微信支付商户号 mch_id 商户申请微信支付后,由微信支付分配的商户收款账号。
API密钥 key 交易过程生成签名的密钥,仅保留在商户系统和微信支付后台,不会在网络中传播。商户妥善保管该Key,切勿在网络中传输,不能在其他客户端中存储,保证key不会被泄漏。商户可根据邮件提示登录微信商户平台进行设置。
Appsecret secret AppSecret是APPID对应的接口密码,用于获取接口调用凭证access_token时使用。在微信支付中,先通过OAuth2.0接口获取用户openid,此openid用于微信内网页支付模式下单接口使用。在开发模式中获取AppSecret(成为开发者且帐号没有异常状态)。


Une fois ceux-ci terminés, nous comprendrons un processus commercial de paiement de compte officiel :

微信公众号开发之微信支付

Système marchand et Les principales interactions du système de paiement WeChat :

1. Le serveur marchand appelle l'interface de commande unifiée pour demander une commande. Pour l'API, veuillez vous référer à l'API publique [Unifiée. API de commande] ; avant de demander une commande à prépaiement, nous devons appeler l'autorisation de la page Web WeChat OAuth2.0. L'obtention du WeChat OpenId de l'utilisateur ne sera pas expliquée en détail ici. Voici l'implémentation du code pour les commandes prépayées :

string timeStamp = TenPayUtil.GetTimestamp();
                string nonceStr = TenPayUtil.GetNoncestr();
                string paySign = string.Empty;

                //创建支付应答对象
                var packageReqHandler = new RequestHandler(null);

                string spbill_create_ip = Request.UserHostAddress;

                //初始化
                //packageReqHandler.Init();
                //packageReqHandler.SetKey(TenPayInfo.Key);
                //设置package订单参数
                packageReqHandler.SetParameter("appid", appID); //公众账号ID
                packageReqHandler.SetParameter("body", StrUtil.GetCutString(productName, 100)); //不能超过127个字符
                packageReqHandler.SetParameter("mch_id", mchid); //商户号
                packageReqHandler.SetParameter("nonce_str", nonceStr.ToLower()); //随机字符串
                packageReqHandler.SetParameter("notify_url", notifyUrl); //接收财付通通知的URL
                packageReqHandler.SetParameter("openid", openId); //openid
                packageReqHandler.SetParameter("out_trade_no", sp_billno); //商家订单号
                // packageReqHandler.SetParameter("attach", "");          //附加数据  未来可用于区分不同微信支付业务
                packageReqHandler.SetParameter("spbill_create_ip", spbill_create_ip); //用户的公网ip,不是商户服务器IP
                packageReqHandler.SetParameter("total_fee", (onlinePayMoney * 100).ToString("0")); //商品金额,以分为单位(money * 100).ToString()
                packageReqHandler.SetParameter("trade_type", "JSAPI"); //交易类型

                //获取package包
                string sign = packageReqHandler.CreateMd5Sign("key", TenPayInfo.Key);
                packageReqHandler.SetParameter("sign", sign); //交易类型
                string data = packageReqHandler.ParseXML();
                LoggerHelper.Log(data);
                
                //调用统一下单接口请求订单
                var result = TenPayV3Service.Unifiedorder(data);
                LoggerHelper.Log(result);

                var res = XDocument.Parse(result);

                string prepayId = string.Empty;
                if (res.Element("xml").Element("return_code").Value == "SUCCESS")
                {
                    prepayId = res.Element("xml").Element("prepay_id").Value;
                }

                string package = string.Format("prepay_id={0}", prepayId);
                timeStamp = TenPayUtil.GetTimestamp();

                //设置支付参数
                var paySignReqHandler = new RequestHandler(null);
                paySignReqHandler.SetParameter("appId", appID);
                paySignReqHandler.SetParameter("timeStamp", timeStamp);
                paySignReqHandler.SetParameter("nonceStr", nonceStr);
                paySignReqHandler.SetParameter("package", package);
                paySignReqHandler.SetParameter("signType", "MD5");
                paySign = paySignReqHandler.CreateMd5Sign("key", TenPayInfo.Key);

                //将信息传递给支付页面
                ViewBag.appId = appID;
                ViewBag.timeStamp = timeStamp;
                ViewBag.nonceStr = nonceStr;
                ViewBag.package = package;
                ViewBag.paySign = paySign;
Copier après la connexion


ci-dessous C'est le code associé à la page js :


<script type="text/javascript">        // 当微信内置浏览器完成内部初始化后会触发WeixinJSBridgeReady事件。
        document.addEventListener(&#39;WeixinJSBridgeReady&#39;, function onBridgeReady() {
            $(function () {                //公众号支付
                jQuery(&#39;#getBrandWCPayRequest&#39;).click(function (e) {
                    WeixinJSBridge.invoke(&#39;getBrandWCPayRequest&#39;, {                        "appId": "@ViewBag.appId", //公众号名称
                        "timeStamp": "@ViewBag.timeStamp", //时间戳
                        "nonceStr": "@ViewBag.nonceStr", //随机串
                        "package": "@Html.Raw(ViewBag.package.ToString())",//扩展包
                        "signType": "MD5", //微信签名方式
                        "paySign": "@ViewBag.paySign" //微信签名                    }, function (res) {                        if (res.err_msg == "get_brand_wcpay_request:ok") {                            //alert("微信支付成功!");
                            window.location.href = "@WxPaySettingConfig.WmallURL/Wmall/TradePay/Success/@ViewBag.ShopId/?orderNo=@orderNoMark";
                        }                        else if (res.err_msg == "get_brand_wcpay_request:cancel") {                            //alert("用户取消支付!");                        }                        else {
                            window.location.href = "/wxpay/jsapi/error/?isPayFail=1&csid=@ViewBag.ShopId&orderNo=@orderNoMark&biztype=1";    
                        }                        // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。                        //因此微信团队建议,当收到ok返回时,向商户后台询问是否收到交易成功的通知,若收到通知,前端展示交易成功的界面;若此时未收到通知,商户后台主动调用查询订单接口,查询订单的当前状态,并反馈给前端展示相应的界面。                    });
                });
            });            //WeixinJSBridge.log(&#39;yo~ ready.&#39;);
        }, false);    </script>
Copier après la connexion


2. Le serveur marchand reçoit Pour la notification de paiement, veuillez vous référer à l'API publique [API de notification de résultat de paiement]

[HttpPost]
        public void NoticeUrl()
        {
            string xmlString = HttpClientHelper.GetPostString(Request);  5 
            //此处应记录日志
            LoggerHelper.Log(string.Format("【微支付】异步通知参数:{0}", xmlString));  8 
            var returnMsg = new ReturnMessage() { Return_Code = "SUCCESS", Return_Msg = string.Empty };
            //通知消息实体
            NotifyMessage message = null;
            //订单处理相关的方法内全局变量
            bool isNeedDeal = false; //标识订单是否需要处理
            string orderNo = string.Empty; //订单编号 (需要根据商家数据包字段判断所属订单)
            CorpSalesOrder saleOrder = null;
            try
            {
                message = HttpClientHelper.XmlDeserialize<NotifyMessage>(xmlString);
 
                //订单号 获得
                orderNo = message.Out_Trade_No;
                if (string.IsNullOrEmpty(orderNo))
                {
                    throw new InvalidOperationException("未找到该订单信息.");
                } 45                 var doc = new XmlDocument();
                doc.LoadXml(xmlString);
                var dic = new Dictionary<string, string>();
                string sign = string.Empty;
                foreach (XmlNode node in doc.FirstChild.ChildNodes)
                {
                    if (node.Name.ToLower() != "sign")
                        dic.Add(node.Name, node.InnerText);
                    else
                        sign = node.InnerText;
                }
                UnifiedWxPayModel model = UnifiedWxPayModel.CreateUnifiedModel(xddAppId, xddMchid, xddWxkey);
                if (model.ValidateMD5Signature(dic, sign))
                {
                    //处理通知 业务逻辑:
                    if (message.Return_Code == "SUCCESS")
                    {
                        if (message.Result_Code == "SUCCESS")
                        {
                   //此处处理支付成功后的业务逻辑
                        }
                        else
                        {
                            throw new InvalidOperationException(string.Format("{0}:{1}", message.Err_Code, message.Err_Code_Des));
                        }
                    }
                    else
                    {
                        throw new InvalidOperationException(message.Return_Msg);
                    }
                }
            }
            catch (InvalidOperationException e)
            {
                //此处记录异常日志
                returnMsg.Return_Code = "FAIL";
                returnMsg.Return_Msg = e.Message;
                LoggerHelper.Log("【微信支付异步通知】出错,订单编号:" + orderNo + ",错误原因:" + e.Message);
            }
            catch (Exception e)
            {
                //此处记录异常日志
                returnMsg.Return_Code = "FAIL";
                returnMsg.Return_Msg = e.Message;
                LoggerHelper.Log("【微信支付异步通知】出错,订单编号:" + orderNo + ",错误原因:" + (e.InnerException == null ? e.Message : e.InnerException.ToString()));
            }
            Response.Write(returnMsg.ToXmlString());
            Response.End();
        }
Copier après la connexion
Pour plus d'articles sur les paiements WeChat sur le développement de comptes publics WeChat, veuillez faire attention au site Web PHP 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)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
2 Il y a quelques semaines 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)

Scrapy implémente l'exploration et l'analyse des articles du compte public WeChat Scrapy implémente l'exploration et l'analyse des articles du compte public WeChat Jun 22, 2023 am 09:41 AM

Scrapy met en œuvre l'exploration d'articles et l'analyse des comptes publics WeChat. WeChat est une application de médias sociaux populaire ces dernières années, et les comptes publics qui y sont exploités jouent également un rôle très important. Comme nous le savons tous, les comptes publics WeChat sont un océan d’informations et de connaissances, car chaque compte public peut publier des articles, des messages graphiques et d’autres informations. Ces informations peuvent être largement utilisées dans de nombreux domaines, tels que les reportages médiatiques, la recherche universitaire, etc. Ainsi, cet article expliquera comment utiliser le framework Scrapy pour explorer et analyser les articles du compte public WeChat. Scr

Quelles sont les différences entre la certification et la non-certification du compte officiel WeChat ? Quelles sont les différences entre la certification et la non-certification du compte officiel WeChat ? Sep 19, 2023 pm 02:15 PM

La différence entre l'authentification du compte public WeChat et la non-authentification réside dans le logo d'authentification, les autorisations de fonction, la fréquence de poussée, les autorisations d'interface et la confiance de l'utilisateur. Introduction détaillée : 1. Le logo de certification. Les comptes publics certifiés obtiendront le logo de certification officiel, qui est le logo bleu V. Ce logo peut augmenter la crédibilité et l'autorité du compte public et permettre aux utilisateurs d'identifier plus facilement le véritable compte public officiel. 2. Autorisations de fonction. Les comptes publics certifiés ont plus de fonctions et d'autorisations que les comptes publics non certifiés. Par exemple, les comptes publics certifiés peuvent demander à activer la fonction de paiement WeChat pour réaliser des paiements en ligne et des opérations commerciales, etc.

Combat pratique de robots d'exploration en Python : robot d'exploration de compte public WeChat Combat pratique de robots d'exploration en Python : robot d'exploration de compte public WeChat Jun 10, 2023 am 09:01 AM

Python est un langage de programmation élégant doté de puissantes capacités de traitement des données et d'exploration Web. À l’ère du numérique, Internet regorge d’une grande quantité de données et les robots d’exploration sont devenus un moyen important d’obtenir des données. Par conséquent, les robots d’exploration Python sont largement utilisés dans l’analyse et l’exploration de données. Dans cet article, nous expliquerons comment utiliser le robot d'exploration Python pour obtenir des informations sur les articles du compte public WeChat. Le compte officiel WeChat est une plateforme de médias sociaux populaire pour la publication d'articles en ligne et constitue un outil important pour la promotion et le marketing de nombreuses entreprises et médias personnels.

Comment utiliser Laravel pour développer un système de commande en ligne basé sur le compte public WeChat Comment utiliser Laravel pour développer un système de commande en ligne basé sur le compte public WeChat Nov 02, 2023 am 09:42 AM

Comment utiliser Laravel pour développer un système de commande en ligne basé sur les comptes officiels WeChat. Avec l'utilisation généralisée des comptes officiels WeChat, de plus en plus d'entreprises commencent à les utiliser comme canal important de marketing en ligne. Dans le secteur de la restauration, le développement d'un système de commande en ligne basé sur les comptes publics WeChat peut améliorer l'efficacité et les ventes des entreprises. Cet article expliquera comment utiliser le framework Laravel pour développer un tel système et fournira des exemples de code spécifiques. Préparation du projet Tout d'abord, vous devez vous assurer que le framework Laravel a été installé dans l'environnement local. D'ACCORD

Le compte officiel ne peut-il publier qu'un seul article par jour ? Le compte officiel ne peut-il publier qu'un seul article par jour ? Jun 16, 2023 pm 02:04 PM

Le compte public peut non seulement publier un article par jour, mais peut publier jusqu'à huit articles à la fois. Comment publier plusieurs articles : 1. Cliquez sur « Gestion du matériel » sur la gauche, puis cliquez sur « Nouveau matériel graphique et textuel ». pour commencer l'édition. Premier article ; 2. Après avoir édité le premier article, cliquez sur le signe + sous le premier article à gauche et cliquez sur « Image et message texte » pour modifier le deuxième article ; "Enregistrer et envoyer en masse" pour finaliser la publication de plusieurs articles.

Utilisez PHP pour créer une interface API de compte public WeChat Utilisez PHP pour créer une interface API de compte public WeChat May 13, 2023 pm 12:01 PM

À l’ère d’Internet d’aujourd’hui, les comptes officiels WeChat sont devenus un canal de marketing important pour de plus en plus d’entreprises. Si vous souhaitez que votre compte officiel WeChat implémente plus de fonctions, vous devez souvent écrire les interfaces correspondantes. Cet article utilisera le langage PHP comme exemple pour présenter comment créer une interface API de compte public WeChat. 1. Préparation Avant d'écrire l'interface API du compte public WeChat, le développeur doit disposer d'un compte de compte public WeChat et demander les autorisations d'interface de développeur sur la plateforme publique WeChat. Une fois l'application réussie, vous pouvez obtenir les développeurs AppID et AppSe appropriés.

Guide de développement de comptes publics PHP et WeChat Guide de développement de comptes publics PHP et WeChat Jun 11, 2023 pm 03:31 PM

Avec la popularité progressive des comptes publics WeChat sur les réseaux sociaux, de plus en plus de développeurs ont commencé à s'impliquer dans le domaine du développement de comptes publics WeChat. Parmi eux, PHP, en tant que langage de programmation back-end commun, a également commencé à être largement utilisé dans le développement des comptes publics WeChat. Cet article présentera les connaissances de base et les techniques courantes de PHP dans le développement de comptes publics WeChat. 1. Bases du développement de comptes publics PHP et WeChat Développement de comptes publics WeChat Le compte public WeChat fait référence à une application Internet basée sur la plate-forme WeChat, qui peut fournir aux utilisateurs différents types de services et de contenus, tels que la diffusion d'informations.

Créer une application de compte public WeChat à l'aide du framework de langage Go Créer une application de compte public WeChat à l'aide du framework de langage Go Jun 04, 2023 am 10:40 AM

Avec la popularité d’Internet et l’utilisation généralisée des appareils mobiles, les comptes officiels WeChat sont devenus un élément indispensable du marketing d’entreprise. Grâce aux comptes publics WeChat, les entreprises peuvent facilement interagir avec les utilisateurs, promouvoir des produits et services et accroître la notoriété de leur marque. Afin de mieux développer les applications de compte public WeChat, de plus en plus de développeurs et d'entreprises choisissent d'utiliser le langage Go pour créer des applications de compte public WeChat. Le langage Go est un langage de programmation développé par Google. Sa syntaxe est concise et adaptée à la création d'applications en temps réel hautes performances et à haute concurrence. En termes de facilité d'utilisation et

See all articles