zoukankan      html  css  js  c++  java
  • 微信支付v2开发(11) Native支付

    关键字:微信公众平台 微信支付 Native原生支付
    作者:方倍工作室
    原文:http://www.cnblogs.com/txw1958/p/wxpay-native.html

    在这篇微信公众平台开发教程中,我们将介绍如何开发实现微信支付的Native功能。

    本文分为以下三个部分:

    1. 生成Native支付URL
    2. 生成二维码
    3. 生成Package


    一、生成Native支付URL

    Native(原生)支付URL是一系列具有weixin://wxpay/bizpayurl?前缀的URL,同时后面紧跟着一系列辨别商户的键值对。Native(原生)支付URL的规则如下:

    weixin://wxpay/bizpayurl?sign=XXXXX&appid=XXXXXX&productid=XXXXXX&timestamp=XXXXXX&noncestr=XXXXXX

     生成代码如下

    1 <?php
    2 include_once("WxPayHelper.php");
    3 $wxPayHelper = new WxPayHelper();
    4 echo $wxPayHelper->create_native_url("1234567890");
    5 ?>

    其中productid是商品唯一id,开发人员需要定义并维护自己的商品id,这个id与一张订单等价,微信后台凭借该id通过POST商户后台获取交易信息。

    上述代码生成的URL如下:

    weixin://wxpay/bizpayurl?appid=wxb489e8caeabcdefg&noncestr=BBvdr5atZ9D7s08X&productid=1234567890&sign=e15d2466a85cd62b530e2f690604e7502f67ccb5&timestamp=1408025996

    二、生成二维码

    生成二维码可以用第三方接口,也可以使用自己的代码或插件,这里介绍PHP QR Code。

    PHP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址:http://phpqrcode.sourceforge.net/。

    其生成二维码的语法非常简单,直接填入URL当参数即可。范例如下

    include 'phpqrcode.php'; 
    QRcode::png('http://www.cnblogs.com/txw1958/');

    这样就生成了一个支付的二维码。

    三、生成Package

    当用户扫描上述二维码的时候,会调用Native支付URL,URL需要调用订单信息Package返回给用户,而该Package由WxPayHelper类的create_native_package()实现,调用代码如下:

     1 <?php
     2 include_once("WxPayHelper.php");
     3 
     4 $commonUtil = new CommonUtil();
     5 $wxPayHelper = new WxPayHelper();
     6 $wxPayHelper->setParameter("bank_type", "WX");
     7 $wxPayHelper->setParameter("body", "方倍工作室微信支付开发教程");
     8 $wxPayHelper->setParameter("partner", "1900000109");
     9 $wxPayHelper->setParameter("out_trade_no", $commonUtil->create_noncestr());
    10 $wxPayHelper->setParameter("total_fee", "1");
    11 $wxPayHelper->setParameter("fee_type", "1");
    12 $wxPayHelper->setParameter("notify_url", "htttp://www.baidu.com");
    13 $wxPayHelper->setParameter("spbill_create_ip", "127.0.0.1");
    14 $wxPayHelper->setParameter("input_charset", "GBK");
    15 echo $wxPayHelper->create_native_package();
    16 ?>

    当用户扫描二维码后,将直接跳到商品页面,如下所示

    这样一个Native支付就形成了。

  • 相关阅读:
    iNeuOS工业互联平台,WEB组态(iNeuView)集成rtmp和websocket视频元件,支持海康、大华等摄像头实时显示视频
    MyBatis之TypeHandler用法
    视频监控安防专网事件预警运维系统开发方案
    Qmgo 开源了! 更好用的 Go 语言 MongoDB driver
    前端使用axios传递数组后端使用List接收
    jdk1.6手册java8中英手册java9英文手册.chm(下载)
    自动化运维工具Ansible (一)
    初级模拟电路:4-11 混合π模型
    简单体验一个高性能,简单,轻量的ORM库- Dapper (无依赖其它库,非常方便高效)
    Python计算大文件行数方法及性能比较
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467452.html
Copyright © 2011-2022 走看看