php微信小程序支付流程,微信小程序支付流程
支付步骤逻辑:
1. 小程序发起请求预支付
2. 服务端调用接口发起预支付信息
3. 微信小程序调起支付完成支付
1. 小程序发起请求预支付
2. 服务端调用接口发起预支付信息
服务端接收到请求后,调用微信的api接口,调用成功会得到一个prepay_id 这个就是相当于小程序的预支付id 过程中会生成签名,按照官方文档的实例参数生成即可,如果非必填可选择不填,然后向 api 发送一个xml
wx2421b1c4370ec43b
支付测试
10000100
1add1a30ac87aa2db72f57a2375d8fec
[url]http://wxpay.wxutil.com/pub_v2/pay/notify.v2.php[/url]
oUpF8uMuAJO_M2pxb1Q9zNjWeS6o
1415659990
14.23.150.211
1
JSAPI
0CB01533B8C1EF103065174F50BCA001
需要注意sign 生成方式和公众号生成方式一致,下面是PHP生成签名方法, 可根据不同的框架修改,记得修改 key/**
* 生成签名
* @return 签名,本函数不覆盖sign成员变量,如要设置签名需要调用SetSign方法赋值
*/
public function MakeSign()
{
//签名步骤一:按字典序排序参数
ksort($this->_prepay);
$string = $this->ToUrlParams();
//签名步骤二:在string后加入KEY
$string = $string . "&key=".WxPayConfig::KEY;
//签名步骤三:MD5加密
$string = md5($string);
//签名步骤四:所有字符转为大写
$result = strtoupper($string);
return $result;
}
/**
* 格式化参数格式化成url参数
*/
public function ToUrlParams()
{
$buff = "";
foreach ($this->values as $k => $v)
{
if($k != "sign" && $v != "" && !is_array($v)){
$buff .= $k . "=" . $v . "&";
}
}
$buff = trim($buff, "&");
return $buff;
}调用统一下单api/**
* 统一下单调取返回值
* @return mixed
* $output['return_code'] 状态码 SUCCESS/FAIL
* $output['return_msg'] 返回信息,如非空,为错误原因 签名失败 参数格式校验错误
* $output['time'] 当前时间戳
* $output['nonceStr'] 随机字符串
* $output['prepay_id'] 预支付id
* $output['sign'] 签名
* */
public function pay_place_order()
{
$xml = '
'.$this->_prepay['appid'].'
'.$this->_prepay['mch_id'].'
'.$this->_prepay['nonce_str'].'
'.$this->_prepay['notify_url'].'
'.$this->_prepay['openid'].'
'.$this->_prepay['out_trade_no'].'
'.$this->_prepay['spbill_create_ip'].'
'.$this->_prepay['total_fee'].'
'.$this->_prepay['trade_type'].'
'.$this->MakeSign().'
';
//调用api,自定义对参数进行处理,改请求方式是自定义方式
$xml_result = post_request_https('https://api.mch.weixin.qq.com/pay/unifiedorder', $xml);对返回的参数从新生成sign,得到一个新的sign,返回小程序
注意: 生成返回小程序签的名参与生成的签名的字段有下图,记得拼接key ,使用的是调取api 返回的值
3. 微信小程序调起支付完成支付
注意: 支付成功后微信回调通知签名验证,需要的参数是所有返回的参数字段除去sign字段,生成签名 = 返回字段中的sign(签名)
php微信小程序支付流程,微信小程序支付流程相关推荐
- 提高微信小程序的应用速度的常见方式有哪些? 小程序怎么实现下拉刷新? 简述微信小程序原理? 小程序的发布流程(开发流程)分析下微信小程序的优劣势?小程序授权登录流程? 小程序支付如何实现
小程序部分常见面试题 提高微信小程序的应用速度的常见方式有哪些? 提高页面加载速度 用户行为预测 减少默认data的大小 组件化方案 分包预下载 小程序与原生App相比优缺点? 优点: 基于微信平台开 ...
- 小程序下单账号与支付账号不一致不让支付_微信小程序支付流程
微信支付之小程序支付 微信的支付方式有以下几种,不同的支付方式适用于不同的支付场景,而今天要给大家讲的就是 小程序支付 方式 说到支付功能就要涉及到金钱交易,必定是有比较严格的规范及流程,如要求小程序 ...
- 微信小程序(6)说说微信小程序的支付流程?
一.前言 微信小程序为电商类小程序,提供了非常完善.优秀.安全的支付功能 在小程序内可调用微信的API完成支付功能,方便.快捷 场景如下图所示: 用户通过分享或扫描二维码进入商户小程序,用户选择购买, ...
- 微信小程序开发之微信支付
概述 最近这段时间接了一个蓝牙车位锁的项目:项目中包括APP和微信小程序:其中涉及在线支付功能,这里记录下微信小程序在线支付完功能 小程序在线支付流程 1.微信小程序登陆微信获取code 调用接口wx ...
- 浅析微信支付:微信支付简单介绍(小程序、公众号、App、H5)
本文是[浅析微信支付]系列文章的第二篇,主要讲解一下普通商户接入的支付方式以及其中的不同之处. 上篇文章讲了本系列的大纲,没有看过的朋友们可以看一下. 浅析微信支付:前篇大纲 微信支付是集成在微信客户 ...
- jsapi支付签名_小程序开发之微信支付
1. 小程序之微信支付 虽然我们现行的小程序版本中没有支付这块功能,但是作为移动互联网中非常重要的一个功能还是需要了解下(老版本的小程序中有微信支付相关的功能代码在serviceList.js中). ...
- 微信小程序(登录、分享、支付)
一.微信优势 1.什么场景下使用微信分享 ● 线下推广.线上传播 ● 分享渠道:h5.小程序.APP ● 分享方式:微信好友.朋友圈.QQ好友.QQ空间.微博 2.微信分享带来的收益 ● 拉新 ● 留 ...
- 微信支付之微信小程序支付
今天给大家介绍一下微信小程序是如果实现支付的流程,在开发之前我们首先要获取到商户的appId和mchId最后就是商户的key值了.这些值在商户申请成功之后都会通过邮件的形式发送给商户,所以如果还没有拿 ...
- 微信小程序如何接入微信支付
本文阐述如何从零开始接入小程序支付,尤其适合没有微信支付接入经验的开发者. 1. 申请微信支付 小程序认证以后,可以在小程序后台,微信支付菜单栏,申请微信支付. 填写企业信息和对公账户,微信支付会打一 ...
- 微信怎么制作小程序?制作微信小程序流程
现在即使小程序已经非常普及了,依然也是有很多人加入到小程序的大队伍中,纷纷制作自己的微信小程序.那么微信怎么制作小程序?制作微信小程序流程又是什么呢?今天就带大家一起来看看. 微信怎么制作小程序?制作 ...
最新文章
- startActivity(xx,xx.class) 传递数据
- listener.ora、sqlnet.ora、tnsnames.ora 详解
- sap abap 对字符串的操作
- JAVA排序算法之希尔排序
- js原生代码编写一个鼠标在页面移动坐标的检测功能,兼容各大浏览器
- 中国移动与清华大学达成战略合作,将共同研究6G
- python autohotkey_PyAutoGUI-python版的autoit/AHK
- 带电检测必要性_接地电阻检测分析的必要性
- IoU,ROI 和 ROC,AUC区分
- FSR 是提高性能和视觉效果
- Java实现冒泡排序及逆序冒泡排序
- vs2013 Matlab 2018 (64)混合编程
- Qt +ffmpeg(vp8) 记录视频每一帧并生成webm文件格式
- Matlab的数据导入和导出
- 微信小程序:获取验证码
- ABAP 中JSON格式的转换与解析
- vue实现不同页面显示不同标题
- openCV+VS2010结合+正确运行图片
- 真无线蓝牙耳机排名前十的品牌,公认佩戴舒适性好的蓝牙耳机分享
- VBA(14)排序Sort