支付宝小程序开发之与微信小程序不同的地方

前言:

本文仅汇总微信小程序移植支付宝小程序过程中遇到的一些不同的地方,详细请参考官方开发文档。

网络请求:

对于网络请求,基本上改动不大,也就支付宝小程序没有responseType属性及响应码字段改成了status。

用户授权登录:

1. 登录:

wx.login   ====   my.getAuthCode

wx.checkSession  ====  无(需后端接口验证)

缓存:

以常用的 wx.getStorageSync() 为例,先看微信的代码:

wx.setStorageSync("id", "1315151")
var id = wx.getStorageSync("id")
console.log("id", id)//输出  id 1315151

但是同样的代码在支付宝小程序中返回的确是不同的结果:

可见支付宝小程序中wx.getStorageSync()的使用与微信不同了,结合支付宝小程序开发文档及实例验证,支付宝小程序同步获取缓存的示例代码如下:

my.setStorageSync({ key: "id", data: "1315151" })
var res= my.getStorageSync({ key: ‘id‘ })
console.log("id", res)//输出  res{success:true,key:"id",data:"1315151"}   

可见支付宝小程序中同步缓存获取的参数一定是要传入对象了,这用起来就有点不太习惯了。如果要做微信小程序的移植,那么就只有搜索所有 getStorageSync ,然后进行相应的修改了。

当然也可以直接在utils.js中封装一个公共函数,用来将支付宝小程序同步缓存获取方式直接转化成微信小程序的调用方式。具体代码如下:

//app.js
const getStorageSync = function(key) {  
    return my.getStorageSync({
        key: key
    }).data || null
}

App({
    ...

   setStorageSync: function(key, data) {      
        return my.setStorageSync({
            key: data
        })    
    },
    getStorageSync: function(key) {      
        return getStorageSync(key)    
    },

    ...
});

//index.js
const app = getApp()
Page({
    ...
    my.setStorageSync("id", "1315151")
    var id = app.getStorageSync(‘id‘)
    console.log("id", id) //输出  id 1315151
    ...
})

只需要保证每个需要获取同步缓存是脚本中获取应用实例app,那么直接全局搜索 “my.getStorageSync" 替换为 "app.getStorageSync" ,这样之前微信小程序复用过来的这块儿代码改动就很小了。

PS:

1.js中参数对象中如果也有获取同步缓存的代码,那么并不能直接引用上边封装的函数,只能用原生的方法去写,或者把封装的函数放到App外边,如:

