支付宝开放平台第三方代小程序开发,消息服务推送通知总结

本文主要是介绍支付宝开放平台第三方代小程序开发,消息服务推送通知总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家好,我是小悟

关于支付宝开放平台第三方代小程序开发的消息服务推送通知,是开放平台代小程序实现业务的重要功能。

消息服务推送通知,支持商家两种通讯协议来接收消息,分别为websocket 长连接和http。

关于websocket方式,在之前的文章已分享过,可参考 WebSocket长连接接入支付宝消息服务,实现消息通知。

创建好第三方应用后,在产品绑定-绑定产品,添加【小程序开发管理】权限集。

在这里插入图片描述

只有添加了对应的权限集,消息服务控制台才会显示对应的消息名称用来订阅。与 http 相比,websocket 方式接入性能更优,通道安全,减少成本,接入快速等优势。但两种方式都可以实现,怎么方便怎么来。
图片

支付宝模板小程序开发这边主要用到了第三方应用授权取消通知、商户确认服务商代创建小程序结果通知、商户确认服务商代创建试用小程序结果通知、小程序审核通过通知、小程序审核驳回通知、小程序审核不可营销通知。

值得注意的是,服务商向商家发送授权链接(或授权二维码)的授权方式不会触发授权通知,商家订购模板服务时授权、服务商协助商家创建小程序时授权或商家签约即授权等场景,会触发授权通知。

消息服务推送通知

第三方应用授权取消通知,商户取消对服务商应用的授权时会触发此消息,服务商可以针对此消息做业务处理。websocket和http方式下分别是msgApi和msg_method对应取值为alipay.open.auth.appauth.cancelled。

ISV_GATEWAY_URL?charset=UTF-8&biz_content=
{
"app_auth_token":"211203BB6e8df9252c9e179d9f4c94d57d510X00",
"app_id":"2014072300007148",
"auth_app_id":"2013072300101234",
"user_id":"2088100000034011"
}
&msg_method=alipay.open.auth.appauth.cancelled&utc_timestamp=1516797622752&version=1.1&sign_type=RSA2&notify_id=d275fec564e62af6bedbcee73f3f05fi5x&app_id=2013121700999429&sign=I+Y/lvqYUEEc10EPdpntRhFIQ==

商户确认服务商代创建小程序结果通知,商户确认服务商代创建小程序申请后,通知服务商商户确认结果。websocket和http方式下分别是msgApi和msg_method对应取值为alipay.open.mini.merchant.confirmed。

ISV_GATEWAY_URL?charset=UTF-8&biz_content=
{
"order_no":"2394834823942343",
"out_order_no":"23948392483253534535",
"min_app_id":"20218324729872",
"status":"PROCESS",
"pid":"2088002306330746"
}
&msg_method=alipay.open.mini.merchant.confirmed&utc_timestamp=1516797622752&version=1.1&sign_type=RSA2&notify_id=d275fec564e62af6bedbcee73f3f05fi5x&app_id=2013121700999429&sign=I+Y/lvqYUEEc10EPdpntRhFIQ==

商户确认服务商代创建试用小程序结果通知,商户确认服务商代创建试用小程序申请后,通知服务商商户确认结果。websocket和http方式下分别是msgApi和msg_method对应取值为alipay.open.mini.merchant.fastregister.changed。

ISV_GATEWAY_URL?charset=UTF-8&biz_content=
{
"order_no":"2394834823942343",
"out_order_no":"23948392483253534535",
"merchant_app_id":"20218324729872",
"status":"CREATE_MINI_APP_SUCCESS",
"app_name":"张三的试用小程序",
"merchant_id":"208121234234324234234324"
}
&msg_method=alipay.open.mini.merchant.fastregister.changed&utc_timestamp=1516797622752&version=1.1&sign_type=RSA2&notify_id=d275fec564e62af6bedbcee73f3f05fi5x&app_id=2013121700999429&sign=I+Y/lvqYUEEc10EPdpntRhFIQ==

小程序审核通过通知,websocket和http方式下分别是msgApi和msg_method对应取值为alipay.open.mini.version.audit.passed。

ISV_GATEWAY_URL?charset=UTF-8&biz_content=
{
"mini_app_id":"2014072300007148"
}
&msg_method=alipay.open.mini.version.audit.passed&utc_timestamp=1516797622752&version=1.1&sign_type=RSA2&notify_id=d275fec564e62af6bedbcee73f3f05fi5x&app_id=2013121700999429&sign=I+Y/lvqYUEEc10EPdpntRhFIQ==

小程序审核驳回通知,websocket和http方式下分别是msgApi和msg_method对应取值为alipay.open.mini.version.audit.rejected。

