微信支付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 ...
随机推荐
- JAVA使用Gson解析json数据,实例
封装类Attribute: public class Attribute { private int id; private String name; private int age; public ...
- c#多线程操作测试(阻塞线程,结束任务)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- chmod---变更文件或目录的权限
chmod命令用来变更文件或目录的权限.在UNIX系统家族里,文件或目录权限的控制分别以读取.写入.执行3种一般权限来区分,另有3种特殊权限可供运用.用户可以使用chmod指令去变更文件与目录的权限, ...
- 【Uva 1631】Locker
[Link]: [Description] 有一个n(n≤1000)位密码锁,每位都是0-9,可以循环旋转.每次可以让1-3个相邻 数字同时往上或者往下转一格.例如,567890->567901 ...
- Spark 性能相关參数配置具体解释-任务调度篇
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 随着Spark的逐渐成熟完好, ...
- GO语言为结构体排序
package main import ( "fmt" "io/ioutil" "sort" "time" ) type ...
- jQuery对表格进行类样式
<%-- <%@ page language="java" contentType="text/html; charset=utf-8" pageE ...
- 知名游戏开发者称 C++ 是一种非常糟糕、可怕的语言(C++不是一门可怕的语言,可怕的是一群没有耐心的程序员来使用C++这门语言)
抛出一个问题:C++ 真的很可怕吗? 2016 年底,C++ 之父 Bjarne Stroustrup 在一次采访中表示:”C++ 让编程专家很容易编写出复杂.高性能.低资源消耗的代码,但不足以成为广 ...
- elasticsearch index 之 Mapping
Lucene索引的一个特点就filed,索引以field组合.这一特点为索引和搜索提供了很大的灵活性.elasticsearch则在Lucene的基础上更近一步,它可以是 no scheme.实现这一 ...
- Python: PS 滤镜-- Fish lens
本文实现 PS 滤镜中的一种几何变换– Fish lens, 对图像做扭曲,感觉就像通过一个凸镜或者凹镜在观察图像一样. import numpy as np from skimage import ...