支付步骤逻辑:

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微信小程序支付流程,微信小程序支付流程相关推荐

  1. 提高微信小程序的应用速度的常见方式有哪些? 小程序怎么实现下拉刷新? 简述微信小程序原理? 小程序的发布流程(开发流程)分析下微信小程序的优劣势?小程序授权登录流程? 小程序支付如何实现

    小程序部分常见面试题 提高微信小程序的应用速度的常见方式有哪些? 提高页面加载速度 用户行为预测 减少默认data的大小 组件化方案 分包预下载 小程序与原生App相比优缺点? 优点: 基于微信平台开 ...

  2. 小程序下单账号与支付账号不一致不让支付_微信小程序支付流程

    微信支付之小程序支付 微信的支付方式有以下几种,不同的支付方式适用于不同的支付场景,而今天要给大家讲的就是 小程序支付 方式 说到支付功能就要涉及到金钱交易,必定是有比较严格的规范及流程,如要求小程序 ...

  3. 微信小程序(6)说说微信小程序的支付流程?

    一.前言 微信小程序为电商类小程序,提供了非常完善.优秀.安全的支付功能 在小程序内可调用微信的API完成支付功能,方便.快捷 场景如下图所示: 用户通过分享或扫描二维码进入商户小程序,用户选择购买, ...

  4. 微信小程序开发之微信支付

    概述 最近这段时间接了一个蓝牙车位锁的项目:项目中包括APP和微信小程序:其中涉及在线支付功能,这里记录下微信小程序在线支付完功能 小程序在线支付流程 1.微信小程序登陆微信获取code 调用接口wx ...

  5. 浅析微信支付:微信支付简单介绍(小程序、公众号、App、H5)

    本文是[浅析微信支付]系列文章的第二篇,主要讲解一下普通商户接入的支付方式以及其中的不同之处. 上篇文章讲了本系列的大纲,没有看过的朋友们可以看一下. 浅析微信支付:前篇大纲 微信支付是集成在微信客户 ...

  6. jsapi支付签名_小程序开发之微信支付

    1. 小程序之微信支付 虽然我们现行的小程序版本中没有支付这块功能,但是作为移动互联网中非常重要的一个功能还是需要了解下(老版本的小程序中有微信支付相关的功能代码在serviceList.js中). ...

  7. 微信小程序(登录、分享、支付)

    一.微信优势 1.什么场景下使用微信分享 ● 线下推广.线上传播 ● 分享渠道:h5.小程序.APP ● 分享方式:微信好友.朋友圈.QQ好友.QQ空间.微博 2.微信分享带来的收益 ● 拉新 ● 留 ...

  8. 微信支付之微信小程序支付

    今天给大家介绍一下微信小程序是如果实现支付的流程,在开发之前我们首先要获取到商户的appId和mchId最后就是商户的key值了.这些值在商户申请成功之后都会通过邮件的形式发送给商户,所以如果还没有拿 ...

  9. 微信小程序如何接入微信支付

    本文阐述如何从零开始接入小程序支付,尤其适合没有微信支付接入经验的开发者. 1. 申请微信支付 小程序认证以后,可以在小程序后台,微信支付菜单栏,申请微信支付. 填写企业信息和对公账户,微信支付会打一 ...

  10. 微信怎么制作小程序?制作微信小程序流程

    现在即使小程序已经非常普及了,依然也是有很多人加入到小程序的大队伍中,纷纷制作自己的微信小程序.那么微信怎么制作小程序?制作微信小程序流程又是什么呢?今天就带大家一起来看看. 微信怎么制作小程序?制作 ...

最新文章

  1. startActivity(xx,xx.class) 传递数据
  2. listener.ora、sqlnet.ora、tnsnames.ora 详解
  3. sap abap 对字符串的操作
  4. JAVA排序算法之希尔排序
  5. js原生代码编写一个鼠标在页面移动坐标的检测功能,兼容各大浏览器
  6. 中国移动与清华大学达成战略合作,将共同研究6G
  7. python autohotkey_PyAutoGUI-python版的autoit/AHK
  8. 带电检测必要性_接地电阻检测分析的必要性
  9. IoU,ROI 和 ROC,AUC区分
  10. FSR 是提高性能和视觉效果
  11. Java实现冒泡排序及逆序冒泡排序
  12. vs2013 Matlab 2018 (64)混合编程
  13. Qt +ffmpeg(vp8) 记录视频每一帧并生成webm文件格式
  14. Matlab的数据导入和导出
  15. 微信小程序:获取验证码
  16. ABAP 中JSON格式的转换与解析
  17. vue实现不同页面显示不同标题
  18. openCV+VS2010结合+正确运行图片
  19. 真无线蓝牙耳机排名前十的品牌,公认佩戴舒适性好的蓝牙耳机分享
  20. VBA(14)排序Sort

热门文章

  1. android实现简单的画画板
  2. 亚稳态及亚稳态解决方案_通俗易懂篇!
  3. Socket高并发出现TIME_WAIT的原因以及解决办法
  4. Improving Multispectral Pedestrian Detection by Addressing Modality Imbalance Problems(2020)文献解读
  5. 强大的Http监控工具Fidder
  6. 云计算虚拟机实验2020
  7. 【vscode】vscode 一键删除所有注释
  8. Innodb页合并和页分裂
  9. 一个人最重要的不是修生命,而是生命在哪里显现
  10. 【每日一题】输入年限返回现存猪的数量