微信支付开发(11) Native支付

时间:2023-02-02 15:31:02

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

由于微信支付接口更新,本文档已过期,请查看新版微信支付教程。地址 http://www.cnblogs.com/txw1958/category/624506.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

生成代码如下

 <?php
include_once("WxPayHelper.php");
$wxPayHelper = new WxPayHelper();
echo $wxPayHelper->create_native_url("1234567890");
?>

其中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()实现,调用代码如下:

 <?php
include_once("WxPayHelper.php"); $commonUtil = new CommonUtil();
$wxPayHelper = new WxPayHelper();
$wxPayHelper->setParameter("bank_type", "WX");
$wxPayHelper->setParameter("body", "方倍工作室微信支付开发教程");
$wxPayHelper->setParameter("partner", "1900000109");
$wxPayHelper->setParameter("out_trade_no", $commonUtil->create_noncestr());
$wxPayHelper->setParameter("total_fee", "1");
$wxPayHelper->setParameter("fee_type", "1");
$wxPayHelper->setParameter("notify_url", "htttp://www.baidu.com");
$wxPayHelper->setParameter("spbill_create_ip", "127.0.0.1");
$wxPayHelper->setParameter("input_charset", "GBK");
echo $wxPayHelper->create_native_package();
?>

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

微信支付开发(11) Native支付

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

微信支付开发(11) Native支付的更多相关文章

  1. 微信支付v2开发&lpar;11&rpar; Native支付

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

  2. PHP微信支付开发之扫描支付&lpar;模式二&rpar;后如何回调

    其实在写这篇文章的时候感觉自己已经落伍了,不过笔者在百度上搜索"微信支付开发之扫描支付(模式二)后如何回调"寻找答案时,发现依旧有很多朋友没有解决这个问题,所以就把自己的解决思路分 ...

  3. 微信支付开发&lpar;7&rpar; H5支付

    关键字:微信支付 微信支付v3 H5支付 wap支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpayv3_h5.html 本文 ...

  4. 微信支付开发h5发起支付再次签名,返回给h5前端

    注意:参数区分大小写.

  5. 微信支付开发&lpar;2&rpar; 静态链接Native支付

    关键字:微信支付 微信支付v3 native支付 统一支付 Native支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpayv ...

  6. 微信支付开发&lpar;4&rpar; 动态链接Native支付

    关键字:微信支付 微信支付v3 动态native支付 统一支付 Native支付 prepay_id 作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/wxpa ...

  7. 记录:c&num;实现微信,支付宝扫码支付(一)

    因为公司系统业务需要,这几天了解了一下微信和支付宝扫码支付的接口,并用c#实现了微信和支付宝扫码支付的功能. 微信支付分为6种支付模式:1.付款码支付,2.native支付,3.jsapi支付,4.a ...

  8. 微信支付开发&lpar;1&rpar; JS API支付V3版(转)

    http://www.cnblogs.com/txw1958/p/wxpayv3-jsapi.html 本文介绍微信支付下的jsapi实现流程 前言 微信支付现在分为v2版和v3版,2014年9月10 ...

  9. 微信支付开发-Senparc&period;Weixin&period;MP详解

    年底了,反而工作更忙了,我从15年11月开始写<1024伐木累>系列小说和爆笑对白,得到了很多身边的技术好友的支持,现在爆笑对白已经有越来越多的朋友一起帮着写段子,整理,包括小说内容的编辑 ...

随机推荐

  1. sql查询慢优化

    SELECT g.goods_id, g.type_id, g.user_id, g.productname, g.img, g.intro, g.attr, u.companyname, u.enl ...

  2. &lbrack;MFC&rsqb; 如何更改MFC程序图标

    方法一: >_<:找一张ICO图标,替换programname/res/programname.ico文件,就可以啦,这时候你运行后得到的图标可能还是原来MFC的默认图标,这时候你只要把工 ...

  3. fedora yum 清缓存

    1.清除缓存目录(/var/cache/yum)下的软件包命令:yum clean packages 2.清除缓存目录(/var/cache/yum)下的 headers命令:yum clean he ...

  4. STL源码分析读书笔记--第三章--迭代器(iterator&rpar;概念与traits编程技法

    1.准备知识 typename用法 用法1:等效于模板编程中的class 用法2:用于显式地告诉编译器接下来的名称是类型名,对于这个区分,下面的参考链接中说得好,如果编译器不知道 T::bar 是类型 ...

  5. 标识映射&lpar;Identify Map&rpar;

    通过在Map中保存每个已加载过的对象,确保每个对象只加载一次. 当要访问对象时,首先检查标识映射,看需要的对象是否已经存在其中. 使用Identify来确保不重复加载相同的数据,不仅有助于保证正确性( ...

  6. kissy使用注意事项

    使用kissy注意: 下载kissy压缩包后只需要拷贝build包到项目中即可, 样式自己写不用引用. 1.4.x引这个文件seed-min.js1.3.x引kissy-min.js

  7. &lbrack;置顶&rsqb; Hash查找&comma;散列查找

    //Hash.h #ifndef HASH_H #define HASH_H #define HASH_ARR_SIZE 100 #define FILL -1 #include <stdlib ...

  8. shell 读取文件

    #!/bin/bash content=`cat test.txt` echo "begin" for i in $content do echo $i done 读取前10行 t ...

  9. 求一个Map中最大的value值&comma;同时列出键&comma;值

    求一个Map中最大的value值,同时列出键,值 方法1. public static void main(String[] args){  Map map=new HashMap();  map.p ...

  10. Buildroot Savedefconfig

    /********************************************************************************* * Buildroot Saved ...