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微信三方平台-微信支付(扫码支付)的更多相关文章

  1. Java微信公众平台开发之扫码支付模式一

    官方文档点击查看准备工作:已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败)借鉴了很多大神的文章,在此先谢过了大体过程:先扫码(还没有确定实际要支付的金额),这个码是商品的二维码,再生 ...

  2. Java微信公众平台开发之扫码支付模式二

    官方文档点击查看 准备工作:已通过微信认证的公众号,域名可以不通过ICP备案借鉴了很多大神的文章,在此先谢过了大体过程:根据固定金额和商品的ID先生成订单,再生成二维码,客户扫一扫付款模式二支付的流程 ...

  3. Java之微信支付(扫码支付模式二)案例实战

    摘要:最近的一个项目中涉及到了支付业务,其中用到了微信支付和支付宝支付,在做的过程中也遇到些问题,所以现在总结梳理一下,分享给有需要的人,也为自己以后回顾留个思路. 一:微信支付接入准备工作: 首先, ...

  4. (实用篇)微信支付扫码支付php版

    本文实例为大家分享了php微信扫码支付源码,供大家参考,具体内容如下 代码中包含四个文件createUrl.php.ArrayToXML.php.returnGoodsUrl.php.notifyUr ...

  5. ThinkPHP 整合微信支付 扫码支付 模式二 图文教程

    这篇文章主要介绍扫码支付场景二. 目前有两种模式,模式一比模式二稍微复杂点,至于模式一与模式二的具体内容,流程,微信开发文档都有详细介绍,这里就不多说废话,接下来赶紧上教程! [title]下载SDK ...

  6. 微信开放平台PC端扫码登录功能个人总结

    最近公司给我安排一个微信登录的功能,需求是这样的: 1.登录授权 点击二维码图标后,登录界面切换为如下样式(二维码),微信扫描二维码并授权,即可成功登录:    若当前账号未绑定微信账号,扫描后提示“ ...

  7. 【原创分享·微信支付】 C# MVC 微信支付教程系列之扫码支付

    微信支付教程系列之扫码支付                  今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添 ...

  8. C# 微信支付教程系列之扫码支付

    微信支付教程系列之扫码支付            今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添加好友的时候 ...

  9. ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步通知功能. 开发环境:Win 10 x64.VS2017 15.6.4..NET Core SDK ...

  10. 【转载】ASP.NET Core Web 支付功能接入 微信-扫码支付篇

    转自:http://www.cnblogs.com/essenroc/p/8630730.html 这篇文章将介绍ASP.NET Core中使用 开源项目 Payment,实现接入微信-扫码支付及异步 ...

随机推荐

  1. 21 forms组件-参数initial&instance应用

    简单来讲: 如果你想传入前端的页面中附带值,那么在实例化forms中: form = SecondModelForm(data=request.POST, instance=permission_ob ...

  2. vscode python可以运行,无法debug

    参考:https://blog.csdn.net/weixin_44646187/article/details/125810974 提示'cmd' 不是内部或外部命令,也不是可运行的程序 或批处理文 ...

  3. Python从list中随机取值

    import random idList = ['11', '22', '23', '34', '35', '14', '45', '66', '88', ] def get_randomID(): ...

  4. javase我的笔记

    学习java编程 |--需要遵循其语法规范 |--在其开发环境下编程 准备开发java环境 |--安装jdk |--配置jdk jdk:含义是java提供的一套开发工具,包含jre\编译器等 |--编 ...

  5. Jmeter二、开始使用

    一.最简单的性能测试脚本 testplan→ thread group→HTTP request→view results tree.jmx后缀文件,xml文件校验 二.使用过程中其他需要注意的 1. ...

  6. Charles 抓取 HTTPS 协议内容,需要做什么操作?

    抓取 HTTPS 需要安装证书,Charles 端需要安装 Android.iOS手机端也需要安装 电脑的 Charles 操作:1.proxy - proxy setting - http prox ...

  7. MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

    错误:Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 原因:同一个ip ...

  8. 在gitlab仓库中cli 编译通不过 怎样解决

    1.先切换到master  分支 git  pull   (把代码拉下来) 2.再切换到当前分支 git  rebase   master 查看git  log 看是否跟新到最新的log 3.再在当前 ...

  9. JVM - 1.内存结构

    1 内存结构 1.1 程序计数器 1.1.1 作用 在执行的过程中 , 记住下一条jvm指令的执行地址 物理上通过寄存器实现 1.1.2 特性 每个线程都有自己的程序计数器 - 线程私有 不会存在内存 ...

  10. centos7部署teleport堡垒机

    Centos7.9部署Teleport堡垒机 简介 Teleport是一款简单易用的开源堡垒机系统,具有小巧.易用的特点,支持 RDP/SSH/SFTP/Telnet 协议的远程连接和审计管理.Tel ...