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,实现接入微信-扫码支付及异步 ...
随机推荐
- 2022-07-09 第一小组 张明旭 前端HTML学习记录
今天是正式学习的第一天,第一次接触前端内容,蒙了一圈又一圈,老师讲课速度是1000圈/s!!!!!!(插一句老师的打字和打代码速度起飞!) 好在有视频回放而且跟了笔记,能复习n遍.加油!!! 主要学习 ...
- rdlc报表需要显示的时间格式
[仅取当前时间的年月日]=FormatDateTime(System.DateTime.Now.ToLongDateString().ToString()) [仅取数据库保存的时间的年月日]=form ...
- SQL server——基础篇之数据完整性
定义:保证数据库中的数据在逻辑上的一致性.正确性和可靠性. 作用:防止无效数据或错误数据进入数据库 数据完整性包括:实体完整性.域完整性和参照完整性 实体完整性 规定表的每一行记录在表中是唯一的 实体 ...
- 新手IC617安装NCSU pdk
新手IC617安装NCSU cdk 以CMOSedu网站为参考:https://cmosedu.com/videos/cadence/tutorial1/cadence_tutorial_1.htm ...
- input button
即使你在文本输入下方添加了按钮,它们也会在页面上彼此相邻. 这是因为 input 和 button 元素都是内联元素,它们不会出现在新的行上. <button type='submit'> ...
- vue-多个卡片翻转动效
<van-grid :column-num="2" class="content" :border="false" > < ...
- linux-taglist
vim 变量.函数索引 1. sudo dnf install vim-taglist 2. 下载taglist, https://www.vim.org/scripts/script.php?scr ...
- 【javascript】export 与 export default 区别
总是记不得,自己打一遍 通过export方式导出,在导入时要加{ },export default则不需要,因为它本身只能有一个
- vs2019远程调试win7系统的程序
vs2019远程调试 一.安装vs2019远程调试工具 首先让调试的电脑(也就是不安装vs2019的电脑),安装vs2019远程调试工具:VS_RemoteTools.exe. 网址:进行下载.h ...
- F - Substring of Sorted String
题目链接 题解(树状数组) 我们维护两个树状数组,一个记录 \(1\sim i\) 中 \(s_i>s_{i+1}\)的数量,即逆序对数量,另一个记录 \(1\sim i\) 中 \(26\) ...