ecshop开发网站,如果没有手机版,又想通过微信支付,可以加入pc二维码扫描微信支付功能

工具/原料

  • ecshop商城系统,phpqrcode,WxPayPubHelper
  • 公众号已申请微信支付

方法/步骤

  1.  

    使用PHP QR Code生成二维码,下载,在商品支付页面加入

    include 'phpqrcode/phpqrcode.php';

    $pay_url ='http://www.xxx.com/weixin/weixin.php?order_id='.$order['order_sn'];

    QRcode::png($pay_url, 'images/image.png', 'L', 8);

    echo '<img src="data:images/image.png" />';

    生成一个指向微信支付的手机连接二维码,手机扫描进入

  2.  

    打开申请到的微信支付代码,在上面加入weixin.php

    define('IN_ECS', true);

    require('../includes/init.php');

    require('../includes/lib_order.php');

    $order_id = isset($_GET['order_id']) ? intval($_GET['order_id']) : 0;

    $order = order_info(0,$order_id);

    获取订单信息

  3.  

    手机打开页面调用代码

    <html>

    <head>

    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>

    <title>微信安全支付</title>

    <script type="text/javascript">

    //调用微信JS api 支付

    function jsApiCall()

    {

    WeixinJSBridge.invoke(

    'getBrandWCPayRequest',

    <?php echo $jsApiParameters; ?>,

    function(res){

    WeixinJSBridge.log(res.err_msg);

    //alert(res.err_code+res.err_desc+res.err_msg);

    }

    );

    }

    function callpay()

    {

    if (typeof WeixinJSBridge == "undefined"){

    if( document.addEventListener ){

    document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);

    }else if (document.attachEvent){

    document.attachEvent('WeixinJSBridgeReady', jsApiCall);

    document.attachEvent('onWeixinJSBridgeReady', jsApiCall);

    }

    }else{

    jsApiCall();

    }

    }

    callpay();

    </script>

    </head>

    <body>

    </br></br></br></br>

    </body>

    </html>

  4.  

    代码引用WxPayPubHelper,

    WxPay.pub.config.php

    配置文件

    class WxPayConf_pub

    {

    //=======【基本信息设置】=====================================

    //微信公众号身份的唯一标识。审核通过后,在微信发送的邮件中查看

    const APPID = 'xxx';

    //受理商ID,身份标识

    const MCHID = 'xxx';

    //商户支付密钥Key。审核通过后,在微信发送的邮件中查看

    const KEY = 'xxx';

    //JSAPI接口中获取openid,审核后在公众平台开启开发模式后可查看

    const APPSECRET = 'xxx';

    //=======【JSAPI路径设置】===================================

    //获取access_token过程中的跳转uri,通过跳转将code传入jsapi支付页面

    const JS_API_CALL_URL = 'http://www.xxx.com/weixin/js_api_call.php';

    //=======【证书路径设置】=====================================

    //证书路径,注意应该填写绝对路径

    const SSLCERT_PATH = '/weixin/WxPayPubHelper/cacert/apiclient_cert.pem';

    const SSLKEY_PATH = '/weixin/WxPayPubHelper/cacert/apiclient_key.pem';

    //=======【异步通知url设置】===================================

    //异步通知url,商户根据实际开发过程设定

    const NOTIFY_URL = 'http://www.xxx.com/weixin/notify_url.php';

    //=======【curl超时设置】===================================

    //本例程通过curl使用HTTP POST方法,此处可修改其超时时间,默认为30秒

    const CURL_TIMEOUT = 30;

    }

    ?>

    根据申请的信息填写

  5.  

    找到notify_url.php文件

    上面添加

    define('IN_ECS', true);

    require('../includes/init.php');

    require('../includes/lib_payment.php');

    调用订单信息

  6.  

    notify_url.php添加支付后修改订单状态

    if($notify->checkSign() == TRUE)

    {

    if ($notify->data["return_code"] == "FAIL") {

    //此处应该更新一下订单状态,商户自行增删操作

    //$log_->log_result($log_name,"【通信出错】:\n".$xml."\n");

    }

    elseif($notify->data["result_code"] == "FAIL"){

    //此处应该更新一下订单状态,商户自行增删操作

    //$log_->log_result($log_name,"【业务出错】:\n".$xml."\n");

    }

    else{

    //此处应该更新一下订单状态,商户自行增删操作

    //$log_->log_result($log_name,"【支付成功】:\n".$xml."\n");

    $order = $notify->getData();

    $log_id=get_order_id_by_sn($order["out_trade_no"]);

    order_paid($log_id);

    }

    //商户自行增加处理流程,

    //例如:更新订单状态

    //例如:数据库操作

    //例如:推送支付完成信息

    }

  7. 7

    更多安全信息和详细信息就不列举了

