数日前、会社のプロジェクトの要件により、WeChat を使用してオンライン リチャージするための機能を作成したいと思いました。これは、WeChat ブラウザーで Web ページをクリックして WeChat 支払いを呼び出すものです。次に、開発プロセスについて簡単に説明します。 WeChat 支払いの 公式アカウント支払い :
まず第一に、あなたの公式アカウントは 認定されたサービス アカウントである必要があり、コードを開発して記述する前に、WeChat 支払いの許可が有効化されている必要があります。支払いを設定する必要があります。その後の操作を容易にするための関連情報 有効化後、公式アカウント販売者プラットフォームのバックグラウンド ログインに関連する情報が含まれる電子メールが送信されます。 販売者プラットフォームにログインした後、キーを設定します。 ->アカウント設定->APIセキュリティ、これは後で使用されます
アカウントパラメータの説明
APIパラメータ名 | 詳細説明 | |
---|---|---|
appid | appid パブリックプラットフォームでパブリックアカウントを申請した後、またはオープンプラットフォームでAPPアカウントを申請した後の、WeChatパブリックアカウントまたはオープンプラットフォームAPPの一意の識別子です。 , WeChat はアプリケーションを識別するために、対応する appid を自動的に割り当てます。このフィールドの値は、販売者の WeChat Payment 承認メールにも含まれます。 | |
mch_id | 加盟店がWeChatペイメントを申請した後、WeChatペイメントによって割り当てられる加盟店の支払いアカウント。 | |
key | 取引プロセス中の署名によって生成されたキーは、販売者システムとWeChat支払いのバックグラウンドにのみ保持され、ネットワーク内に拡散することはありません。マーチャントは、キーが漏洩しないように、キーを適切に保管し、ネットワーク上で送信したり、他のクライアントに保管したりしないようにする必要があります。販売者は、設定する電子メールのプロンプトに従って WeChat 販売者プラットフォームにログインできます。 | |
secret | AppSecret は、APPID に対応するインターフェースのパスワードであり、インターフェース呼び出し資格情報 access_token を取得するために使用されます。 WeChat 支払いでは、最初に OAuth2.0 インターフェイスを通じてユーザーの openid が取得され、この openid は WeChat 内の Web 支払いモードの注文インターフェイスによって使用されます。開発モードで AppSecret を取得します (開発者になり、アカウントに異常がない状態)。 |
主要な加盟店システムとWeChat支払いシステムアクション:
1. マーチャントサーバーは、統合注文インターフェースを呼び出して注文をリクエストします。API については、前払い注文をリクエストする前に、WeChat OAuth2.0 Web ページを呼び出す必要があります。ユーザーがユーザーの WeChat OpenId を取得するためのコードです。ここでは詳しく説明しません。以下は、前払い注文のコード実装です。
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;
2. 加盟店サーバーは支払い通知を受け取り、API はパブリック API【支払い結果通知 API】にあります
<script> // 当微信内置浏览器完成内部初始化后会触发WeixinJSBridgeReady事件。 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { $(function () { //公众号支付 jQuery('#getBrandWCPayRequest').click(function (e) { WeixinJSBridge.invoke('getBrandWCPayRequest', { "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('yo~ ready.'); }, false); </script>
WeChat パブリック アカウント開発に関する WeChat 支払い関連記事の詳細はこちら、PHP 中国語 Web サイトに注意してください。

Scrapy实现微信公众号文章爬取和分析微信是近年来备受欢迎的社交媒体应用,在其中运营的公众号也扮演着非常重要的角色。众所周知,微信公众号是一个信息和知识的海洋,因为其中每个公众号都可以发布文章、图文消息等信息。这些信息可以被广泛地应用在很多领域中,比如媒体报道、学术研究等。那么,本篇文章将介绍如何使用Scrapy框架来实现微信公众号文章的爬取和分析。Scr

微信公众号认证和不认证的区别在认证标识、功能权限、推送频率、接口权限和用户信任度等方面。详细介绍:1、认证标识,认证公众号会获得官方颁发的认证标识,即蓝色V标志,这个标志可以增加公众号的可信度和权威性,让用户更容易辨别真实的官方公众号;2、功能权限,认证公众号相比未认证的公众号拥有更多的功能和权限,例如认证公众号可以申请开通微信支付功能,实现在线支付和商业化运营等等。

如何使用Laravel开发一个基于微信公众号的在线点餐系统随着微信公众号的广泛应用,越来越多的企业开始将其作为在线营销的重要渠道。在餐饮行业中,开发一个基于微信公众号的在线点餐系统能够提高企业的效率和销售额。本文将介绍如何使用Laravel框架来开发一个这样的系统,并提供具体的代码示例。项目准备首先,需要确保已经在本地环境中安装好了Laravel框架。可以通

Python是一种优雅的编程语言,拥有强大的数据处理和网络爬虫功能。在这个数字化时代,互联网上充满了大量的数据,爬虫已成为获取数据的重要手段,因此,Python爬虫在数据分析和挖掘方面有着广泛的应用。在本文中,我们将介绍如何使用Python爬虫来获取微信公众号文章信息。微信公众号是一种流行的社交媒体平台,用于在线发布文章,是许多公司和自媒体推广和营销的重要工

公众号每天不是只能发一篇文章,每次最多可以发表八篇文章,多篇文章的发布方法:1、点击左侧的“素材管理”,再点击“新建图文素材”开始编辑第一篇文章;2、编辑完第一篇文章之后,点击左侧第一篇文章下面的+号,点击“图文消息”即可编辑第二篇文章;3、做完多图文后,点击“保管并群发”即可完成多篇文章的发布。

在当今互联网时代,微信公众号成为了越来越多企业的重要营销渠道。想要自己的微信公众号实现更多的功能,常常需要编写相应的接口。本文将以PHP语言为例,介绍如何构建一个微信公众号API接口。一、前置准备在编写微信公众号API接口之前,需要开发者拥有一个微信公众号的账号,并且在微信公众平台中申请开发者接口权限。申请成功后,可以获取到相关的开发者AppID和AppSe

随着微信公众号在社交网络中的逐渐普及,越来越多的开发者开始涉足微信公众号开发领域。在这其中,PHP作为一种常见的后端编程语言,也开始被广泛应用于微信公众号的开发中。本文将介绍PHP在微信公众号开发中的基础知识和常用技巧。一、PHP与微信公众号开发基础微信公众号开发微信公众号是指一种基于微信平台的互联网应用程序,可以为用户提供不同类型的服务和内容,如信息推送

随着互联网的普及和移动设备的广泛使用,微信公众号已经成为了企业营销必不可少的一部分。通过微信公众号,企业可以实现轻松地与用户互动,推广产品和服务,提高品牌知名度。为了更好地开发微信公众号应用,越来越多的开发者和企业选择使用Go语言来构建微信公众号应用。Go语言是一种由Google开发的编程语言,它的语法简洁,适合构建高性能、高并发的实时应用程序。在简单易用和


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Dreamweaver Mac版
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック



