Heim WeChat-Applet WeChat-Entwicklung WeChat-Zahlung für die Entwicklung eines öffentlichen WeChat-Kontos

WeChat-Zahlung für die Entwicklung eines öffentlichen WeChat-Kontos

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

Vor ein paar Tagen wollte ich aufgrund von Unternehmensprojektanforderungen eine Funktion zum Online-Aufladen mit WeChat erstellen. Dies besteht darin, auf eine Webseite im WeChat-Browser zu klicken, um die WeChat-Zahlung aufzurufen Zahlung Offizielle Kontozahlung Entwicklungsprozess:

Zunächst muss Ihr offizielles Konto ein zertifiziertes Dienstkonto sein und müssen WeChat-Zahlungsberechtigungen aktiviert haben, bevor Sie Code entwickeln und schreiben , wir müssen einige Zahlungen im Zusammenhang mit den Informationen vornehmen, um nachfolgende Vorgänge zu erleichtern. Nach der Aktivierung sendet Ihnen WeChat eine E-Mail, die einige Informationen zur Hintergrundanmeldung Ihrer offiziellen Konto-Händlerplattform enthält Gehen Sie zur Händlerplattform zu -> ;Kontoeinstellungen->API-SicherheitLegen Sie den Schlüssel fest, der später verwendet wird;

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

Kontoparameterbeschreibung


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


Nachdem diese abgeschlossen sind, werden wir einen Geschäftsprozess der offiziellen Kontozahlung verstehen:

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

Händlersystem und Die wichtigsten Interaktionen des WeChat-Zahlungssystems:

1. Der Händlerserver ruft die einheitliche Bestellschnittstelle auf, um eine Bestellung anzufordern. Informationen zur API finden Sie in der öffentlichen API [Unified Bestell-API]; Bevor wir eine Vorauszahlungsbestellung anfordern, müssen wir die WeChat OAuth2.0-Webseitenautorisierung aufrufen. Der Erhalt der WeChat OpenId wird hier nicht im Detail erläutert. Das Folgende ist die Code-Implementierung für Prepaid-Bestellungen:

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;
Nach dem Login kopieren


unten Es ist der Seiten-JS-bezogene Code:


<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>
Nach dem Login kopieren


2. Der Händlerserver empfängt Informationen zur Zahlungsbenachrichtigung finden Sie in der öffentlichen API [Payment Result Notification API]

[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();
        }
Nach dem Login kopieren

Weitere Artikel zum Thema WeChat-Zahlung zur Entwicklung öffentlicher WeChat-Konten finden Sie auf der chinesischen PHP-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)

Scrapy implementiert das Crawlen und Analysieren von Artikeln über öffentliche WeChat-Konten Scrapy implementiert das Crawlen und Analysieren von Artikeln über öffentliche WeChat-Konten Jun 22, 2023 am 09:41 AM

Scrapy implementiert das Crawlen von Artikeln und die Analyse öffentlicher WeChat-Konten. WeChat ist in den letzten Jahren eine beliebte Social-Media-Anwendung, und die darin betriebenen öffentlichen Konten spielen ebenfalls eine sehr wichtige Rolle. Wie wir alle wissen, sind öffentliche WeChat-Konten ein Ozean an Informationen und Wissen, da jedes öffentliche Konto Artikel, grafische Nachrichten und andere Informationen veröffentlichen kann. Diese Informationen können in vielen Bereichen umfassend genutzt werden, beispielsweise in Medienberichten, in der akademischen Forschung usw. In diesem Artikel erfahren Sie, wie Sie das Scrapy-Framework zum Crawlen und Analysieren von WeChat-Artikeln zu öffentlichen Konten verwenden. Scr

Was sind die Unterschiede zwischen der offiziellen WeChat-Kontozertifizierung und der Nichtzertifizierung? Was sind die Unterschiede zwischen der offiziellen WeChat-Kontozertifizierung und der Nichtzertifizierung? Sep 19, 2023 pm 02:15 PM

Der Unterschied zwischen der Authentifizierung öffentlicher WeChat-Konten und der Nichtauthentifizierung liegt im Authentifizierungslogo, den Funktionsberechtigungen, der Push-Häufigkeit, den Schnittstellenberechtigungen und dem Benutzervertrauen. Detaillierte Einführung: 1. Zertifizierungslogo. Zertifizierte öffentliche Konten erhalten das offizielle Zertifizierungslogo, das blaue V-Logo. Dieses Logo kann die Glaubwürdigkeit und Autorität des öffentlichen Kontos erhöhen und es Benutzern erleichtern, das echte offizielle öffentliche Konto zu identifizieren 2. Funktionsberechtigungen. Zertifizierte öffentliche Konten verfügen beispielsweise über mehr Funktionen und Berechtigungen als nicht zertifizierte öffentliche Konten.

Praktischer Crawler-Kampf in Python: WeChat-Crawler für öffentliche Konten Praktischer Crawler-Kampf in Python: WeChat-Crawler für öffentliche Konten Jun 10, 2023 am 09:01 AM

Python ist eine elegante Programmiersprache mit leistungsstarken Datenverarbeitungs- und Web-Crawling-Funktionen. In diesem digitalen Zeitalter ist das Internet mit großen Datenmengen gefüllt, und Crawler sind zu einem wichtigen Mittel zur Datenbeschaffung geworden. Daher werden Python-Crawler häufig bei der Datenanalyse und beim Mining eingesetzt. In diesem Artikel stellen wir vor, wie Sie den Python-Crawler verwenden, um Artikelinformationen zu öffentlichen WeChat-Konten zu erhalten. Der offizielle WeChat-Account ist eine beliebte Social-Media-Plattform für die Online-Veröffentlichung von Artikeln und ein wichtiges Instrument für die Werbung und das Marketing vieler Unternehmen und Self-Media.

