天天看點

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("調用失敗");
}