商户系统和微信支付系统主要交互说明:
- 步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。
- 步骤2:商户后台收到用户支付单,调用微信支付统一下单接口。参见【统一下单API】。
- 步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay
- 步骤4:商户APP调起微信支付。api参见本章节【app端开发步骤说明】
- 步骤5:商户后台接收支付通知。api参见【支付结果通知API】
- 步骤6:商户后台查询支付结果。api参见【查询订单API】
原来一直以为微信APP支付是跟公众号支付一样,使用同样的APPID以及商户ID(mch_id),经过尝试才发现并不是这样。对于微信APP支付,需要在微信开放平台中注册,并提交审核:https://open.weixin.qq.com/,在微信~开放平台中进入管理中心,创建移动应用,并提交审核申请微信支付权限(过程很漫长,而且需要¥300)。
根据上图中可以看出微信支付能力已经获得。
注意由于是属于APP支付,还需要提供iOS平台的BundleID,以及Android平台的包名和应用签名
注:APP支付相关信息如下:
开发信息
以后支付采用的APPID和AppSecret是在开放平台上已经注册的,与微信公众号无关,商户ID和初试密码会通过邮件的方式发送过来,还需要重新设置商户的APISecret(登录后设置)。
与微信公众平台稍微有所不同的就是统一下单接口是会有所不同。
商户后台在收到用户支付单之后,需要调用微信支付统一下单接口:
统一下单接口与公众平台微信支付比较类似,但是也有很多不同之处,返回正常的prepay_id之后,需要重新生成签名(公众号不需要),生成签名的算法为:
参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay,partnerId使用mchid即可。
进行统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appId,partnerId(微信商户id),prepayId(预付订单id),nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay
<!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->
文档中的步骤3,简直是在骗人!在APP发起支付后,返回的总是错误数据,能够进入微信界面,但最后发现其中只有一个确定按钮,返回的错误码为-2,这就是签名造成的错误!
注意!参与签名的字段必须都为小写,不能存在大写字段!坑了我们好几天,经过google后才能找出对应的问题!
具体可以参考下面的文档内容:
<!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->
此外,支付结果回调需要能够支持app的支付结果回调,回调的方法中如果确认成功,需要返回一段XML,才能让微信服务器确认已经接受到notify消息,否则微信服务器会多次retry调用我们的接口。
<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> </xml>
在xml中可以看到CDATA标签, CDATA 区段(CDATA section)中的文本会被解析器忽略,这样可以保证既能够让xml工具正常解析,又可以在其中放置一些特殊字符串,例如<等,在其中不需要再次转义。
好在iOS以及Android端均存在对应的开发文档,而且没有什么坑:
相关推荐
在本项目实例中,我们探讨的是一个基于微信小程序的备忘录应用。微信小程序是一种轻量级的应用开发平台,特别适合构建无需下载安装即可使用的移动应用。该项目旨在提供记录文字、计时以及设置提醒的基本功能,以满足...
微信小程序是一种轻量级的应用开发框架,由腾讯公司推出...总之,“微信小程序推荐demo:备忘录”是一个实用的学习资源,通过它,开发者可以深入理解微信小程序的开发流程,掌握相关技术,从而开发出自己的小程序应用。
微信小程序是一种轻量级的应用...对于初学者来说,这是一个很好的实践项目,能加深对微信小程序开发流程和框架的理解。而对于有经验的开发者,这个模板可以作为快速构建类似应用的基础,减少重复工作,提升开发效率。
微信小程序是一种轻量级...总之,通过这个“微信小程序开发-备忘录案例源码”,开发者不仅可以学习到小程序的基本结构和开发流程,还能深入了解微信小程序的各种特性和实战技巧,对提升自己的小程序开发能力大有裨益。
微信中运行的备忘录小程序开发源码,用来记录你需要做的事,并可设置提醒时间、提醒方式等,在Android机中,有不少类似的APP应用,不过本源码主要是面向微信小程序开发的,对刚接触微信小程序开发的新手,或许会从中...
在这个备忘录应用中,JavaScript 文件(可能命名为 app.js、pages/memo/memo.js 等)将包含用户交互逻辑,如添加新备忘、编辑现有备忘、删除备忘以及可能的数据同步功能。 此外,微信小程序还有一套自己的数据绑定...
在这个备忘录示例中,可能包含输入框(input)用于记录备忘内容,按钮(button)用于保存或删除备忘,列表(list)展示已保存的备忘。 3. **数据管理**:小程序使用`Page`对象和`App`对象来管理页面和全局数据。`...
"微信小程序备忘录"项目是一个典型的微信小程序应用场景,它结合了多种功能,旨在帮助用户管理和记录日常生活中的点滴。 1. **列表**:在微信小程序中,列表是展示数据的常见方式。可以使用`<view>`、`<block>`等...
丰富API:微信提供了丰富的API接口,让开发者能够轻松实现各种功能,如微信支付、社交分享等。 跨平台兼容:一次开发,多平台使用,支持iOS和Android系统,实现真正的跨平台开发。 现在,我们为您提供了微信小程序的...
备忘录类的小程序通常用于帮助用户记录生活中的琐事、待办事项或者灵感,方便随时查看和管理。 这个“微信小程序 备忘录 (源码).rar”文件可能包含了一个完整的微信小程序开发项目,开发者可以借此学习如何构建类似...
微信小程序“蚂蚁记事本”是一款轻量级的备忘录和笔记应用,旨在提供便捷、高效的记录体验。在这个名为“ant_noteBook-master”的压缩包中,包含了开发此小程序的所有源代码和资源文件,这对于开发者来说是一份宝贵...
首先,我们注意到标签中有"app",这表明我们将讨论的是一个应用程序,而"weixin"则暗示这个备忘录是为微信平台设计的小程序。微信小程序是一种无需下载安装即可使用的应用,它实现了“触手可及”的理念,用户扫一扫...
"备忘录"通常指的是用于记录日常事务的应用,而微信小程序则是在微信平台上运行的一种轻量级应用,无需下载安装即可使用。 描述中的“备忘录-微信小程序源码”进一步确认了这个压缩包的内容,即包含了用于创建一个...
小程序之备忘录开发的源码,微信的react的特性使它很适合用来开发这种单机版简单交互的备忘录。在本示例中,初始时页面只有一个简简单单的欢迎词和文本框,当聚焦文本框开始输入文字,下方出现提交及重置按钮,默认...
备忘录功能是常见的应用场景,它允许用户记录、查看和管理个人笔记。在微信小程序中实现备忘录,我们需要以下关键组件和技术: 1. **数据存储**:微信小程序提供了`wx.setStorageSync`和`wx.getStorageSync`接口,...
管理员角色包含以下功能:登录系统,管理家庭成员用户信息,管理收入和支出类型,管理维护收入记录和支出记录,维护支付方式,发布新闻等。 用了技术框架:微信小程序客户端 + Java后台服务器端,api接口通信 + ...
标题"备忘录_微信小程序模板js代码前台前端H5页面源码.rar"揭示了这是一个关于微信小程序的项目,其中包含了JavaScript(js)代码,用于构建前端界面,特别是H5(HTML5)页面的源码。这通常意味着用户可以下载并...
通过对这个备忘录案例的学习,你可以深入理解微信小程序的开发流程,掌握基本的前端技术,并提升实际项目开发能力。同时,也可以根据需求进一步拓展,比如增加云数据库支持,实现数据同步,或者添加更多高级功能。