微信支付-JSAPI模式开发

之前写了两篇文章都不是关于技术类的,这个号主要还是以分享技术为主,第三篇必须得上技术类的文章,不然会对不起大家的,所以就有了今天的文章。

现在微信支付开发很火,也不是特别难,网上也很多别人整理的教程,也有官方开发文档。主要是每个人在开发的过程中常常会遇到一些不同的小问题,然后怎么去解决这才是最关键的。作为web开发者,尤其是后端开发者,不会微信支付开发的话就真的很low。

最近做了一个在线租车的微信项目,项目其中正好有微信支付这个功能,我在做的过程中也遇到了一些小问题,虽说之前也做过,但之前都没遇到过这些问题。最后经过自己的思考和网上查资料,一个一个方法的去调试,最后完美的解决了。

以下是我做微信支付功能的相关效果截图:

以下是我的开发步骤:

注明:我用的是Thinkphp框架搭的项目,所以这个微信支付功能是在TP的基础上实现的。

第一步:需要以下资料

‘WX_APPID‘ => ‘微信公众号应用ID‘

‘APPSECRET‘ => ‘微信公众号应用密钥‘

‘MCHID‘ => ‘微信商户ID‘

‘KEY‘ => ‘微信商户密钥‘

微信商户密钥如何设置:

第二步:支付目录授权配置

第三步:上传类库

路径:/Libs/ThinkPHP/Library/Vendor/WxPayPubHelper

微信支付-JSAPI模式没有用到证书,也可以不用上传证书。

路径:/Libs/ThinkPHP/Library/Vendor/SendMessage

这个是微信公众号主动给用户推送消息的类,当订单支付完成时执行这个方法,给用户推一个消息,通知用户订单支付成功,此功能我主要是为了用户体验而加的。

第四步:配置文件

第五步:控制器

第六步:支付页面

到此为止,微信JSAPI支付功能就全部做好了。

我在做微信支付的过程中出现了一个比较麻烦的问题,耗费了我半天的时间才解决的,就是在支付过程中回调通知地址的URL不规则,导致虽然支付成功了,但获取不到订单信息以及对订单信息的处理。微信支付要求回调通知URL必须不能带参数,如:“http://你的域名/index.php/home/WxJsAPI/notify/”。因为我用的是Thinkphp的路由模式3,此路由带了参数,如:“http://你的域名/index.php?s=/home/WxJsAPI/notify/”。(凡是URL里带有“?”的,都算是带了参数)

我最后的解决方法是,重写服务器的URL,让Thinkphp的三种模式都兼容。所以我就在Nginx的配置文件里rewrite了URL,如:

当然,如果你是第一次做,肯定会遇到各种问题,如果你是新手,遇到的问题都不知道为什么,即使你做过了再做我相信还是可能由于细节上的疏忽会出现问题的,不过不要烦躁,耐心的去发现问题,耐心的去调试,最后一定可以解决的。

完整代码包下载:http://pan.baidu.com/s/1i5rn3w



现在是信息大爆炸时代,信息泛滥,在这样的社会环境下,好的原创文章是最需要的,最不应该被淹没的,所以我就开始写文章了。这是我写的第三篇文章,是一篇关于微信支付的技术类文章,目的是分享给有需要的朋友,大家可以一起交流进步。可能很多地方写的不好,请大家多多指出。

我一直认为写文章是最好的思考方式,不光在分享,也在沉淀自己。张德Talk上的文章主要是分享技术、产品、创业和生活的相关有趣故事和经历。

时间: 2024-10-11 03:58:51

微信支付-JSAPI模式开发的相关文章

微信支付JSAPI模式及退款CodeIgniter集成篇

微信支付接口文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_1 首先你得知道这个jsapi是不能离开微信进行调用支付的,明白了这个道理我们好下手,页面是在微信内显示并通过jsapi调用微信支付组件进行支付. 可以看看我们上一篇文章,主要是Native扫码支付模式二 我们仍然继续使用wechatpay.php这个支付集成类,简单方便好理解,不过如果应用jsapi的话这个类有个bug 在我们构造jsapi需要的参数时有个时间

微信支付服务商模式(受理机构模式)开发注意事项,jsapi支付

