关于微信扫码支付的流程

前言:由于没有商户相关的id信息,只能测试这个扫码的功能,但是这个也是我们日常常用到的功能

(一) 前期准备

  从微信官方网站下载最新的支付的接口

  1.首先在:https://pay.weixin.qq.com/wiki/doc/api/native_sl.php?chapter=11_1  平台下载第三方接口文件(我下载的是PHP)

  2.把项目放到入口文件中去查看效果(如下)

  3.点击扫码支付(注意路径问题)

这是模式二无法显示图片,但是其实也是不影响我们项目的运行的

(二) 集成到我的项目中去

  1.运行会报两个错误

    WxPay.NativePay.php文件报第9行和11行的错误  解决方法是注释第九行文件内容

    WxPay.Config.php文件报第9行错误  解决方法是注释第九行文件内容

  

//到了这里此时订单的相关信息已经完成了
<?php

$notify = new \NativePay();
$input = new \WxPayUnifiedOrder();
$input->SetBody($order->order_name);//商品描述
$input->SetAttach($order->order_name);//附加数据
$input->SetOut_trade_no($order->order_number);
$input->SetTotal_fee($order->price * 100);//微信的单位是分主要为浮点数精度不丢失到了微信那里会转换
$input->SetTime_start(date("YmdHis"));
$input->SetTime_expire(date("YmdHis", time() + 600));
$input->SetGoods_tag("test");
$input->SetNotify_url("http://paysdk.weixin.qq.com/notify.php");
$input->SetTrade_type("NATIVE");
$input->SetProduct_id("123456789");
$result = $notify->GetPayUrl($input);
$url2 = $result["code_url"];
//下面主要是显示二维码 
require_once ‘../example/phpqrcode/phpqrcode.php‘;//引入二维码所在的文件位置
if(substr($url,0,6) == ‘weixin‘){
ob_end_clean();
header(‘Content-Type:image/png‘);
\QRcode::png($url);
}else{
header(‘HTTP/1.1 404 Not Found‘);
}

<?php
//通过弹出层显示二维码,这个操作主要是用户点击了微信支付按钮弹出支付的二维码
public function getqrcode($url2){
        $url = base64_decode($url2);
        require_once ‘../wxpay/example/phpqrcode/phpqrcode.php‘;
        if(substr($url,0,6) == ‘weixin‘){
            ob_end_clean();
            header(‘Content-Type:image/png‘);
            \QRcode::png($url);
        }else{
            header(‘HTTP/1.1 404 Not Found‘);
        }
    }

  

<?php
 //怎样知道用户是否支付了,主要是在前端弹出用一个定时器不断请求后台的查询得到的结果
public function wxquery(Order $order){
        require_once "../wxpay/lib/WxPay.Api.php";
        require_once "../wxpay/example/WxPay.Config.php";
        //查询订单是否支付了
        $out_trade_no = $order->order_number;//拿到用户支付的订单号
        $input = new \WxPayOrderQuery();
        $input->SetOut_trade_no($out_trade_no);//把用户订单放到订单中查询
        $config = new \WxPayConfig();
        $res = \WxPayApi::orderQuery($config,$input);//查询订单支付情况
        if($res[‘result_code‘] ==‘SUCCESS‘ && $res[‘trade_state‘] == ‘SUCCESS‘ && $res[‘trade_state_desc‘] == ‘支付成功‘)//判断是否成功return [‘status‘=> true,‘message‘=>‘支付成功‘];
        }
        return [‘status‘=> false,‘message‘=>‘服务器繁忙请稍后-----‘];
    }

原文地址:https://www.cnblogs.com/learningPHP-students2018/p/10270723.html

时间: 2024-10-08 18:27:55

关于微信扫码支付的流程的相关文章

ThinkPHP5微信扫码支付

1.把微信官网下载的demo放在根目录/vendor/目录下,这里我的是/vendor/wxpay_pc目录 2.把cert里面的文件替换成自己项目的证书(登陆微信商户平台,账户中心,API安全下载) 3.把/wxpay_pc/lib目录下的WxPay.Config.php文件里的信息改成自己的信息,只需改以下四个就行: 3.把example/目录下的notify.php改名为PayNotifyCallBack.php  不改也没事,我是为了和该文件里的类名保持一致 4.把里面require_o

