PHP微信三方平台-微信支付(扫码支付)
1、官方文档地址:
https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1
2、逻辑分析:
生成支付二维码-》用户扫码支付-》成功后支付回调完成业务功能
3、准备工作
一个生成图片二维码的文件(phpqrcode)
二、代码
require_once '../librarys/wx/wx_pay/lib/WxPay.Api.php';
require_once '../librarys/wx/wx_pay/lib/WxPay.Config.php';
require_once '../librarys/wx/wx_pay/lib/WxPay.NativePay.php';
1 /**
2 * 微信支付,扫码支付
3 * @return string
4 * @throws \yii\base\Exception
5 */
6 public function actionWxPayNative()
7 {
8 $body = $this->_getRequestValue('body');//主题
9 $attach = $this->_getRequestValue('attach');//备注信息
10 $trade_no = $this->_getRequestValue('trade_no', Yii::$app->security->generateRandomString(8));//订单号
11 $total_fee = $this->_getRequestValue('total_fee');//支付金额
12 $notify_url = $this->_getRequestValue('notify_url');//支付成功后的回调地址
13 $app_id = $this->_getRequestValue('app_id');//公众号的app_id
14 $mch_id = $this->_getRequestValue('mch_id');//商户id
15 $mch_key = $this->_getRequestValue('mch_key');//商户key
16
17 $pay_config = ['APPID' => $app_id, 'MCHID' => $mch_id, 'MCHKEY' => $mch_key];
18
19 $attach = json_encode($attach);
20 $notify = new \NativePay();
21 $input = new \WxPayUnifiedOrder();
22 $input->SetBody($body);
23 $input->SetAttach($attach);
24 $input->SetOut_trade_no($trade_no);
25 $input->SetTotal_fee($total_fee);
26 $input->SetTime_start(date("YmdHis"));
27 $input->SetTime_expire(date("YmdHis", time() + 600));
28 // $input->SetGoods_tag("test");
29 $input->SetNotify_url($notify_url);
30 $input->SetTrade_type("NATIVE");
31 $input->SetProduct_id($trade_no);
32
33
34 $result = $notify->GetPayUrl($input, $pay_config);
35
36 if (isset($result['result_code']) == 'SUCCESS' && $result['return_code'] == 'SUCCESS') {
37 $data = ['app_id' => $result['appid'], 'mch_id' => $result['mch_id'], 'code_url' => $result['code_url'], 'trade_type' => $result['trade_type']];
38 return $this->renderJson($data);
39 }
40
41 $data = ['return_msg' => $result['return_msg']];
42
43 $log_id = Yii::$app->session->get(self::RequestBaseApiLogId);45
46
47 return $this->renderJson($data, 1, '生成扫码支付失败');
48 }
页面
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2019-01-10
* Time: 17:52
*/
?> <div class="message-cz">
<div class="top">支付金额 <b class="font-red">¥0.01</b></div>
<div class="zxzf">
<div class="ewm">
<img alt="扫码支付" src="<?php echo \yii\helpers\Url::to(['common/qr-code', 'qr_code' => $code_url]); ?>"
style="width:220px;height:220px;"/>
</div>
</div>
<p>在微信右上角点击"扫一扫"</p>
<a href="javascript:;" class="btn_close"></a>
</div> <script type="text/javascript">
$('.btn_close').click(function () {
$('.inside-alert-wrapper').hide();
clearInterval(ref);
}); var data = {};
data.record_id = "<?= $record_info['id'] ?>"; var count = 0;
ref = setInterval(function () {
count++;
if(count >= 300) {
clearInterval(ref);
} requestJson('check-recharge-status', data, false, function (responseJson) {
if (responseJson.data == '1') {
infoDialog('支付成功');
clearInterval(ref);
$('.inside-alert-wrapper').hide();
window.location.reload();
}
})
}, 2000);
</script>
PHP微信三方平台-微信支付(扫码支付)的更多相关文章
- Java微信公众平台开发之扫码支付模式一
官方文档点击查看准备工作:已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败)借鉴了很多大神的文章,在此先谢过了大体过程:先扫码(还没有确定实际要支付的金额),这个码是商品的二维码,再生 ...
- Java微信公众平台开发之扫码支付模式二
官方文档点击查看 准备工作:已通过微信认证的公众号,域名可以不通过ICP备案借鉴了很多大神的文章,在此先谢过了大体过程:根据固定金额和商品的ID先生成订单,再生成二维码,客户扫一扫付款模式二支付的流程 ...
- Java之微信支付(扫码支付模式二)案例实战
摘要:最近的一个项目中涉及到了支付业务,其中用到了微信支付和支付宝支付,在做的过程中也遇到些问题,所以现在总结梳理一下,分享给有需要的人,也为自己以后回顾留个思路. 一:微信支付接入准备工作: 首先, ...
- (实用篇)微信支付扫码支付php版
本文实例为大家分享了php微信扫码支付源码,供大家参考,具体内容如下 代码中包含四个文件createUrl.php.ArrayToXML.php.returnGoodsUrl.php.notifyUr ...
- ThinkPHP 整合微信支付 扫码支付 模式二 图文教程
这篇文章主要介绍扫码支付场景二. 目前有两种模式,模式一比模式二稍微复杂点,至于模式一与模式二的具体内容,流程,微信开发文档都有详细介绍,这里就不多说废话,接下来赶紧上教程! [title]下载SDK ...
- 微信开放平台PC端扫码登录功能个人总结
最近公司给我安排一个微信登录的功能,需求是这样的: 1.登录授权 点击二维码图标后,登录界面切换为如下样式(二维码),微信扫描二维码并授权,即可成功登录: 若当前账号未绑定微信账号,扫描后提示“ ...
- 【原创分享·微信支付】 C# MVC 微信支付教程系列之扫码支付
微信支付教程系列之扫码支付 今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添 ...
- C# 微信支付教程系列之扫码支付
微信支付教程系列之扫码支付 今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添加好友的时候 ...
- ASP.NET Core Web 支付功能接入 微信-扫码支付篇
这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK ...
- 【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇
转自:http://www.cnblogs.com/essenroc/p/8630730.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步 ...
随机推荐
- 开发Unity3D空战类插件 战机HUD系统
Fighter HUD System 当您使用Unity3D来开发飞行模拟或者空战类游戏时,这款Fighter HUD Sytem插件将会非常的适合用来充当您战机的HUD系统. 特点 此HUD系统的安 ...
- jmeter支持发送https请求
示例网址: https://passport.damai.cn/login 一.Jmeter如何导入SSL证书 步骤1.打开Chrome浏览器访问地址,点击安全锁,导出证书,并复制文件至指定文件目录. ...
- Unit Test下使用H2内存数据库
1.Maven引入包 <dependency> <groupId>com.h2database</groupId> <artifactId>h2< ...
- Loadrunner——调试及脚本编译
调试一般用于运行代码是出现的错误. loadrunner调试方式:断点.单步跟踪.日志输出.值查看器等, 断点设置 断点插入的位置:非空行或非语句的起始,简单来说呢就是断点打在函数前(取消断点就直接在 ...
- js 导出json文件
var data={}//处理得到的json字符串 var filename = 'json.json'//json文件名 if(typeof data === 'object'){ ddd = JS ...
- nrm ls报错及npm镜像站点测速、切换
报错截图: 解决方法: 1.win键,搜索powershell,点击"以管理员身份运行" 2.粘贴下面命令,回车,敲y,回车 set-ExecutionPolicy RemoteS ...
- 浅谈oracle连接远程数据库
若是本地安装了oracle服务器 1 比较直接的方式是直接修改配置文件 去...\product\11.2.0\dbhome_1\NETWORK\ADMIN下面找三个.ora的配置文件:sqlnet. ...
- C++ 全面总结
1. 基本数据类型:没什么好说的.知道浮点数存储起来不精确.各种类型占的大小在不同平台可能不一样就行了 2. 初始化列表:能用就用.能防止潜在的类型收窄, 3. static_cast 和 dynam ...
- 在 vuex 中建立一个 permission.js 文件用于合并静态和动态的路由规则
结果会获取完整的用户的路由规则 // 新建一个vuex模块来专门处理权限相关操作 import { constantRoutes, asyncRoutes } from "@/router& ...
- weblogic session timed out
How to Configure Session Timeout in Weblogic Server (WLS) ?