资讯中心

Information Center

实现原生微信支付v2.x的实例

DaXia 2014年10月10日
实现原生微信支付v2.x的实例,在这篇微信公众平台开发教程中,我们将介绍如何开发实现微信支付的Native功能。

实现原生微信支付v2.x的实例,本文分为以下三个部分:

  1. 生成原生支付URL
  2. 生成二维码
  3. 打包

一、生成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('https://www.xunhuweb.com');

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

三、打包

当用户扫描上述二维码的时候,会调用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();
 ?>

这样就完成了一个原生微信支付。
原生微信支付

用户评论

发表评论

邮箱地址不会被公开。

178-9865-8561

023-81370275

迅虎网络服务号

扫码咨询微信客服

时间9:00-18:00