支付宝和微信扫码枪扫码支付时手机需要联网吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支付宝和微信扫码枪扫码支付时手机需要联网吗?相关的知识,希望对你有一定的参考价值。

引言:随着时代的发展,本来即将发行500元面值人民币的我国,在手机支付的潮流下不得不取消了这一举措,说明手机支付已经成为了人们生活中重要的部分,无论是你打车买东西或者吃饭都需要手机支付,并且甚至一些小卖部都需要手机支付。

一、扫码支付需要联网吗?

不可否认的是想要通过支付宝或者微信扫码支付时,是一定需要联网的,因为扫码支付时自己的资金会出现变动,而且自己资金的流动在网上还要有记录,因此必须通过联网才能够进行,如果不能联网的话,那么首先扫码就无法将码中的收款加识别出来,其次如果不联网的话,资金的流动也不能被记录下来,所以支付宝和微信平台方设置的就是一定要联网才能够进行支付。如果没有网就不能支付。

二、只能通过数据链接网络支付吗?

通过手机自带的手机卡开启数据连接,然后进行扫码支付宝微信支付是最便捷的方法,但是如果碰见手机没有网的情况下,可以连接附近的无线网进行联网,如果不能知道附近无线网的密码,可以让身边的人帮忙打开手机热点,连接其他人手机上的无线网,然后进行支付以上两种方法都比较麻烦,所以如果需要在手机支付,最好应该提前准备好电话卡。

三、只能扫码进行支付吗?

根据我国相关法律条文的规定,任何平台任何机构都不能拒绝现金,如果拒绝现金,那么对于我国的人民币来说是一种违法,并且有机构或者平台店铺拒收人民币纸币,可以向有关部门进行举报,然后对其进行行政处罚。人民币是我国自有发行的,人民币如果不能够流通,那么我国的人民币权威将会受到挑战。

参考技术A 手机当然需要联网了,如果不联网的话,扫码枪也是扫不了的。因为支付码是一直在变动的。 参考技术B 不需要联网。就可以有相应的支付。而且在没有网的情况下,也可以正常的支付。特别方便。 参考技术C 手机是不需要联网的,在这个时候只要把自己的支付码点开,这样就可以支付成功了,特别方便。 参考技术D 是不需要联网的,就算没有网的情况下也可以正常的支付,而且这是一个非常不错的做法。

php微信扫码支付

一 概述

扫码支付是商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。该模式适用于PC网站支付、实体店单品或订单支付、媒体广告支付等场景。前几天公司需要做了一下扫码支付 分享一下

首先需要准备的东西

微信给的 appid, mchtd(商户号) ,key ,appsecret

下载微信的sdk

配置 appid mchtd key 和 appsecret

新建文件 barcodepay.php //命名方式 根据自己的习惯

引入 lib/WxPay.Api.php  example/WxPay.NativePay.php /example/log.php

我把这个做成了一个函数   这样方便引用 如果大神有不同的看法可以告知我哦

 

function barcodepay($body,$attch,$fee,$tag,$url,$proid){
    $nofity = new NativePay();
    $input = new WxPayUnifiedOrder();
    $input->SetBody($body);
    $input->SetAttach($attch);
    $input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));
    $input->SetTotal_fee($fee);
    $input->SetTime_start(date("YmdHis"));
    $input->SetTime_expire(date("YmdHis", time() + 600));
    $input->SetGoods_tag($tag);
    $input->SetNotify_url($url);
    $input->SetTrade_type("NATIVE");
    $input->SetProduct_id($proid);
    $result = $nofity->GetPayUrl($input);
    $pay_img_url = $result[‘code_url‘];
    $pay_url_img = ‘http://paysdk.weixin.qq.com/example/qrcode.php?data=‘.urlencode($pay_img_url);
    return $pay_url_img;
}

 

 

 

此处的

$body 是收款标题如

技术分享图片

$attch 附加数据

