zoukankan      html  css  js  c++  java
  • 微信支付开发(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支付就形成了。

  • 相关阅读:
    POJ3311Hie with the Pie(floyd传递+DP,状态压缩)
    POJ1185炮兵阵地(DP状态压缩)
    POJ3254Corn Fields (状态压缩or插头DP)
    eBPF Tracing 入门教程与实例
    因为 Java 和 Php 在获取客户端 cookie 方式不同引发的 bug
    DRDS 数据恢复重磅发布,全方位保障您的数据安全
    前沿 | 全球最具影响力开源数据库峰会开幕在即 阿里云精彩议题先睹为快
    MaxCompute 预付费标准版VS套餐版
    DTCC 2019 | 深度解码阿里数据库实现 数据库内核——基于HLC的分布式事务实现深度剖析
    从 Apache ORC 到 Apache Calcite | 2019大数据技术公开课第一季《技术人生专访》
  • 原文地址:https://www.cnblogs.com/phpxuetang/p/4999786.html
Copyright © 2011-2022 走看看