php接入微信JSAPI支付,微信内拉起支付,基于thinkPHP框架 WeChatDeveloper支付类包
文章:php接入微信支付,扫码支付和H5支付(非微信浏览器),基于thinkPHP框架 WeChatDeveloper支付类包 踩坑指南
文章:php快速接入支付宝即时支付,PC网站支付和手机网站支付,基于thinkPHP框架 WeChatDeveloper支付类包
在使用前可以先看上面的微信扫码支付和H5支付的文章,本文主要介绍微信JSAPI支付,在微信内拉起支付;
开发注意事项:
1、在开发前请先确认回调的域名是否加入了JS安全域名,IP白名单,微信公众平台和微信支付平台都要加,并且开通了对应的产品;
2、复制以下代码前必须安装WeChatDeveloper类,下面都是基于这个类写的,如果不安装不用在往下看了;
3、在使用下面的类之前需要先获取到用户的code,下文会具体说明;
4、下面代码部分已经用xxx代码,需要替换成自己业务对应的才可以;
在使用JSAPI支付时,openid为必填项,在对非微信端网站使用该支付时,需要先获取到用户的openid;
网页授权流程分为四步:
1、引导用户进入授权页面同意授权,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期【我们不需要】
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)【我们也不需要】
首先我们让用户访问下面这个网址获取到用户的code,APPID换成自己的,回调网址就是我们下面这个wxJsApi方法,STATE是非必填的 填不填都可以;
https://open.weixin.qq.com/connect/oauth2/authorize?appid=【APPID】&redirect_uri=【跳转的网址】&response_type=code&scope=snsapi_base&state=【非必填参数】#wechat_redirect
当用户访问了上面这个网址并且会跳转到下面这个wxJsApi方法中,在参数中就会携带用户的code,这个时候我们的getOauthAccessToken就会自动获取用户的信息,里面就包含了openid;具体内容见下文代码:
/*** 微信JSAPI支付*/public function wxJsApi(){// 准备配置参数$config = ['appid' => 'wx1238598xxxxxxxxe','appsecret' => '5d6fg5r8g4xxxxxxxxxxxxxx56564hg5','mch_id' => '160xxxxx24','mch_key' => 'NAMECeShi202120xxxxxxxxxxxx21816',];try {// 实例接口$openid = new \WeChat\Oauth($config);// 获取用户的openid$open_id = $openid->getOauthAccessToken();// 创建接口实例$wechat = new \WeChat\Pay($config);// 组装参数,可以参考官方商户文档$options = ['body' => '订单名称','out_trade_no' => time(), //订单号'total_fee' => 1*100, //金额,单位分'notify_url' => 'http://baidu.com/tongzhi', //异步通知地址'spbill_create_ip' => $_SERVER["REMOTE_ADDR"],'trade_type' => 'JSAPI','openid' => $open_id['openid']];$result = $wechat->createOrder($options);$jsapi = $wechat->createParamsForJsApi($result['prepay_id']);// 渲染到前端进行拉起$this->assign('jsapi',$jsapi);return $this->fetch();} catch (\WeChat\Exceptions\InvalidResponseException $e) {echo $e->getMessage() . PHP_EOL;}}
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>微信订单支付</title>
</head>
<body><script>function onBridgeReady(){WeixinJSBridge.invoke('getBrandWCPayRequest', {"appId":"{$jsapi['appId']}", //公众号名称,由商户传入"timeStamp":"{$jsapi['timeStamp']}", //时间戳,自1970年以来的秒数"nonceStr":"{$jsapi['nonceStr']}", //随机串"package":"{$jsapi['package']}","signType":"{$jsapi['signType']}", //微信签名方式:"paySign":"{$jsapi['paySign']}" //微信签名},function(res){if(res.err_msg == "get_brand_wcpay_request:ok" ){// 使用以上方式判断前端返回,微信团队郑重提示:// res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。location.href="http://www.baidu.com/ok";}});}// 页面加载自动触发window.onload=function(){if (typeof WeixinJSBridge == "undefined"){if( document.addEventListener ){document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);}else if (document.attachEvent){document.attachEvent('WeixinJSBridgeReady', onBridgeReady);document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);}}else{onBridgeReady();}}
</script>
</body>
</html>
php接入微信JSAPI支付,微信内拉起支付,基于thinkPHP框架 WeChatDeveloper支付类包相关推荐
- php接入微信支付,扫码支付和H5支付(非微信浏览器),基于thinkPHP框架 WeChatDeveloper支付类包 踩坑指南
此文章入选<PHP领域内容榜>第4名 文章介绍 本文主要介绍通过thinkPHP5和第三方支付类包(WeChatDeveloper)实现快速接入微信扫码支付和微信H5手机网站支付(非微信浏 ...
- php表白墙源码 怎么用,基于ThinkPHP框架开发的微信表白墙PHP源码
源码介绍 微信表白墙PHP源码是基于ThinkPHP框架编写的,全站使用ajax无刷新请求和提交数据,使用非常流畅,用户体验很高. 本程序实现的功能是: 头像:头像使用了QQ头像取消了之前的随机显示头 ...
- php源码 拼车网顺风车_基于ThinkPHP框架开发的在线微信拼车系统完整PHP源码+支付微信支付...
源码介绍 基于ThinkPHP框架开发的在线微信拼车系统主要是基于微信的在线拼车系统,也是一款不错的微信号管理系统,该微信拼车系统主要是基于ThinkPHP3.2.3框架开发,主要功能有发布租车信息. ...
- 微信会员php源码,基于ThinkPHP框架开发的在线微信拼车系统完整PHP源码-深蓝源码会员专享...
源码介绍 基于ThinkPHP框架开发的在线微信拼车系统主要是/基于微信的在线拼车系统,也是/一款不错的微信号管理系统,该微信拼车系统主要是/基于ThinkPHP3.2.3框架开发,主要功能有发布租车 ...
- ThinkPHP php 仿千图网源码_PHP微信表白墙源码 基于ThinkPHP框架开发
PHP微信表白墙源码是基于ThinkPHP框架编写的,全站使用ajax无刷新请求和提交数据,使用非常流畅,用户体验很高. 本程序实现的功能是: 头像:头像使用了QQ头像取消了之前的随机显示头像,新增了 ...
- 微信jsApI及微信分享对应在手机浏览器的调用总结。
摘录自别人的博客: 第一篇:微信内置浏览器的JsAPI(WeixinJSBridge续) 之前有写过几篇关于微信内置浏览器(WebView)中特有的Javascript API(Javascript ...
- 微信开放平台(第三方平台)代替微信公众号发送模板消息(基于lavarel框架开发,EasyWeChat)
1.公众号必须得把模板消息授权到第三方平台. 2.我用的是 EasyWeChat 3.通过接口修改账号所属行业 (实质上就是开通模板消息) //修改账号所属行业public function set_ ...
- php tp 微信支付,PHP实现的微信APP支付功能示例【基于TP5框架】
本文实例讲述了PHP实现的微信APP支付功能.分享给大家供大家参考,具体如下: 1.进行支付请求 他给的DEMO 用的时候有时候会报错 1)我遇到的情况 把 WxPay.Api.php这个文件的 p ...
- 微信支付php详解 php,ThinkPHP框架整合微信支付之刷卡模式图文详解
本文实例讲述了ThinkPHP框架整合微信支付之刷卡模式.分享给大家供大家参考,具体如下: 大家好,这篇文章是继微信支付之Native 扫码支付 模式二之后的微信支付系列教程第四篇:微信刷卡支付 本教 ...
最新文章
- 控件的实际大小与呈现大小
- 美国中央情报局CIA正通过开发人工智能项目,收集与检索社交媒体情报
- DebugView调试C#程序 学习总结
- /proc/asound详细介绍
- gwt的mvp模式_GWT MVP变得简单
- 气象气候应用在Intel最新处理器Icelake上的性能测评
- VMware里Ubuntu-14.04-desktop的VMware Tools安装图文详解
- MVC3 Razor语法速查
- 计算机原理华东理工大学期末成绩查询,华东理工大学微机原理历年真题第十一章.ppt...
- 编程语言-初学者常见的几个问题
- File Finder pro Mac版重复文件查找器使用方法
- mysql日期为00_MySQL 8.0.13设置日期为0000-00-00 00:00:00时出现的问题解决
- 新世纪音乐——天籁之音
- 使用腾讯云OCR文字识别
- XCPC Team Trainning Round 1 (NCPC2018)
- 切割木板 (贪心)
- 罗杨美慧 20190919-6 四则运算试题生成,结对
- conflicting requests nothing provides libpq.so.5(RHPG_9.6)(64bit) needed **
- 留学地 各国比较2021
- 前端做微信好友分享_一篇搞定微信分享和line分享