$fee 是多少钱 此处需注意 微信是按分计算的  付款一分就是 1  

$tag 标记

$url 支付成功后通知地址

$proid 商品订单号

还可以加上别的东西 详情请看https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1 微信api列表

这样调用的时候直接调用barcodepay这个函数就可以   

调用barcodepay();会返回一个地址  

可以用ajax的方式写入图片路径 也可以用 <img src="<?php echo barcodepay ?>">

现在扫码即可付款了  支付成功是第一步  支付成功了二维码页面也不会有任何显示的 因为腾讯服务器是异步发送给你的通知

现在就需要编写回调函数了

我的方法如下

打开exmaple/notify.php

代码如下

 

<?php
ini_set(‘date.timezone‘,‘Asia/Shanghai‘);
error_reporting(E_ERROR);

require_once "../lib/WxPay.Api.php";
require_once ‘../lib/WxPay.Notify.php‘;
require_once ‘log.php‘;

//初始化日志
$logHandler= new CLogFileHandler("../logs/".date(‘Y-m-d‘).‘.log‘);
$log = Log::Init($logHandler, 15);

class PayNotifyCallBack extends WxPayNotify
{
    //查询订单
    public function Queryorder($transaction_id)
    {
        $input = new WxPayOrderQuery();
        $input->SetTransaction_id($transaction_id);
        $result = WxPayApi::orderQuery($input);
        Log::DEBUG("query:" . json_encode($result));
        if(array_key_exists("return_code", $result)
            && array_key_exists("result_code", $result)
            && $result["return_code"] == "SUCCESS"
            && $result["result_code"] == "SUCCESS")
        {
            return true;
        }
        return false;
    }
    
    //重写回调处理函数
    public function NotifyProcess($data, &$msg)
    {
        Log::DEBUG("call back:" . json_encode($data));
        $notfiyOutput = array();
        
        if(!array_key_exists("transaction_id", $data)){
            $msg = "输入参数不正确";
            return false;
        }
        //查询订单,判断订单真实性
        if(!$this->Queryorder($data["transaction_id"])){
            $msg = "订单查询失败";
            return false;
        }
        
        //<strong>在这里编写需要的操作 比如 改变支付状态为支付成功</strong>
        return true;
    }
}

Log::DEBUG("begin notify");
$notify = new PayNotifyCallBack();
$notify->Handle(false);

 

 

之后在页面编写ajax 三秒查询一次  每三秒执行一次在这里我就省略了 实际情况是需要的

 

function ajaxstatus(){
    $.ajax({
        type:‘get‘,
        url:‘你的接口地址‘,
        data:{‘查询数据的条件‘},
        dataType:‘json‘,
        success:function(data){
            if(data.data.success == 3){
                //此处可以进行成功操作
                //延时三秒
                setTimeout("location.href=‘支付成功的跳转页面‘",3000); 
                
            }
        }
    })
}

 

 

关于支付成功后ajax请求的php接口在这里就不写了  
到这里微信扫码支付就结束了

 

 

需要注意的是 

文件引入路径 和文件与文件直接的路径问题

解决方法 修改路径即可

服务器时间与本地时间 或者是 这个php系统设定的时间  如果不相符会出现 

time_expire时间过短,刷卡至少1分钟,其他5分钟

解决方法 检查修改时间  

 

以上程序本人亲测可以运行

有问题可以留言我哦 或者对上面有不同的看法也可以留言哦 

有时间会写一下微信h5支付(wap)和微信刷卡支付


以上是关于支付宝和微信扫码枪扫码支付时手机需要联网吗?的主要内容,如果未能解决你的问题,请参考以下文章

微信扫码点餐系统如何开发?

pc端微信扫码支付和支付宝在线支付(还未验证 先留着)

判断扫码的客户端是微信还是支付宝

手机微信如何扫码付款

刷脸支付将全面接管扫码支付!

微支付中扫码支付开发流程是怎样的?