微信内网页支付开发手记

最近项目需要用到微信支付,以前弄过淘宝支付,其实原理都差不多,在此做个笔记,方便以后用到。

微信支付分几种,而我只用到了微信内网页支付,其他支付过程大同小异。

官方文档:http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=7_1

微信页内支付:用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程。

总体业务流程时序图:

我们就根据时序图,逐步记录分解说明。

1、申请微信支付

申请微信公众号支付,必需满足以下条件:
1、公众号为服务号,且为企业、媒体、政府及其他组织类型;
2、已完成微信认证(完成资质认证或名称认证,审核服务费用:300元/次)

认证申请是一个漫长又繁琐的过程~~

2、填写支付测试授权地址,测试白名单

3、编写统一下单接口

官方文档:http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=9_1

除被扫支付场景以外,商户系统先调用该接口在微信支付服务后台生成预支付交易单,返回正确的预支付交易回话标识后再按扫码、JSAPI、APP等不同场景生成交易串调起支付。

注意:

(1)其中签名算法一定要按照规定,http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=4_3

(2)文档中提到的APP密匙是在商户系统-》账户设置-》安全设置-》API安全里面获得的密匙,而不是Appsecret(因为这里理解错误,我花了两天困在了签名!)。

   APP密匙:交易过程生成签名的密钥,仅保留在商户系统和微信支付后台,不会在网络中传播。商户妥善保管该Key,切勿在网络中传输,不能在其他客户端中存储,保证key不会被泄漏。商户可根据邮件提示登录微信商户平台进行设置。

(3)不要泄露任何密匙相关信息,所以所有的签名操作都需要提交给服务器完成,不要在html里面硬编码。

(4)notify_url是接收微信支付异步通知回调地址,是判断支付是否成功的关键,该URL不能附带任何类似?A=1&B=2的参数,会被过滤掉,参数应该附加在attach附加参数这个字段中。异步通知回调的时候会原封返回,处理完成数据之后,记得返回微信服务器成功信息,不然会定期重传。关于回调的相关文档http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=9_7

完成统一下单接口之后,与微信支付交互,就能够得到页内支付的预交易会话标识了。

4、编写微信页内支付签名接口

官方文档:http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=7_7

由于又要签名一次,签名用到API密匙,所以服务端要提供签名接口,其中的参数可以在服务端生成,也可以由客户端生成。

根据文档要求,签名完成之后,就调用微信JSAPI直接进入支付流程即可。

整个过程采用XML数据传输。

时间: 2024-11-06 02:31:52

微信内网页支付开发手记的相关文章

微信内网页支付(微信 JSAPI 支付)的一点经验

微信 JSAPI 支付的流程是:服务端根据情况,向微信服务器发起"下单"请求.此处需要提供自己维护唯一的订单号,并要求签名加密.根据"下单"反馈的微信提供的预支付"订单号",用刚才下单请求参数同样的签名方式,对几个基本数据进行封包签名.将签名摘要,和这几个基本数据,传输给 JavaScript 端.JavaScript 通过微信内置对象的方法,唤起支付,并前端返回支付操作结果.微信服务端会异步通知服务端,支付结果:此处通知地址是之前"下

微信公众平台开放JS-SDK(微信内网页开发工具包)

微信公众平台开放JS-SDK(微信内网页开发工具包),这次开放接口是质的飞跃,是对开发者和广大用户一个利好的消息.未来的公众号图文消息会更丰富多彩,准备脑洞大开吧! 微信公众平台今日面向开发者开放微信内网页开发工具包(微信JS-SDK). 通过微信JS-SDK提供的11类接口集,开发者不仅能够在网页上使用微信本身的拍照.选图.语音.位置等基本能力,还可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 微信JS-SDK主要包含以下能力: 1.分享类接口 支持

Thinkphp5整合微信扫码支付开发实例

ThinkPHP框架是比较多人用的,曾经做过的一个Thinkphp5整合微信扫码支付开发实例,分享出来大家一起学习 打开首页生成订单,并显示支付二维码 public function index() { $wechat = new Wechat(); $data['order'] = date('Ymd') . substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8); //订单号 $

微信公众平台--6.JS-SDK 微信内网页开发工具包

该SDK貌似正在被微信给抛弃的感觉,在我用的时候和官网上许多提到的接口已经不再能用了,记录下自己使用的过程.基本都是照着文档来做的,也就按照文档来写吧. 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 1.绑定域名,先登录微信公众平台进入“公众号设置”的“功能设置”里填写“J

微信公众号支付开发全过程 --JAVA

按照惯例,开头总得写点感想 ------------------------------------------------------------------ 业务流程 这个微信官网说的还是很详细的,还配了图.我还要再说一遍. 用户点击一个支付按钮-->{后台一大推处理}-->用户看到了一个输入密码的界面,包含金额等一些信息-->用户输入密码后出来一个支付成功的页面(这部分流程都是微信自己完成的,我们什么都不用做)-->返回系统自己的页面(总不能让用户一直看着一个支付完成的页面吧

使用开源库MAGICODES.WECHAT.SDK进行微信公众号支付开发

概要 博客使用Word发博,发布后,排版会出现很多问题,敬请谅解.可加群获取原始文档. 本篇主要讲解微信支付的开发流程,相关业务基于MAGICODES.WECHAT.SDK实现.通过本篇教程,您可以很方便的快速完成微信公众号支付的开发. 关于Magicodes.WeChat.SDK MAGICODES.WECHAT.SDK为心莱团队封装的轻量级微信SDK,现已全部开源,开源库地址为:https://github.com/xin-lai/Magicodes.WeChat.SDK 更多介绍,请关注后

微信公众号支付开发

最近做了公众号支付,从无到有.大概经历如下步骤: 开发环境 VS2015 W10 .NET4.6 一.公众号 客户公司没有公众号,也不会申请.于是打开微信公众号介面,告诉它一步步弄.最后申请了一个服务号,并且提交了认证申请.其中大概有几处注意 : 微信号公众号名字(这个有被占用的情况).认证时提交的身份信息,企业的三证合一拍照上传. 认证申请提交后第3天时通过了,然后进入微信号开通支付功能,这个是指公众号的支付功能.过程中需要绑定银行帐号,选择经营项目,注意各项目营收费率不一样,经营资质拍照上传

MVC下微信企业号网页应用开发调用JSSDK接口不成功问题

在MVC下进行企业微信里的网页应用开发,前台页面中为了调用图像接口,使用了JSSDK.按照官方文档进行了正确配置. 现象:WEB开发工具调试一切正常,但从手机企业微信应用进入页面后接口调用无效(这个页面是从一级页面链接过来的),开了调试模式后,显示config:ok.说明配置无误.经过反复检查,终于发现问题所在. 原因:在一级页面(http://xx.xxx.xxx/main/index)中的链接是使用htmlhelper来写的,即@Html.ActionLink("测试接口",&qu

微信公众号支付开发备忘

1,首先,你得有一个通过备案的域名,然后一个服务器,然后把你开发好的代码,放到该域名的服务器下; 2,然后登陆微信公众平台, https://mp.weixin.qq.com/ 然后点击: 然后如果这个已经启用,先把他停用: (这里面,稍微说一下,这个要验证通过,必须自己写一个页面,这里面用到的out.aspx,代码的话,前台为空,然后后台代码如下: Response.Write(this.Request.QueryString["echostr"]. Response.End();