Tin nhắn đăng ký của chương trình mini WeChat là một trong những khả năng quan trọng của chương trình mini, mang lại trải nghiệm tốt hơn cho dịch vụ vòng kín. Chúng ta thường thấy các tin nhắn đăng ký, chẳng hạn như thông báo dịch vụ sau khi đặt hàng thành công và thông báo thanh toán thành công sau khi thanh toán thành công. Chúng đều là tin nhắn đăng ký của các chương trình nhỏ.
Bài viết này chỉ thực hiện chức năng đăng ký một lần. Còn đối với đăng ký dài hạn và đăng ký thiết bị, chúng tôi sẽ nghiên cứu khi có cơ hội.
- Giới thiệu chức năng
- Loại tin nhắn
- Quy trình cơ bản
- Những điều cần lưu ý
- Nhận ID mẫu
- mã uni-app
- Mã máy chủ
- Tạo đơn hàng
- Gửi tin nhắn mẫu
- Tóm tắt
Trước khi bắt đầu, chúng ta hãy xem phần giới thiệu tin nhắn đăng ký chương trình mini WeChat:
Giới thiệu chức năng
Khả năng tin nhắn là một thành phần quan trọng của khả năng chương trình nhỏ. Chúng tôi cung cấp cho các nhà phát triển khả năng đăng ký tin nhắn để đạt được dịch vụ khép kín và trải nghiệm tốt hơn.
- Vị trí đẩy tin nhắn đăng ký: Thông báo dịch vụ
- Điều kiện gửi tin nhắn đăng ký: Người dùng đăng ký độc lập
- Khả năng nhảy thẻ tin nhắn đăng ký: Bấm vào để xem chi tiết để chuyển đến trang của chương trình mini
Loại tin nhắn
1. Đăng ký tin nhắn một lần.
Tin nhắn đăng ký một lần được sử dụng để giải quyết vấn đề thông báo các liên kết dịch vụ tiếp theo sau khi người dùng sử dụng chương trình mini. Sau khi người dùng đăng ký độc lập, nhà phát triển có thể gửi tin nhắn dịch vụ tương ứng mà không bị giới hạn thời gian; mỗi tin nhắn có thể được đăng ký hoặc hủy đăng ký riêng.
2. Tin nhắn đăng ký dài hạn.
Tin nhắn đăng ký một lần có thể đáp ứng nhu cầu của hầu hết các kịch bản dịch vụ của các chương trình nhỏ. Tuy nhiên, trong lĩnh vực dịch vụ công ngoại tuyến, có những tình huống mà đăng ký một lần không thể đáp ứng, chẳng hạn như nếu chuyến bay bị hoãn thì cần phải có tin nhắn nhắc nhở. được gửi nhiều lần dựa trên trạng thái thời gian thực của chuyến bay. Để tạo điều kiện thuận lợi cho dịch vụ, chúng tôi cung cấp tin nhắn đăng ký dài hạn. Sau khi người dùng đăng ký một lần, nhà phát triển có thể gửi nhiều tin nhắn trong một khoảng thời gian dài.
Hiện tại, thông tin đăng ký dài hạn chỉ dành cho các dịch vụ công ngoại tuyến như chính phủ và sinh kế của người dân, chăm sóc y tế, giao thông, tài chính, giáo dục, v.v. và sẽ dần dần hỗ trợ các doanh nghiệp dịch vụ công ngoại tuyến khác trong tương lai.
Vì vậy, đối với chương trình mini thông thường của chúng tôi, sau khi đăng ký thành công, việc lựa chọn mẫu để đăng ký tin nhắn chỉ có tùy chọn đăng ký một lần và không có tùy chọn đăng ký dài hạn.
3. Thiết bị đăng ký tin nhắn.
Tin nhắn đăng ký thiết bị là một loại tin nhắn đăng ký đặc biệt. Đây là loại tin nhắn đăng ký dài hạn và yêu cầu phải hoàn thành "quyền truy cập thiết bị" trước khi có thể sử dụng.
Sau khi hiểu thông báo đăng ký chương trình nhỏ, hãy đi vào vấn đề! .
Quy trình cơ bản
Những điều cần lưu ý
Vì bài viết sau vẫn còn rất dài nên các biện pháp phòng ngừa sẽ được gửi trước tiên. Bạn có thể thấy rằng vấn đề của mình đã được giải quyết tại đây.
- Không thể sử dụng ID mẫu một lần và ID mẫu cố định cùng một lúc.
- Các phiên bản thấp hơn của thư viện cơ bản 2.4.4~2.8.3 đã hỗ trợ các cuộc gọi giao diện tin nhắn đăng ký và chỉ hỗ trợ chuyển tmplId một lần/tmplId vĩnh viễn.
- Bắt đầu từ phiên bản 2.8.2, người dùng Hành vi nhấp chuột xảy ra hoặc Sau khi bắt đầu gọi lại thanh toán , Khi đó bạn mới có thể gọi lên giao diện tin nhắn đăng ký
- Bắt đầu từ phiên bản 2.10.0, applet phiên bản phát triển và phiên bản dùng thử sẽ cấm sử dụng formId thông báo mẫu.
- Trong lệnh gọi ủy quyền, tiêu đề mẫu tương ứng với mỗi tmplId không thể giống nhau. Nếu chúng giống nhau thì chỉ một tiêu đề sẽ được giữ lại.
- Bắt đầu từ phiên bản 2.10.0, nó hỗ trợ đăng ký lời nhắc bằng tin nhắn thoại.
Đặc biệt chú ý đến mục thứ ba. Khi thư viện phiên bản từ 2.8.2 trở lên, giao diện thông báo đăng ký chỉ được mở sau khi xảy ra hành vi nhấp chuột hoặc bắt đầu gọi lại thanh toán. Không có yêu cầu đặc biệt nào cho hành vi nhấp chuột này. Ví dụ, trong một biểu mẫu, sau khi nhấn nút gửi, giao diện tin nhắn đăng ký cũng có thể được mở ra. Việc gọi lại sau khi thanh toán không yêu cầu hành vi nhấp chuột và giao diện tin nhắn đăng ký cũng có thể được gọi lên.
Nhận ID mẫu
Đăng nhập vào chương trình nhỏ trên nền tảng công cộng WeChat, trong chức năng đăng ký tin nhắn, hãy truy cập Mẫu của tôi, tìm mẫu và sao chép ID mẫu. Nếu không có mẫu, trước tiên bạn cần thêm mẫu, sau đó lấy. ID mẫu.
Để thêm mẫu mới, hãy nhấp vào nút Chọn, chọn mẫu được yêu cầu trong thư viện mẫu công cộng và thêm mẫu đó.
Có rất nhiều bài viết nói rằng nếu bạn chưa có mẫu phù hợp thì có thể tạo mẫu tùy chỉnh. Nhưng nếu bạn thực sự muốn tạo một mẫu tùy chỉnh, bạn sẽ thấy rằng bạn không thể tìm thấy nó ở bất cứ đâu. Nếu bạn muốn tạo một mẫu tùy chỉnh, bạn có thể thực hiện theo những cách sau. 1. Bấm vào nút Chọn để đến thư viện mẫu công cộng. (Các mẫu trong thư viện mẫu công cộng có liên quan đến danh mục dịch vụ trong chương trình mini của bạn) 2. Trong hộp tìm kiếm, nhập một từ khóa tương đối dài. 3. Nhấp vào Tìm kiếm. Nếu mẫu vẫn có thể khớp, hãy điều chỉnh lại từ khóa cho đến khi không có kết quả tìm kiếm. 4. Nhấp vào trang để giúp chúng tôi cải thiện thư viện mẫu và tùy chỉnh cài đặt mẫu.
Khi tạo mẫu tùy chỉnh, hãy nhớ đọc kỹ quy trình đăng ký mẫu, đặc biệt là mục 1. Tôi lôi nó ra và đánh dấu vì không đọc kỹ mục 1 nên tôi đã chờ đợi mấy ngày vô ích cho những mẫu tôi đăng ký lần đầu tiên. Tiêu đề mẫu phải phản ánh kịch bản dịch vụ cụ thể và phải kết thúc bằng "thông báo" hoặc "nhắc nhở", chẳng hạn như: thông báo hàng đến hậu cần, nhắc nhở giao dịch.
Khi nhìn thấy điều này, bạn sẽ thấy rằng hầu hết những điều trên không khác gì các bài viết trên Internet. Đừng lo lắng, nội dung chính là ở đây! .
mã uni-app
Việc triển khai giao diện người dùng là nhấp vào nút gửi, lưu biểu mẫu và gửi thông báo đăng ký sau khi lưu thành công. Viết mã sau trong pages/index/index.vue:
Sửa lỗi 'Người dùng đã đăng ký', biểu tượng: 'thành công' }) // #ifdef MP-WEIXIN uni.requestSubscribeMessage({ tmplIds:['XXXXXXXXXXXX'], //Kết quả trả về tempid success:function(subscribeMessageRes){ if(subscribeMessageRes.errMsg=="requestSubscribeMessage:ok"){ if(subscribeMessageRes.XXXXXXXXXXXX=="accept"){ uni.login({ provider: 'weixin', success:function(loginRes){ if(loginRes.errMsg=="login:ok"){ const code = loginRes.code; that.$u.api.sendSubscribeMessage({ "code":code, "orderId":data.orderId }).then(res=>{ that.gotoOrder() }) }else{ that.gotoOrder() } }, fail() { that.gotoOrder() } }) }else{ that.gotoOrder() } }else{ that.gotoOrder() } }, fail:function(){ that.gotoOrder() } }) // #endif } else { uni.$u.toast(res.message); } }); } }) } } } 'Người dùng đã đăng ký', biểu tượng: 'thành công' }) // #ifdef MP-WEIXIN uni.requestSubscribeMessage({ tmplIds:['XXXXXXXXXXXX'], //Kết quả trả về tempid success:function(subscribeMessageRes){ if(subscribeMessageRes.errMsg=="requestSubscribeMessage:ok"){ if(subscribeMessageRes.XXXXXXXXXXXX=="accept"){ uni.login({ provider: 'weixin', success:function(loginRes){ if(loginRes.errMsg=="login:ok"){ const code = loginRes.code; that.$u.api.sendSubscribeMessage({ "code":code, "orderId":data.orderId }).then(res=>{ that.gotoOrder() }) }else{ that.gotoOrder() } }, fail() { that.gotoOrder() } }) }else{ that.gotoOrder() } }else{ that.gotoOrder() } }, fail:function(){ that.gotoOrder() } }) // #endif } else { uni.$u.toast(res.message); } }); } }) } } }
Quá trình ở đây được chia thành 3 bước: 1. Gửi biểu mẫu và máy chủ trả về số đơn hàng (orderId). 2. Sử dụng uni.requestSubscribeMessage để hiển thị hộp ủy quyền sau khi nhấp vào Đồng ý, hãy nhập bước thứ ba. Sau khi ủy quyền được kích hoạt, nếu người dùng đồng ý, tham số subscribeMessageRes của hàm gọi lại có hai đối tượng: errMsg và XXXXXXXXXX Không cần phải nói thêm về errMsg. Điều quan trọng là XXXXXXXXXX này là gì. XXXXXXXXXXX được tạo bằng ủy quyền và nó trông giống như ID mẫu khi kiểm tra trực quan. 3. Sử dụng uni.login để lấy mã. 4. Gửi mã và orderId đến máy chủ. Máy chủ lấy openId thông qua mã, sau đó lấy dữ liệu đơn hàng cụ thể dựa trên orderId. 5. Gửi tin nhắn mẫu.
Nếu không có vấn đề gì xảy ra, sau khi gửi thành công, hộp ủy quyền sau sẽ bật lên.
Mã máy chủ
ORM phía máy chủ sử dụng SqlSugar và giao diện ứng dụng WeChat sử dụng thư viện SKIT.FlurlHttpClient.Wechat.
Tạo đơn hàng
Gửi đơn đặt hàng Đây chỉ là một minh chứng. Bạn có thể tự mình thực hiện mã cụ thể! .
[HttpPost] public async Task SubmitOrder(order model) { //Tạo số thứ tự model.order_no = DateTime.Now.ToString("yyyyMMddHHssfffff"); thêm id var id = đang chờ db.Insertable(model).ExecuteReturnIdentity(); trả về AjaxResult mới(){ thành công=true, data = id } }
AjaxResult.cs .
public class AjaxResult { /// /// Có thành công hay không /// public bool thành công { get; } = true; mã int công khai { get; set; } = 0; /// /// Trả về tin nhắn /// tin nhắn chuỗi công khai { get; /// Trả về dữ liệu /// dữ liệu đối tượng công khai{ get;} }
lệnh.cs 。
[SugarTable("order")] thứ tự lớp công khai { /// /// Khóa chính, Id tăng tự động /// [SugarColumn(IsPrimaryKey = true)] public int id { get; ; } /// /// Số thứ tự /// chuỗi công khai order_no { get; chuỗi công khai realName { get; set; /// /// time/// public DateTime serviceTime { get; // public string serviceAddress { get; set; /// /// Số liên lạc /// public string lxtel { get; /// Ghi chú /// ghi chú chuỗi công khai { get; } /// /// Thời gian tạo /// thời gian bổ sung công khai { get; }
Gửi tin nhắn mẫu
Gửi tin nhắn mẫu đăng ký một lần và các tham số được truyền là mã và orderId mà giao diện người dùng thu được. Nhận thông tin đơn hàng dựa trên số đơn hàng để bạn có thể đặt thông tin applet và đường dẫn mở trong tin nhắn đăng ký. mã được sử dụng để lấy openId của người dùng.
[HttpPost] public async Task SendSubscribeMessage(string code,string orderId) { AjaxResult result = new AjaxResult(); if (string.IsNullOrEmpty(code) || string.IsNullOrEmpty(orderId)) { result.success = false; result.message = "Đã thêm"; return result; } var order_model = await db.Queryable().InSingleAsync(orderId); if(order_model is null) { result.success = false; result.message = "Đã thêm"; return result; } //Tạo WechatApiClient var options = new WechatApiClientOptions() { AppId = "appId", AppSecret = "appSecret " }; var client = new WechatApiClient(options); //Trả về openId var request = new SnsJsCode2SessionRequest(); request.JsCode = code; var response = await client.ExecuteSnsJsCode2SessionAsync(request); string openId = response.OpenId; //Trả về token var tokenRequest = new CgibinTokenRequest(); var tokenResponse = await client.ExecuteCgibinTokenAsync(tokenRequest); var token = tokenResponse.AccessToken; //Không có gì khác ngoài var messageRequest = new CgibinMessageSubscribeSendRequest(); IDictionary messageData = new Dictionary { { "params1", new CgibinMessageSubscribeSendRequest.Types.DataItem() {Giá trị=order_model.order_no} }, { "params1", new CgibinMessageSubscribeSendRequest.Types.DataItem(){Giá trị=order_model.userNmae} }, { "params3", new CgibinMessageSubscribeSendRequest.Types.DataItem(){Giá trị=order_model.serviceTime} }, { "params4", new CgibinMessageSubscribeSendRequest.Types.DataItem(){Giá trị=order_model.serviceAddress} }, { "params5", new CgibinMessageSubscribeSendRequest.Types.DataItem(){Value=order_model.addtime.ToString("yyyy-MM-dd HH:ss")} } }; messageRequest.AccessToken = token; messageRequest.ToUserOpenId = openId; messageRequest.TemplateId = "XXXXXXXXXXXX"; messageRequest.MiniProgramState = "developer"; // Không có dữ liệu nào được lưu trong thư mục gốc. Chỉ có thể sử dụng messageRequest.MiniProgramPagePath = "/pages/order/order_details?id=" + order_model.id; messageRequest.Data = messageData; var messageResponse = await client.ExecuteCgibinMessageSubscribeSendAsync(messageRequest); if(messageResponse.ErrorCode==0) { result.success=true; result.message = "ok"; trả về kết quả; } result.success = false; result.message = "error"; trả về kết quả; }
Khi xây dựng một thông báo mẫu, hãy sử dụng IDictionary messageData = new Wikipedia để xây dựng.
- Khi đó params1 trong đoạn mã trên là character_string22, và params2 tương tự là thing7. Đó là để nói. Chìa khóa của IDictionary nằm trong mẫu
.DỮ LIỆU
nội dung trước đó.
-
messageRequest.TemplateId
, phải nhất quán với ID mẫu giao diện người dùng.
-
messageRequest.MiniProgramState
Cho biết kiểu chuyển sang ứng dụng WeChat. Mặc định là phiên bản chính thức
- nhà phát triển là phiên bản phát triển;
- dùng thử là phiên bản trải nghiệm;
- chính thức là phiên bản chính thức;
Nếu không có gì sai, bạn sẽ nhận được thông báo dịch vụ trên WeChat của mình. Sau khi click vào thẻ bạn sẽ vào trang chi tiết đơn hàng của chương trình mini! .
Tóm tắt
1. Trên thực tế, việc đăng ký mẫu tin nhắn đăng ký của chương trình mini WeChat và mẫu tin nhắn đăng ký của tài khoản chính thức là tương đối dễ dàng. Nếu bạn không thể tìm thấy mẫu phù hợp với mình trong số các mẫu danh mục và mẫu lịch sử, hãy tự mình đăng ký mẫu. Nếu được xét duyệt, bạn sẽ nhận được thông báo trong vòng 2-3 ngày. Cần lưu ý rằng khi xin mẫu, tốt nhất bạn nên giữ một bản sao của từng mục tại địa phương. Bởi vì sau khi gửi đơn đăng ký, bạn sẽ không thể tìm thấy nó trong tài khoản chính thức hoặc phần phụ trợ của chương trình nhỏ. Tiện ích không thể xem xét và khi tôi đăng ký lại, tôi gần như quên mất mọi thứ tôi đã viết trước đó! .
2. Cảm ơn SqlSugar vì đã cung cấp ORM mạnh mẽ như vậy cho các nhà phát triển .Net. Thật tiện lợi. 3. Cảm ơn SKIT.FlurlHttpClient.Wechat đã cung cấp một công cụ tiện lợi như vậy cho các nhà phát triển .Net. 4. Để diễn đạt ý nghĩa nhanh chóng và rõ ràng, các mã front-end và server-side ở trên được sắp xếp hợp lý và không được sử dụng trực tiếp! .
Tác giả: gmval Nguồn: https://www.cnblogs.com/gmval/p/17071237.html Bản quyền của bài viết này thuộc về tác giả và Blog Park. Việc viết lách không hề dễ dàng. Hỗ trợ ban đầu được hoan nghênh. ]. Vui lòng giữ lại đoạn này để in lại Tuyên bố và cung cấp liên kết đến văn bản gốc ở vị trí rõ ràng trên trang bài viết, cảm ơn bạn. Theo dõi tài khoản công cộng cá nhân và thường xuyên cập nhật các tài nguyên và bài viết kỹ thuật xuất sắc.
Cuối cùng, bài viết này về uni-app+.NET7 triển khai tính năng đẩy tin nhắn đăng ký applet WeChat kết thúc tại đây. Nếu bạn muốn biết thêm về uni-app+.NET7 triển khai tính năng đẩy tin nhắn đăng ký applet WeChat, vui lòng tìm kiếm bài viết CFSDN. mong bạn sẽ ủng hộ blog của mình trong tương lai nhé! .
Tôi là một lập trình viên xuất sắc, rất giỏi!