JAVA微信扫码支付模式二功能实现以及回调

一.准备工作 首先吐槽一下微信关于支付这块,本身支持的支付模式就好几种,但是官方文档特别零散,连像样的JAVA相关的demo也没几个.本人之前没有搞过微信支付,一开始真是被它搞晕,折腾两天终于调通了,特此写下来,以享后人吧! 关于准备工作,就"微信扫码支付模式二"官方文档地址在这 https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1 可以先看看,实际上需要准备的东西有以下几个: 其中APP_ID和APP_SECRET

ThinkPHP微信扫码支付接口

最近折腾微信扫码支付,看了微信官方文档,找了很多网页,发现和文档/demo不匹配,现在自己算是弄出来了(文件名称有所更改),贴出来分享一下 一.将有用的官方lib文件和使用的相关文件放置到vendor当中 二.调用同一支付接口 WechatController //调用同一支付接口public function native($v_oid='',$v_amount=''){ ini_set('date.timezone','Asia/Shanghai'); error_reporting(E_E

微信开发笔记:微信扫码支付详解

作为一个PC端的在线购物类网站,具备微信支付的功能自然是必须要有的,那么我们就来详细的看一下微信支付平台提供的微信扫码支付的使用流程: 首先你必须要有一个完成认证的服务号,申请开通微信支付功能,我们可以获得appid 和mch_id (也称为partnerid),之后就会是一个向微信支付平台提交一个支付请求来换取一个支付链接的过程: class wxpay{ function __construct(){ $this->wxpay(); } function wxpay(){ } /** * 生

C#微信扫码支付,回调页面

[C#]C# 微信扫码支付 回调页面 C# 微信扫码支付 回调页面 .NET版 微信扫码支付,官方推荐使用[模式二]一.微信扫码支付模式一:1.回调页面:官方demo中example文件下的NativeNotifyPage.aspx2.微信回调地址:http://域名/目录/NativeNotifyPage.aspx是在公众账号平台里面设置的,如下图 二.微信扫码支付模式二:1.回调页面:官方demo中example文件下的ResultNotifyPage.aspx2.微信回调地址:http:/

微信扫码支付官方配置

微信扫码支付官方API: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_1 .net C# SDK: https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1 介绍扫码支付模式一: 首先要配置:微信公众平台>微信支付>开发配置 支付授权目录:就是项目中存放官方SDK的运行路径.例如:http://www.xxxx.com/Wx/或者http://www.

C# 微信扫码支付API (微信扫码支付模式二)

一.SDK下载地址:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1,下载.NET C#版本: 二.微信相关设置:(微信扫码支付模式二) 1. 公众账号ID,公众账号secert ,地址:https://mp.weixin.qq.com/ 2. 商户号,商户支付密钥KEY,商户平台地址:https://pay.weixin.qq.com/ 5. 部署的服务器终端ip及回调页面 (1)部署的服务器终端ip:即程序部署所在的

C# 微信扫码支付 回调页面

.NET版 微信扫码支付,官方推荐使用[模式二] 一.微信扫码支付模式一: 1.回调页面:官方demo中example文件下的NativeNotifyPage.aspx 2.微信回调地址:http://域名/目录/NativeNotifyPage.aspx 是在公众账号平台里面设置的,如下图 二.微信扫码支付模式二: 1.回调页面:官方demo中example文件下的ResultNotifyPage.aspx 2.微信回调地址:http://域名/目录/NativeNotifyPage.aspx

Net MVC微信扫码支付

微信扫码支付+Asp.Net MVC 这里的扫码支付指的是PC网站上面使用微信支付,也就是官方的模式二,网站是Asp.net MVC,整理如下. 一.准备工作 使用的微信API中的统一下单方法,关键的参数是‘公众账号ID(appid)’,‘商户号(mch_id)’和’商户支付密钥(KEY)‘,所以首先要有一个审核过的公众号,并开通支付功能,然后申请商户,通过审核后得到商户号,也就是商户平台的登录名.商户支付密钥是用来签名的,确保url不被篡改.进入商户平台后在API安全中设置,是一个32位的字符