ISV_GATEWAY_URL?charset=UTF-8&biz_content=
{
"mini_app_id":"2014072300007148",
"bundle_id":"com.alipay.alipaywallet",
"mini_app_version":"0.0.1",
"audit_reason":"JS错误检测:发现JS错误,请及时优化",
"base_audit":"REJECT",
"promote_audit":"REJECT",
"base_audit_reason":{"audit_images":["xxx.png"],"memos":[{"memo":"JS错误检测:发现JS错误,请及时优化","memo_image_list":["xxx.png"]}]},
"promote_audit_reason":{"audit_images":["xxx.png"],"memos":[{"memo":"JS错误检测:发现JS错误,请及时优化","memo_image_list":["xxx.png"]}]}
}
&msg_method=alipay.open.mini.version.audit.rejected&utc_timestamp=1516797622752&version=1.1&sign_type=RSA2&notify_id=d275fec564e62af6bedbcee73f3f05fi5x&app_id=2013121700999429&sign=I+Y/lvqYUEEc10EPdpntRhFIQ==

小程序审核不可营销通知,websocket和http方式下分别是msgApi和msg_method对应取值为alipay.open.mini.version.baseaudit.passed。

ISV_GATEWAY_URL?charset=UTF-8&biz_content=
{
"mini_app_id":"2014072300007148",
"bundle_id":"com.alipay.alipaywallet",
"mini_app_version":"0.0.1",
"audit_reason":"JS错误检测:发现JS错误,请及时优化",
"base_audit":"PASS",
"promote_audit":"REJECT",
"base_audit_reason":{"audit_images":["xxx.png"],"memos":[{"memo":"JS错误检测:发现JS错误,请及时优化","memo_image_list":["xxx.png"]}]},
"promote_audit_reason":{"audit_images":["xxx.png"],"memos":[{"memo":"JS错误检测:发现JS错误,请及时优化","memo_image_list":["xxx.png"]}]}
}
&msg_method=alipay.open.mini.version.baseaudit.passed&utc_timestamp=1516797622752&version=1.1&sign_type=RSA2&notify_id=d275fec564e62af6bedbcee73f3f05fi5x&app_id=2013121700999429&sign=I+Y/lvqYUEEc10EPdpntRhFIQ==

收到异步通知后,商家输出success表示消息获取成功,支付宝就会停止发送异步,如果输出fail,表示消息获取失败,支付宝会重新发送消息到异步地址。

@PostMapping(value = "/notify/callback")
public String notifyCallBack(HttpServletRequest request) {Map<String, String> result = new HashMap<String, String>();Map requestParams = request.getParameterMap();for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) {String name = (String) iter.next();String[] values = (String[]) requestParams.get(name);String valueStr = "";for (int i = 0; i < values.length; i++) {valueStr = (i == values.length - 1) ? valueStr + values[i]: valueStr + values[i] + ",";}result.put(name, valueStr);}String resultStr = JSON.toJSONString(result);logger.info("支付宝通知回调参数==========={}", resultStr);try {boolean flag = AlipaySignature.rsaCertCheckV1(result, alipayPublicCertPath, "utf-8", "RSA2");if (flag) {logger.info("支付宝通知回调参数success===========");String msgMethod = result.get("msg_method");if (StringUtils.equals("alipay.open.auth.appauth.cancelled", msgMethod)) {logger.info("第三方应用授权取消消息");} else if (StringUtils.equals("alipay.open.mini.merchant.confirmed", msgMethod)) {logger.info("商户确认服务商代创建小程序结果通知");} else if (StringUtils.equals("alipay.open.mini.merchant.fastregister.changed", msgMethod)) {logger.info("商户确认服务商代创建试用小程序结果通知");} else if (StringUtils.equals("alipay.open.mini.version.audit.passed", msgMethod)) {logger.info("小程序审核通过通知");} else if (StringUtils.equals("alipay.open.mini.version.audit.rejected", msgMethod)) {logger.info("小程序审核驳回通知");} else if (StringUtils.equals("alipay.open.mini.version.baseaudit.passed", msgMethod)) {logger.info("小程序审核不可营销通知");}return "success";} else {logger.info("支付宝通知回调参数failure===========");return "fail";}} catch (AlipayApiException e) {e.printStackTrace();logger.info("支付宝通知回调参数failure===========");return "fail";}
}

您的一键三连,是我更新的最大动力,谢谢

山水有相逢,来日皆可期,谢谢阅读,我们再会

我手中的金箍棒,上能通天,下能探海

这篇关于支付宝开放平台第三方代小程序开发,消息服务推送通知总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/206362

相关文章

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Go语言并发之通知退出机制的实现

《Go语言并发之通知退出机制的实现》本文主要介绍了Go语言并发之通知退出机制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、通知退出机制1.1 进程/main函数退出1.2 通过channel退出1.3 通过cont

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

关于DNS域名解析服务

《关于DNS域名解析服务》:本文主要介绍关于DNS域名解析服务,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录DNS系统的作用及类型DNS使用的协议及端口号DNS系统的分布式数据结构DNS的分布式互联网解析库域名体系结构两种查询方式DNS服务器类型统计构建DNS域

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素