const getStorageSync=function(key) {
  return my.getStorageSync({ key: key }).data || null
}
App({
  ...
  getStorageSync:function(key){
    return getStorageSync(key)
  },
  globalData: {
    userInfo: null,
    globalShareInfo: {
      ...
      path: ‘/pages/index/index?goods_id=‘ + getStorageSync("goods_id"),
  ...
  }
});

这样在app内部都可以调用封装的getStorageSync函数了,但是这个函数还是要放在app内部开发出去给页面使用的。

2. 其他公共脚本,如utils.js,不建议因这一个功能引入整个app.js,建议直接使用原生代码,如果用的地方多,也可以在utils.js内部封装:

my.getStorageSync({ key: "token" }).data || ""

小程序唤起支付:

微信:

wx.requestPayment({
  timeStamp: ‘‘,
  nonceStr: ‘‘,
  package: ‘‘,
  signType: ‘MD5‘,
  paySign: ‘‘,
  success (res) { },
  fail (res) { }
})

支付宝:

my.tradePay({
  tradeNO: ‘201711152100110410533667792‘, // 调用统一收单交易创建接口(alipay.trade.create),获得返回字段支付宝交易号trade_no
  success: (res) => {
    my.alert({
      content: JSON.stringify(res),
    });
  },
  fail: (res) => {
    my.alert({
      content: JSON.stringify(res),
    });
  }
});

原文地址:https://www.cnblogs.com/xyyt/p/9844161.html

时间: 2024-09-30 22:40:03

支付宝小程序开发之与微信小程序不同的地方的相关文章

移动开发之【微信小程序】的原理与权限问题以及相关的简易教程

这几天圈子里到处都在传播着这样一个东西,微信公众平台提供了一种新的开放能力,开发者可以快速开发一个小程序,取名曰:微信公众平台-小程序 据说取代移动开发安卓和苹果,那这个东东究竟是干吗用的?但很多人觉得是网页版应用. 有的人很鸡冻,但是--最后文章会提及具体的权限开放问题,所以,还是保持一颗冷静的?比较好. 那我们先来看看组件和API开放了哪些服务: 视图容器:视图(View).滚动视图.Swiper 基础内容:图标.文本.进度条 表单组件:按钮.表单等等 操作反馈 导航 媒体组建:音频.图片.

微信小程序开发公测,小程序账号申请办法攻略

11月3号晚上 10 点,微信公众平台发布公告,宣布微信小程序正式开放公测.此次小程序公测允许开发者将产品提交至微信公众平台审核,但是暂时不支持发布,也就是说普通消费者若想体验小程序,还需要等待一段时间. 什么人可以参与小程序公测? 微信小程序的公测暂时只开放给企业.政府.媒体.其他组织,个人微信公众号暂时无法参与小程序公测. 此次公测开放的内容包括: 开发支持:提供一系列工具帮助开发者快速接入并完成小程序开发: 开发文档:介绍小程序的开发框架.基础组件.API 及相关开发问题: 开发者工具:集

小程序·巧应用,微信小程序开发实战

系统全面地讲解微信小程序的开发技术.开篇创建一个小程序项目并解析体验,介绍如何由零开始创建一个小程序,全面体验小程序的开发工具.界面.开发框架.实现过程及其主要代码框架,了解小程序的应用场景及开发要求.接着介绍小程序开发基础,包括小程序开发的语言与语法.函数方法.模块.事件交互等.然后详细介绍了组件的应用与开发,包括开发过程与组件应用技巧,还详细分析了API接口,包括使用各个微信原生API接口进行小程序开发的技巧.最后介绍了几个小程序实战案例,让读者实践小程序各项能力的应用及掌握一些应用技巧.本

一、微信小游戏开发 --- 初次在微信开发者工具里跑Egret小游戏项目

尝试下Egret的小游戏开发,学习,学习,干IT,不学习,就得落后啊... 相关教程: Egret微信小游戏教程 微信公众平台-微信小游戏教程 微信公众平台-微信小游戏接入指南 开发版本: Egret Engine 5.1.11 Egret Wing 4.1.5 微信开发者工具 1.02.1803210 开发流程: 一. 注册微信小程序账号. 二. 下载安装微信开发者工具. 三. Egret创建微信小游戏项目 一.注册微信小程序账号 前往 微信公众平台,按照小程序注册教程注册账号. 二.下载安装

Win32 程序开发:创建一个应用程序窗口

一.创建一个应用程序窗口 代码如下: // 头文件 #include <windows.h> // 全局变量 WCHAR g_lpszClassName[] = L"CLASSNAME"; WCHAR g_lpszWindowName[] = L"哈喽,新的征程"; // 函数声明 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // 应用程序主函数 INT APIENTRY WinMain(H

微信语音红包小程序开发如何提高精准度 红包小程序语音识别精准度 微信小程序红包开发语音红包

公司最近开发的一个微信语音红包,就是前些时间比较火的包你说红包小程序.如何提高识别的精准度呢. 在说精准度之前,先大概说下整个语音识别的开发流程.前面我有文章已经说到过了.具体我就不谈了.一笔带过. 先是通过小程序前端调动语音录制功能拿到客户说的语音,比如mp3格式,然后通过百度的语音识别算法,转为文字.具体看百度语音识别的接口.地址http://yuyin.baidu.com/docs/asr/188 返回的格式如下: // 成功返回 { "err_no": 0, "err

微信小程序开发——打开另一个小程序

微信小程序打开另一个小程序,有两种方法:1.超链接:2.点击按钮. 全局配置: 跳转到其他小程序,需要在当前小程序全局配置中配置需要跳转的小程序列表,代码如下: App.json { ... "navigateToMiniProgramAppIdList": [ "wxe5f52902cf4de896" ] } 否则会弹出以下错误提示: 超链接实现跳转到小程序: demo.wxml <navigator target="miniProgram&quo

基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)

高仿网易严选的微信小程序商城(微信小程序客户端) 界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+ThinkJS+MySQL 计划添加基于Vue.js的后台管理系统.PC版.Wap版 GitHub: https://github.com/tumobi/nideshop-mini-program 项目截图 首页 专题 分类 商品列表 商品详情 购物车 订单中心 功能列表 首页 分类首页.分类商品.新品首发.

微信小程序语音识别开发过程记录 微信小程序silk转mp3 silk转wav 以及ffmpeg使用

说说最近在开发微信小程序语音识别遇到的问题吧 最先使用微信小程序录音控件可以拿到silk格式,后来微信官方又支持mp3格式了 但是我们拿到这些格式以后,都还不能直接使用,做语音识别,因为目前百度的语音识别格式不支持mp3格式的 百度php语音识别接口 http://yuyin.baidu.com/docs/asr/188 但是有支持wav格式的,于是又要想办法怎么把mp3格式转为wav格式 在百度搜了一大圈 最后知道说要使用一个ffmpeg组件 于是继续搜资料 看看Linux服务器如何安装ffm