微信支付v2开发(10) 全网发布
关键字:微信公众平台 微信支付 全网发布
作者:方倍工作室
原文:http://www.cnblogs.com/txw1958/p/wxpay-publish.html
在这篇微信公众平台开发教程中,我们将介绍如何开发实现微信支付的全网发布功能。
全网发布是指微信支付后台最后一步中的维权功能、告警接口、发货接口的检测发布。

本文分为以下三个部分:
- 微信支付目录设置
- 发货接口的调通
- 维权接口与告警接口的调通
一、微信支付目录设置
微信支付URL的设置和调通微信支付休戚相关。这里我们使用的几个URL设置如下:
支付测试URL:http://www.doucube.com/wxpay/jsapi/index.php
交易通知URL:http://www.doucube.com/wxpay/notify/index.php
维权通知URL:http://www.doucube.com/wxpay/rights/index.php
告警通知URL:http://www.doucube.com/wxpay/alarm/index.php
二、发货接口的调通
调通发货接口之前,需要用户已经有一次交易才能发送,所以先完成一次jsapi支付,其代码如下,
1 <?php
2 include_once("WxPayHelper.php");
3 $commonUtil = new CommonUtil();
4 $wxPayHelper = new WxPayHelper();
5 $wxPayHelper->setParameter("bank_type", "WX");
6 $wxPayHelper->setParameter("body", "方倍微信支付测试");
7 $wxPayHelper->setParameter("partner", PARTNERID);
8 $wxPayHelper->setParameter("out_trade_no", $commonUtil->create_noncestr());
9 $wxPayHelper->setParameter("total_fee", "1");
10 $wxPayHelper->setParameter("fee_type", "1");
11 $wxPayHelper->setParameter("notify_url", "http://www.doucube.com/wxpay/notify/index.php");
12 $wxPayHelper->setParameter("spbill_create_ip", $_SERVER['REMOTE_ADDR']);
13 $wxPayHelper->setParameter("input_charset", "GBK");
14 $biz_package=$wxPayHelper->create_biz_package();
15 ?>
16 <html>
17 <meta name="viewport" content="width=device-width,height=device-height,inital-scale=1.0,maximum-scale=1.0,user-scalable=no;">
18 <script language="javascript">
19 function callpay()
20 {
21 WeixinJSBridge.invoke('getBrandWCPayRequest',<?php echo $biz_package;?>,function(res){
22 WeixinJSBridge.log(res.err_msg);
23 alert(res.err_code+res.err_desc+res.err_msg);
24 });
25 }
26 </script>
27 <body>
28 <button type="button" onclick="callpay()">方倍微信支付测试</button>
29 </body>
30 </html>
当上述交易完成之后,会向交易通知接口回调URL并带上参数,如下
http://www.doucube.com/wxpay/notify/index.php?discount=0&fee_type=1&input_charset=GBK¬ify_id=aCi-cg4m1nr2bbg-De-MK6hQum8XVsw4mYfYnD5umAiEm_J6P_MalPvOisl2NJdurzTW-TJ9IPcnKmZm5TpKjrc8bXT6PEe0&out_trade_no=5DlIL2s5DGR8147c&partner=1219951701&product_fee=1&sign=A7AEF7AE3B70C54C3C0FF642DD2E2004&sign_type=MD5&time_end=20140808185647&total_fee=1&trade_mode=1&trade_state=0&transaction_id=1219951701201408083366666764&transport_fee=0
同时POST发送了以下XML数据
<xml>
<OpenId><![CDATA[ocIywt7h42MwHxXx23sJdBpBV7Q8]]></OpenId>
<AppId><![CDATA[wxa8826d0c0c0b6d6a]]></AppId>
<IsSubscribe>1</IsSubscribe>
<TimeStamp>1407495408</TimeStamp>
<NonceStr><![CDATA[D6iywdqlcdUj8nDQ]]></NonceStr>
<AppSignature><![CDATA[a99a3cb4f5377dc30cca3f7b362412d7e468e0f4]]></AppSignature>
<SignMethod><![CDATA[sha1]]></SignMethod>
</xml>
取出url中的
transaction_id=1219951701201408083366666764
out_trade_no=5DlIL2s5DGR8147c
及xml中的
<OpenId><![CDATA[ocIywt7h42MwHxXx23sJdBpBV7Q8]]></OpenId>
将上述3样参数值填充到发货接口中,代码可参考 微信支付开发(6) 发货通知
运行一次,就调通了发货通知接口。
三、维权接口与告警接口的调通
维权接口与告警接口的调通非常简单,因为官方只需要接收到有响应。所以都直接在相应的index.php中返回success,代码如下:
<?php
echo "success";
?>
四、效果图
上述3个接口调通以后,就可以全网发布了。效果如下

