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. Jetpack compose学习笔记之自定义layout(布局)

    一,简介 Compose中的自定义Layout主要通过LayoutModifier和Layout方法来实现. 不管是LayoutModifier还是Layout,都只能measure一次它的孩子Vie ...

  2. C#——》Web Api 操作MySQL数据库公共类:MySql.Data

    使用MySql.Data 连接mysql 数据库,需先引用MySql.Data ,用过MySql.Data.dll操作Mysql数据库. 1,在工具-Nuget包管理器-管理解决方案的Nuget程序包 ...

  3. 【UE4】GameplayTag的妙用(ActorTag)

    我不会抛下这个残破的世界 在现代游戏引擎中,有一个"Tag"的概念,无论是在Unreal还是Unity中,他们都有大同小异的tag实现. 此篇随笔以Actor Tag举例,简单讲解 ...

  4. 人森第一个iOS app,写给我家baby的!纪念一下

    用python写的,对于非专业iOS开发来说,py是个不错的选择,使用beeware框架,感觉和写前端差不多

  5. springboot 日志处理

    引言 springboot框架集成logback日志 logback是由log4j创始人设计的又一个开源日志组件.目前,logback分为三个模块:logback-core,logback-class ...

  6. 12.21linux学习第二十天

    今天老刘讲最后一章,第20章使用LNMP架构部署动态网站环境.定制安装17个安装包,编译安装要花很长时间,需要漫长的等待. LNMP动态网站部署架构是一套由Linux + Nginx + MySQL ...

  7. CF823div2B

    cf823div2B 题目链接 题目大意 多组测试数据,有\(n\)个点在数轴上,他们想要集会,每个点到目标点\(y\)的时间为$$t_i+|x_i-y|$$ 试求所有点到\(y\)中最长时间的最小值 ...

  8. 【转】Thunderbird 设置转移

    此文章可能已经过时. 此文章的原文版本已经做出了重大更动.在此页面更新前,您可能也会觉得这个有用:Profiles - Where Thunderbird stores your messages a ...

  9. Selenium常见方法

    1.打开和关闭浏览器  打开浏览器   driver=webdriver.Ie()   driver=webdriver.Chrome()   driver=webdriver.Firefox() ...

  10. porps传参

    porps传参(最常用的 布尔传值)(基于前面的步骤进行修改) ①index.js //定义动态路由 props:trueconst routes =[ {path:"/user/:id/: ...