So entwickeln Sie mit Laravel ein Online-Bestellsystem basierend auf dem öffentlichen WeChat-Konto So entwickeln Sie mit Laravel ein Online-Bestellsystem basierend auf dem öffentlichen WeChat-Konto Nov 02, 2023 am 09:42 AM

So entwickeln Sie mit Laravel ein Online-Bestellsystem auf Basis offizieller WeChat-Konten Mit der weit verbreiteten Nutzung offizieller WeChat-Konten beginnen immer mehr Unternehmen, diese als wichtigen Kanal für das Online-Marketing zu nutzen. In der Gastronomiebranche kann die Entwicklung eines Online-Bestellsystems auf Basis öffentlicher WeChat-Konten die Effizienz und den Umsatz von Unternehmen verbessern. In diesem Artikel wird erläutert, wie Sie mit dem Laravel-Framework ein solches System entwickeln, und es werden spezifische Codebeispiele bereitgestellt. Projektvorbereitung Zunächst müssen Sie sicherstellen, dass das Laravel-Framework in der lokalen Umgebung installiert wurde. OK

Verwenden Sie PHP, um eine API-Schnittstelle für öffentliche WeChat-Konten zu erstellen Verwenden Sie PHP, um eine API-Schnittstelle für öffentliche WeChat-Konten zu erstellen May 13, 2023 pm 12:01 PM

Im heutigen Internetzeitalter sind offizielle WeChat-Konten für immer mehr Unternehmen zu einem wichtigen Marketingkanal geworden. Wenn Sie möchten, dass Ihr offizielles WeChat-Konto mehr Funktionen implementiert, müssen Sie häufig entsprechende Schnittstellen schreiben. In diesem Artikel wird die PHP-Sprache als Beispiel verwendet, um vorzustellen, wie eine API-Schnittstelle für ein öffentliches WeChat-Konto erstellt wird. 1. Vorbereitung Vor dem Schreiben der API-Schnittstelle für das öffentliche WeChat-Konto muss der Entwickler über ein öffentliches WeChat-Kontokonto verfügen und Berechtigungen für die Entwicklerschnittstelle auf der öffentlichen WeChat-Plattform beantragen. Nachdem die Bewerbung erfolgreich war, können Sie die entsprechende Entwickler-AppID und AppSe erhalten

Kann der offizielle Account nur einen Artikel pro Tag veröffentlichen? Kann der offizielle Account nur einen Artikel pro Tag veröffentlichen? Jun 16, 2023 pm 02:04 PM

Das öffentliche Konto kann nicht nur einen Artikel pro Tag veröffentlichen, sondern bis zu acht Artikel gleichzeitig. So veröffentlichen Sie mehrere Artikel: 1. Klicken Sie links auf „Materialverwaltung“ und dann auf „Neues Grafik- und Textmaterial“. um mit der Bearbeitung zu beginnen. 2. Klicken Sie nach der Bearbeitung des ersten Artikels auf das +-Zeichen unter dem ersten Artikel und klicken Sie auf „Bild und Textnachricht“, um den zweiten Artikel zu bearbeiten „Speichern und in großen Mengen senden“, um die Veröffentlichung mehrerer Artikel abzuschließen.

Erstellen Sie eine öffentliche WeChat-Kontoanwendung mit dem Go-Sprachframework Erstellen Sie eine öffentliche WeChat-Kontoanwendung mit dem Go-Sprachframework Jun 04, 2023 am 10:40 AM

Mit der Popularität des Internets und der weit verbreiteten Nutzung mobiler Geräte sind offizielle WeChat-Konten zu einem unverzichtbaren Bestandteil des Unternehmensmarketings geworden. Über öffentliche WeChat-Konten können Unternehmen problemlos mit Benutzern interagieren, Produkte und Dienstleistungen bewerben und die Markenbekanntheit steigern. Um öffentliche WeChat-Kontoanwendungen besser zu entwickeln, entscheiden sich immer mehr Entwickler und Unternehmen für die Verwendung der Go-Sprache zum Erstellen öffentlicher WeChat-Kontoanwendungen. Go-Sprache ist eine von Google entwickelte Programmiersprache. Ihre Syntax ist prägnant und eignet sich für die Erstellung leistungsstarker Echtzeitanwendungen mit hoher Parallelität. In Bezug auf Benutzerfreundlichkeit und

Leitfaden zur Entwicklung öffentlicher PHP- und WeChat-Konten Leitfaden zur Entwicklung öffentlicher PHP- und WeChat-Konten Jun 11, 2023 pm 03:31 PM

Mit der zunehmenden Beliebtheit öffentlicher WeChat-Konten in sozialen Netzwerken engagieren sich immer mehr Entwickler im Bereich der Entwicklung öffentlicher WeChat-Konten. Unter anderem wird PHP als gängige Back-End-Programmiersprache auch häufig bei der Entwicklung offizieller WeChat-Konten eingesetzt. In diesem Artikel werden die Grundkenntnisse und allgemeinen Techniken von PHP bei der Entwicklung öffentlicher WeChat-Konten vorgestellt. 1. Grundlagen der PHP- und WeChat-Entwicklung öffentlicher Konten WeChat-Öffentliches Kontoentwicklung WeChat-Öffentliches Konto bezieht sich auf eine Internetanwendung, die auf der WeChat-Plattform basiert und Benutzern verschiedene Arten von Diensten und Inhalten bereitstellen kann, z. B. Informations-Push

See all articles