微信支付v2开发(10) 全网发布的更多相关文章
- 微信支付v2开发(11) Native支付
关键字:微信公众平台 微信支付 Native原生支付 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/wxpay-native.html 在这篇微信公众平台开 ...
- 微信支付v2开发(8) 维权通知
本文介绍微信支付中如何获得维权通知. 一.维权通知URL 在 微信支付开发(1) 微信支付URL配置 已提到,维权通知URL为 http://www.doucube.com/wxpay/rights. ...
- 微信支付v2开发(7) 告警通知
本文介绍微信支付中如何获得告警通知. 一.告警通知 为了及时通知商户异常,提高商户在微信平台的服务质量.微信后台会向商户推送告警通知,包括发货延迟.调用失败.通知失败等情况,通知的地址是商户在申请支付 ...
- 微信支付v2开发(5) 订单查询
本文介绍微信支付中订单查询功能的实现. 作者:方倍工作室 地址:http://www.cnblogs.com/txw1958/p/wxpay-order-query.html 一.订单查询 因为某一方 ...
- 微信支付v2开发(6) 发货通知
本文介绍微信支付中发货通知功能的实现. 一.发货通知 为了更好地跟踪订单的情况,需要第三方在收到最终支付通知之后,调用发货通知API告知微信后台该订单的发货状态. 发货时间限制:虚拟.服务类24小时内 ...
- 微信支付v2开发(3) JS API支付
本文介绍如何使用JS API支付接口完成微信支付. 一.JS API支付接口(getBrandWCPayRequest) 微信JS API只能在微信内置浏览器中使用,其他浏览器调用无效.微信提供get ...
- 微信支付v2开发(1) 微信支付URL配置
本文介绍微信支付申请时如何设置授权目录及URL. 在申请微信支付时,第一项就会碰到下图的配置. 下面就对这一设置进行讲解! 一.选择支付类型 目前有两种支付类型 JS API网页支付 Native原生 ...
- 微信支付v2开发(9) 标记客户投诉处理状态
本文介绍微信支付中如何标记客户投诉的处理状态. 一.API Api 的 url 为: https://api.weixin.qq.com/payfeedback/update?access_token ...
- 微信支付v2开发(2) 微信支付账号体系
本文介绍微信支付账号体系各参数. 商户在微信公众平台提交申请资料以及银行账户资料,资料审核通过并签约后,可以获得表6-4所示帐户(包含财付通的相关支付资金账户),用于公众帐号支付. 帐号 作用 app ...
随机推荐
- C# 从磁盘中读取文件
读取txt文件 ------读取的数据比较小的时候: 如果你要读取的文件内容不是很多,可以使用 File.ReadAllText(filePath) 或指定编码方式 File.ReadAllText( ...
- LINUX上使用GDB单步调试Chromium Android C++代码。
###动机###在LINUX使用GDB单步调试Chromium Android C++代码. [1]编译android平台Chromium, 修改GN文件中编译选项:-g -O0 使得编译优化更少,便 ...
- MySQL中好用的GROUP_CONCAT函数
今天看到同事的代码,又学到了一个有用的函数,刚看的时候不太懂,就搜了下用法,看下面这篇文章讲的挺详细就直接转载了,我也写不那么好,呵呵,感谢作者的无私奉献. http://blog.sina.com. ...
- XML解析——SAX解析以及更方便的解析工具(JDOM、DOM4J)
XML主要用于数据交换,HTML则用于显示. 相对于DOM的树形解析,SAX采用的是顺序解析,这种解析方法可以快速地读取XML数据的方式. SAX主要事件: No. 方法 类型 描述 1 public ...
- 【Henu ACM Round#18 B】Modulo Sum
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] m比较小 <=1000 a[i]直接看成a[i]%m就可以了. 有n个0..999之间的整数.. 如果有一个0那么就直接输出Y ...
- 蓝的成长记——追逐DBA(10):飞刀防身,熟络而非专长:摆弄中间件Websphere
原创作品,出自 "深蓝的blog" 博客.欢迎转载,转载时请务必注明出处.否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong ...
- JavaScript中获取Map集合中的key和value值(前提是:既不知道key为什么值,也不知道value有哪些值)
for(var i in maps){//通过定义一个局部变量i遍历获取map里面的所有key值 alert(maps[i]); //通过获取key对应的value值 }
- 54.nodejs nodemailer不兼容
转自:https://blog.csdn.net/q36835109/article/details/53067917 注:由于本人使用最新版本的nodemailer不兼容,所以目前使用的是0.7.1 ...
- 判断浏览器是否支持某些新属性---placeholder兼容问题解决
function is_true(){ return 'placeholder' in document.createElement('input'); } 实例:placeholder在低版本IE浏 ...
- Kinect 开发 —— 常见手势识别(下)
划动(Swipe) 划动手势和挥手(wave)手势类似.识别划动手势需要不断的跟踪用户手部运动,并保持当前手的位置之前的手的位置.因为手势有一个速度阈值,我们需要追踪手运动的时间以及在三维空间中的坐标 ...