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

2019-03-02 00:51|来源: 网路

关键字:微信公众平台 微信支付 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支付就形成了。

 


转自:http://www.cnblogs.com/txw1958/p/wxpay-native

相关问答

更多
  • 我刚做了一个调用接口生成一个二维码 在自己网站内展示,通过微信扫描 二维码支付。
  • 微信支持以下银行卡: 工商银行、中国银行、农业银行、建设银行、邮政储蓄、上海银行、平安银行、华润银行等 如果你绑定的是以上这些银行卡,绑定不了,你可以联系一下微信客服。
  • ipc备案完会给一个验证文件,放到域名能直接访问的地方就可以。如你的域名是www.test.com,ipc给你的文件名为ipc.txt,则http://www.test.com/ipc.txt要能直接访问到。实际文件名大概是8位有字母数字组成的随机数。ipc备案需要单独申请。我们微网站是项目经理做的备案,备案自己查一下流程。微信api明确说要ipc备案。做完备案再测试可能就好了。
  • 先是排序 排序是根据key的值来排 因为他重载了compare方法 并且用一个map中的key值作比较 然后for循环那里是字符串拼接 拼接成key=value&key=value&key=value...这样的字符串然后返回 下面那个if判断 是把最后一个&截取掉
  • 刚发现可以上传附件
  • 用户扫描商户展示在各种场景的二维码进行支付。 步骤1:商户根据微信支付的规则,为不同商品生成不同的二维码,展示在各种场景,用于用户扫描购买。 步骤2:用户使用微信“扫一扫”扫描二维码后,获取商品支付信息,引导用户完成支付。 步骤(3):用户确认支付,输入支付密码。 步骤(4):支付完成后会提示用户支付成功,商户后台得到支付成功的通知,然后进行发货处理。
  • 滴滴出行可以在微信钱包中选择目的地之后使用或者在滴滴出行的APP中结算的时候选择微信支付都是可以使用微信支付的
  • 这类专业的技术问题涉及到了代码的层面,您在网上询问肯定是得不到完美的解决的,建议您可以下载一下开发者文档 该文档在您申请了微信商家之后就可以下载的 然后根据文档里面的技术规范进行调整和开发
  • 开发的流程总结的话起来就三步,第一步:进入公众平台注册公众号,而且把它升级成服务类型的公众号,之后完成微信认证。第二步:到公众平台的服务中心里面申请开通它,这里的话就不是那么简单了,需要提交到一些基本资料,而且还需要经过审核,一般为三到七个工作日就可以完成审核,在审核过程中可以在开发环境先模拟一下支付,第三步:审核通过后登录到商户平台验证(平台账户会通过联系邮箱发给你的)验证完成后就可以在线签订协议了,之后就可以正常使用了。
  • 跨域失效肯定的。 如果不是。那就是跳转的地方没有开启session 建议 get 传参数 不对 微信支付好像是异步 。。你自己看下是异步同步 。