要实现原生扫码支付功能,前提已经完成了[微信平台支付配置](微信平台支付配置.md)
# 模式一开发实现流程
## 第一步:获取二维码
获取到的二维码链接已自动进行转换短链接操作,减小二维码数据量,提升扫描速度和精确度。
获取的方法如下:
~~~
$appid = '你的公众号appid';
$product = [
'product_id'=>'商户定义的商品id 或者订单号',
'body'=>'商品简单描述',
'out_trade_no'=>'商户系统内部订单号,要求32个字符内、且在同一个商户号下唯一',
'total_fee'=>'订单总金额,单位为分'
];
$callback = '支付成功后的回调地址';
$type = 1; //模式一
$scan = D('Common/Payment')->scan_pay($appid, $product, $callback, $type);
if ($scan['status'] == 0) {
$this->error($scan['msg']);
}
$this->assign('qrcode', $scan['short_url']);
~~~
prodect数组是传递最基本的商品参数,同时也支持传递更多微信支付里的[统一下单](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1)接口里的参数
参数body请按照规范传递,具体请见[参数规则](https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=4_2)
其中回调地址的格式:应用名/model类名/方法名,如:weixin/Service/payok
type的值是 1或者2,1表示模式一,2表示模式二,默认是2
## 第二步:显示二维码
在前台HTML里可以通过WeiPHP自带的JS库生成并显示二维码:
~~~
<script type="text/javascript" src="__STATIC__/qrcode/qrcode.js"></script>
<script type="text/javascript" src="__STATIC__/qrcode/jquery.qrcode.js"></script>
<div id="qrCode"></div>
<script type="text/javascript">
var textLink = "{$qrcode}";
$('#qrCode').qrcode({width:150,height:150,text:textLink});
</script>
~~~
## 第三步:异步接收支付结果
参考 [异步接收支付结果](异步接收支付结果.md)
# 模式二开发实现流程
模式二的开发流程同模式一。
## 第一步:获取二维码
同模式一,只需要把type参数修改为2,然后二维码的地址修改为:
获取的方法如下:
~~~
$appid = '你的公众号appid';
$product = [
'product_id'=>'商户定义的商品id 或者订单号',
'body'=>'商品简单描述',
'out_trade_no'=>'商户系统内部订单号,要求32个字符内、且在同一个商户号下唯一',
'total_fee'=>'订单总金额,单位为分'
];
$callback = '支付成功后的回调地址';
$type = 2; //模式二
$scan = D('Common/Payment')->scan_pay($appid, $product, $callback, $type);
if ($scan['status'] == 0) {
$this->error($scan['msg']);
}
$this->assign('qrcode', $scan['code_url']);
~~~
## 第二步:显示二维码
同模式一
## 第三步:异步接收支付结果
参考 [异步接收支付结果](异步接收支付结果.md)
- 序言
- 基础
- 安装WeiPHP
- 目录结构
- 错误码分配
- 错误码问答系统
- 入答疑群方法
- 快速入门
- 谈谈开发目标
- 前期准备
- 增加应用
- 编写微信响应代码
- 激动的时刻_体验测试
- 用户
- 用户体系
- 超级管理员
- 运营人员
- 粉丝
- 扫码登录
- 公众号
- 手工绑定
- 一键绑定
- 自定义菜单
- 微信支付
- 微信平台支付配置
- 公众号支付
- 原生扫码支付
- 异步接收支付结果
- 现金红包
- 发放普通红包
- 查询红包记录
- 红包记录数据结构
- 现金支付
- 下发支付
- 查询支付记录
- 现金支付数据结构
- 刷卡支付
- 提交刷卡支付
- 查询刷卡支付记录
- 撤销刷卡支付
- 支付记录数据结构
- API服务
- oauth2.0安全验证
- 后台配置API
- 小程序
- HTTPS部署
- 腾讯云服务器部署
- 阿里云HTTPS部署
- 自发证书HTTPS部署
- openssl升级到1.02
- 自动登录注册
- 短信验证码
- 网络请求
- 上传图片
- 生成事件二维码
- 小程序支付
- 小程序微信支付配置
- 小程序调用支付功能
- 模板消息
- 消息模板配置
- 支付后发模板消息
- 提交表单后发模板消息
- 卡券(会员卡、优惠券)
- 客服
- 与公众号互通
- 微信开放平台
- 一键绑定公众号
- 积分等级
- 积分规则
- 积分操作
- 积分等级数据结构
- 日志
- 后台日志
- 运营日志
- 接口日志
- 调试日志
- 错误日志
- 日志数据结构
- 应用管理
- 应用管理列表
- 新增应用
- 应用开发
- 安装应用
- 模型
- 模型介绍
- 模型管理
- 新增加模型
- 新增加字段
- 列表定义
- 通用视图模板
- 定时任务
- 定时任务介绍
- 配置定时任务
- 开启定时器
- 系统自触发
- window定时器
- Linux定时器
- Mac定时器
- 定时任务数据结构
- 商业应用
- 分销商城
- 教育培训
- 摇红包
- 梦云社区
- 婚庆派
- 部署
- Linux服务器一键安装包部署
- Window集成包部署