ecshop增加pc扫描二维码微信支付功能代码的更多相关文章

  1. asp.net mvc PC端二维码支付实例(微信二维码支付)

    一.微信支付方式介绍 微信提供了各种支付方式,试用于各种不同的支付场景,主要有如下几种: 1.刷卡支付 刷卡支付是用户展示微信钱包内的“刷卡条码/二维码”给商户系统扫描后直接完成支付的模式.主要应用线 ...

  2. 用c#开发微信 (20) 微信登录网站 - 扫描二维码登录

    像京东,一号店等网站都实现了用微信来登录的功能,就是用手机上的微信扫一扫网站上的二维码,微信上确认后,即可自动用微信的帐号登录网站. 1 创建网站应用 在微信开放平台创建一个网站应用 https:// ...

  3. JAVA实现的微信扫描二维码支付

    吐槽一下 支付项目采用springMvc+Dubbo架构实现,只对外提供接口. 话说,为什么微信支付比支付宝来的晚了那么一点,一句话,那一阵挺忙的,然后就没有时间整理,最近做完支付宝支付,顺便也把微信 ...

  4. 实现手机扫描二维码页面登录,类似web微信-第一篇,业务分析

    转自:http://www.cnblogs.com/fengyun99/p/3541249.html 关于XMPP组件的文章,先休息两天,好歹已经完整的写了一份. 这两天,先实现一套关于web微信扫描 ...

  5. 微信连WiFi关注公众号流程更新 解决ios微信扫描二维码不关注就能上网的问题

    前几天鼓捣了一下微信连WiFi功能,设置还蛮简单的,但ytkah发现如果是ios版微信扫描微信连WiFi生成的二维码不用关注公众号就可以直接上网了,而安卓版需要关注公众号才能上网,这样就少了很多ios ...

  6. 关于微信扫描二维码下载apk文件的细节设计

    微信使用的人数越来越多,渐渐的用户形成了一种习惯,扫描二维码的时候,也会打开微信去扫描,但是微信不支持第三方的链接下载,有些厂商已经发现了这一特点,所以在使用二维码下载自家的app时,会做一个提示,引 ...

  7. Asp.Net微信登录-电脑版扫描二维码登录

    像京东,一号店等网站都实现了用微信来登录的功能,就是用手机上的微信扫一扫网站上的二维码,微信上确认后,即可自动用微信的帐号登录网站. 一.创建网站应用 在微信开放平台创建一个网站应用 https:// ...

  8. C#微信登录-电脑版扫描二维码登录

    像京东,一号店等网站都实现了用微信来登录的功能,就是用手机上的微信扫一扫网站上的二维码,微信上确认后,即可自动用微信的帐号登录网站. 一.创建网站应用 在微信开放平台创建一个网站应用 https:// ...

  9. 微信内点击链接或扫描二维码可直接用外部浏览器打开H5链接的解决方案

    很多朋友问我怎么解决微信内点击链接或扫描二维码可以直接跳出微信在外部浏览器打开网页链接,其实这并不难,只要我们使用微信跳转浏览器接口实现跳转功能即可. 简单的处理方案 1. 用浏览器打开我们需要用到的 ...

随机推荐

  1. 为何C语言(的函数调用)需要堆栈,而汇编语言不需要

    转自:Uboot中start.S源码中指令级的详尽解析 green-waste为何 C 语言(的函数调用)需要堆栈,而汇编语言却需要堆栈之前看了很多关亍uboot的分析,其中就有说要为C语言的运行,准 ...

  2. Java学习——基本数据类型

    Java两大数据类型 内置数据类型 引用数据类型 变量就是申请内存存储值,内存管理系统根据变量的类型分配相应的存储空间存储该类型的数据. 内置数据类型 8中基本类型(四个整数型,两个浮点型),一种字符 ...

  3. iOS block在两个页面间的简单传值

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...

  4. Java基础之读文件——使用通道随机读取文件(RandomFileRead)

    import java.nio.file.*; import java.nio.channels.FileChannel; import java.io.IOException; import jav ...

  5. JAVA线程基础

    一.线程状态 由于参考的维度不一样,线程状态划分也不一样,我这里简单的分为5大类,并且会说明状态变迁的详细过程:

  6. <s:iterator> 对list操作的一种方法

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA6IAAAH3CAIAAAAuRnW9AAAgAElEQVR4nOzdf4gk1333+wLDDffhPp

  7. paper 38 :entropy

    图像熵计算 真是为了一个简单的基础概念弄的心力交瘁,请教了一下师姐,但是并没有真的理解,师弟我太笨呀~~所以,我又查熵的中文含义和相关的出处!共勉吧~~ 1.信息熵: 利用信息论中信息熵概念,求出任意 ...

  8. 远程mysql服务器无法连接解决方案

    错误现象:Habon被拒绝. 远程服务器无法连接从两个方面看 1.是否能ping通远程服务器 windows下查看防火墙是否已关闭 linux下查看iptables等 2.数据库是否有开用户管理权限 ...

  9. Oracle数据库归档模式的切换及其相关操作详解

    SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> ...

  10. 夺命雷公狗---node.js---3commonJs 与 nodeJs的简介

    JavaScript是一个强大面向对象语言,它有很多快速高效的解释器.官方JavaScript标准定义的API是为了构建基于浏览器的应用程序.然而,并没有定于一个用于更广泛的应用程序的标准库. Com ...