天天看点

uniapp开发支付宝小程序订阅消息功能uniapp中添加相应插件支持uniapp前端代码实现后端订阅消息代码实现

uniapp开发支付宝小程序订阅消息功能

  • uniapp中添加相应插件支持
    • 1、manifest.json文件中添加插件支持
    • 2、manifest.json文件中添加插件支持
    • 3、在小程序的插件服务中订阅“订阅消息”服务
  • uniapp前端代码实现
  • 后端订阅消息代码实现

uniapp中添加相应插件支持

支付宝模板消息文档地址

uniapp开发支付宝小程序订阅消息功能uniapp中添加相应插件支持uniapp前端代码实现后端订阅消息代码实现

1、manifest.json文件中添加插件支持

uniapp开发支付宝小程序订阅消息功能uniapp中添加相应插件支持uniapp前端代码实现后端订阅消息代码实现
"plugins": { // 使用到的插件
	"subscribeMsg": { // 订阅消息插件
		"version": "*", // 目前只支持设置 * 拉取当前上架最新版本
		"provider": "2021001155639035" // 消息订阅插件 appid
	}
}
           

2、manifest.json文件中添加插件支持

在需要添加订阅消息功能的页面上,增加组件支持

uniapp开发支付宝小程序订阅消息功能uniapp中添加相应插件支持uniapp前端代码实现后端订阅消息代码实现

3、在小程序的插件服务中订阅“订阅消息”服务

uniapp开发支付宝小程序订阅消息功能uniapp中添加相应插件支持uniapp前端代码实现后端订阅消息代码实现

在搜索框中搜索,订阅插件

uniapp开发支付宝小程序订阅消息功能uniapp中添加相应插件支持uniapp前端代码实现后端订阅消息代码实现
uniapp开发支付宝小程序订阅消息功能uniapp中添加相应插件支持uniapp前端代码实现后端订阅消息代码实现
uniapp开发支付宝小程序订阅消息功能uniapp中添加相应插件支持uniapp前端代码实现后端订阅消息代码实现

uniapp前端代码实现

uniapp开发支付宝小程序订阅消息功能uniapp中添加相应插件支持uniapp前端代码实现后端订阅消息代码实现
<!-- 支付宝订阅消息组件Start -->
		<!-- #ifdef MP-ALIPAY -->
		<subscribe-msg />
		<!-- #endif -->
		<!-- 支付宝订阅消息组件End -->
           
// #ifdef MP-ALIPAY
	// 引入消息模板方法
	const {
		requestSubscribeMessage
	} = requirePlugin('subscribeMsg');
	// #endif
           
let _this = this
requestSubscribeMessage({
	// 模板id列表,最多3个
	entityIds: _this.aliPayTemplateList,
	// 接收结果的回调方法
	callback(res) {
		console.log('订阅回调', res);
		if (res.success) {
			const successIds = _this.aliPayTemplateList.filter(i => res[i.entityId] === 'accept').map(i =>
				i.entityId);

			// 订阅成功
			my.call('toast', {
				content: `模板${successIds.join(',')}订阅成功`,
				type: 'success'
			});
			
		} else {
			switch (res.errorCode) {
				case 11: {
					my.call('toast', {
						content: '用户未订阅关闭弹窗'
					});
					break;
				}
				default: {
					my.call('toast', {
						content: `ErrorCode: ${res.errorCode}, ErrorMsg: ${res.errorMessage}`
					});
					break;
				}
			}
		}
	}
});
           

后端订阅消息代码实现

AlipayClient alipayClient =newDefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayOpenAppMiniTemplatemessageSendRequest request =new AlipayOpenAppMiniTemplatemessageSendRequest();
request.setBizContent("{"+
    "\"to_user_id\":\"2088102122458832\","+//触达消息的支付宝user_id
    //"\"form_id\":\"2017010100000000580012345678\","+// 订阅类型消息不填。
    "\"user_template_id\":\"MDI4YzIxMDE2M2I5YTQzYjUxNWE4MjA4NmU1MTIyYmM=\","+//消息模板id
    "\"page\":\"page/component/index\","+ // 模板消息"进入小程序查看"按钮跳转的小程序页面地址
    "\"data\":\"{\\\"keyword1\\\":{\\\"value\\\":\\\"12:00\\\"},\\\"keyword2\\\":{\\\"value\\\":\\\"20180808\\\"},\\\"keyword3\\\":{\\\"value\\\":\\\"支付宝\\\"}}\""+
"}");
AlipayOpenAppMiniTemplatemessageSendResponse response = alipayClient.execute(request);
if(response.isSuccess()){
    System.out.println("调用成功");
}else{
    System.out.println("调用失败");
}