1.首先下载的demo,一般都是有些bug的,先要改一下. 2.微信貌似没有为服务商模式单独开发demo,下载的也都是普通商户的支付demo,其实这里没有必要单独写,因为他们区别就是几个参数的区别. (0)demo里设置的参数全部都要填服务商的,而不是子商户的. (1)第一个区别是openid,demo里直接传的openid,服务商模式需要传sub_openid,获取的方式就不说明了,总之获取所需都是子商户即特约商户的appid,appsecret. (2)需要在传入页面多传一个sub_mch_

[微信开发] - 微信支付 JSAPI 形式

微信官方的JSAPI文档 微信官方的JSAPI支付SDK与DEMO下载 查看JSAPI的API可以从这里看 下载了支付DEMO其实有些地方不对的,比如如果做沙盒测试的时候,需要使用getsignkey,而官方的demo中没有这个. 看了看sf.gg的一个文章,之后把获取getsignkey的api请求加了进去. 现在的 WXPayConstants : package com.wechat.demo.wxpay; import org.apache.http.client.HttpClient;

微信支付h5客户端开发步骤

第一步:用户同意授权,获取code 在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下 服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面: https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&s

微信公众号可通过现金红包接口发放微信支付现金红包(附开发教程)

农历新年将至,支付宝红包打了一仗,微信在朋友圈屏蔽了它的分享,但单防守还不行,进攻才是最好的防守.昨日,微信支付现金红包接口正式开放,只需开通微信支付,即可接入现金红包.微信公众号也可以发放现金红包了! 通过现金红包接口,公众号开发者可以策划相关运营活动,向用户发放微信支付现金红包,更好的达到品牌推广及回馈用户的效果. 1.商户调用接口时,通过指定发送对象以及发送金额的方式发放红包,这样的方式,允许商户灵活的应用于各种各样丰富的活动场景 2.领取到红包后,用户的资金直接进入微信零钱,避免繁复的领

微信支付-JSAPI支付V3-发起一次支付请求

JSAPI支付业务流程:图片来源于:http://pay.weixin.qq.com/wiki/doc/api/index.php?chapter=7_4 准备工作:需要先在项目中引用Senparc.WeiXin.dll和Senparc.WeiXin.MP.dll,开源项目见:https://github.com/JeffreySu/WeiXinMPSDK 第一步:绑定域名 先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. 第二步:引入JS文件 在需要调用JS接口的

php 微信支付jsapi 转的,好像能用。。

首先你们公司开通微信支付功能后,会收到一份邮件,里面有账户相关信息,一般有:微信支付商户号,商户平台登录帐号,商户平台登录密码,申请对应的公众号,公众号APPID. 1.下载demo:用上面信息登陆"微信商户平台",>>>(右上角开发文档)>>>公众号支付>>>sdk下载>>>选php 2.下载证书:账户中心>>>api安全  当然证书如果不做扫码支付是用的到的 3.将下载的证书中的所有文件解压到

微信支付.NET版开发总结(JS API),好多坑,适当精简

前2天,做一个手机网页的微信支付的项目,费了好些周折,记录一下.接下来,按照开发步骤,细数一下,我遇到的那些坑. [坑1]官方邮件中下载的demo只有PHP版本,其他版本没有给链接.可能让人误以为只有PHP版本,事实上,各种版本都有. 拿到了腾讯发给客户的,微信支付商户资料,邮件中提示:证书的详细使用方案,请查看微信支付开发接口文档.根据邮件微信支付开发接口文档的链接,定向到一个新的邮件附件,里面的内容: 3. 使用公众号发起支付请求 使用JS API在微信的网页中发起支付请求,详细方法见文档中

微信支付.NET版开发总结(JS API),好多坑,适当精简。

前2天,做一个手机网页的微信支付的项目,费了好些周折,记录一下.接下来,按照开发步骤,细数一下,我遇到的那些坑. [坑1]官方邮件中下载的demo只有PHP版本,其他版本没有给链接.可能让人误以为只有PHP版本,事实上,各种版本都有. 拿到了腾讯发给客户的,微信支付商户资料,邮件中提示:证书的详细使用方案,请查看微信支付开发接口文档.根据邮件微信支付开发接口文档的链接,定向到一个新的邮件附件,里面的内容: 3. 使用公众号发起支付请求 使用JS API在微信的网页中发起支付请求,详细方法见文档中