微信支付开发(6) 发货通知

本文介绍微信支付中发货通知功能的实现。

一、发货通知


为了更好地跟踪订单的情况,需要第三方在收到最终支付通知之后,调用发货通知API告知微信后台该订单的发货状态。

发货时间限制:虚拟、服务类24小时内,实物类72小时内。

请在收到支付通知后,按时发货,并使用发货通知接口将相关信息同步到微信后台。若平台在规定时间内没有收到,将视作发货超时处理。

发货通知API的URL为:

https://api.weixin.qq.com/pay/delivernotify?access_token=xxxxxx

URL中的参数只包含目前微信公众平台凭证access_token,而发货通知的真正的数据是放在PostData中的,格式如下:


{
"appid" : "wwwwb4f85f3a797777",
"openid" : "oX99MDgNcgwnz3zFN3DNmo8uwa-w",
"transid" : "111112222233333",
"out_trade_no" : "555666uuu",
"deliver_timestamp" : "1369745073",
"deliver_status" : "1",
"deliver_msg" : "ok",
"app_signature" : "53cca9d47b883bd4a5c85a9300df3da0cb48565c",
"sign_method" : "sha1"
}

上述内容参数说明如表6-12所示。
































参数

说明

appid

公众平台账户的AppId;

openid

贩买用户的OpenId,这个已经放在最终支付结果通知的PostData里了;

transid

交易单号;

out_trade_no

第三方订单号;

deliver_timestamp

发货时间戳,这里指的是Linux时间戳;

deliver_status

发货状态,1表明成功,0表明失败,失败时需要在deliver_msg填上失败原因;

deliver_msg

发货状态信息,失败时可以填上UTF8编码的错诨提示信息,比如“该商品已退款”;

app_signature

根据支付签名(paySign)生成方法中所讲的签名方式生成的,参加签名字段为:appid、appkey、openid、transid、out_trade_no、deliver_timestamp、deliver_status、deliver_msg;

sign_method

签名方法(不计入签名生成);

表6-12 发货通知参数说明

微信公众平台在校验ok之后,会返回数据表明是否通知成功,例如:{"errcode":0,"errmsg":"ok"}如果有异常,会在errcode和errmsg描述出来,如果成功errcode就为0。

二、程序实现


程序中的一些参数来自本博客前面的微信支付开发数据。读者请参照运行


 1 <?php
2 //方倍工作室
3
4 include_once("WxPayHelper.php");
5
6 //1. 获取access token
7 $appid = "wx0000000000000000";
8 $appsecret = "e76050733ce76050733ce76050733cdd";
9 $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
10 $result = https_request($url);
11 $jsoninfo = json_decode($result, true);
12 $access_token = $jsoninfo["access_token"];
13
14 //2.准备参数
15 $deliver_timestamp = time();
16 //2.1构造最麻烦的app_signature
17 $obj[‘appid‘] = $appid;
18 $obj[‘appkey‘] = "8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6kxCRvdJENpWpw8mruTNOGeX8OVUlIYxIyw6k";
19 $obj[‘openid‘] = "o0pk9uIVnlY-fJkzFKEbQ6LJ4cFc";
20 $obj[‘transid‘] = "1218614901201405273313473135";
21 $obj[‘out_trade_no‘] = "JfuKdiBig4zZnE4n";
22 $obj[‘deliver_timestamp‘] = $deliver_timestamp;
23 $obj[‘deliver_status‘] = "1";
24 $obj[‘deliver_msg‘] = "ok";
25
26 $WxPayHelper = new WxPayHelper();
27 //get_biz_sign函数受保护,需要先取消一下,否则会报错
28 $app_signature = $WxPayHelper->get_biz_sign($obj);
29
30 //3. 将构造的json提交给微信服务器,查询
31 $jsonmenu = ‘
32 {
33 "appid" : "‘.$obj[‘appid‘].‘",
34 "openid" : "‘.$obj[‘openid‘].‘",
35 "transid" : "‘.$obj[‘transid‘].‘",
36 "out_trade_no" : "‘.$obj[‘out_trade_no‘].‘",
37 "deliver_timestamp" : "‘.$deliver_timestamp.‘",
38 "deliver_status" : "‘.$obj[‘deliver_status‘].‘",
39 "deliver_msg" : "‘.$obj[‘deliver_msg‘].‘",
40 "app_signature" : "‘.$app_signature.‘",
41 "sign_method" : "sha1"
42 }‘;
43
44
45
46 $url = "https://api.weixin.qq.com/pay/delivernotify?access_token=".$access_token;
47 $result = https_request($url, $jsonmenu);
48 var_dump($result);
49
50 function https_request($url, $data = null){
51 $curl = curl_init();
52 curl_setopt($curl, CURLOPT_URL, $url);
53 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
54 curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
55 if (!empty($data)){
56 curl_setopt($curl, CURLOPT_POST, 1);
57 curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
58 }
59 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
60 $output = curl_exec($curl);
61 curl_close($curl);
62 return $output;
63 }

运行后返回结果


string(27) "{"errcode":0,"errmsg":"ok"}"

====================================================================

方倍工作室微信公众平台账号关注方法:
1. 微信通讯录-添加朋友-查找公众号-搜索“方倍工作室”
2.
微信通讯录-添加朋友-搜号码-输入“pondbaystudio”
3. 使用微信扫描下面的二维码

微信支付开发(6) 发货通知,布布扣,bubuko.com

时间: 2024-10-15 05:14:21

微信支付开发(6) 发货通知的相关文章

微信支付开发(7) 告警通知

本文介绍微信支付中如何获得告警通知. 一.告警通知 为了及时通知商户异常,提高商户在微信平台的服务质量.微信后台会向商户推送告警通知,包括发货延迟.调用失败.通知失败等情况,通知的地址是商户在申请支付时填写的告警通知URL,在"公众平台-服务-服务中心-商户功能-商户基本资料-告警通知URL"可以查看.商户接收到告警通知后需要尽快修复其中提到的问题,以免影响线上经营. 告警通知URL接收的postData中还将含xml数据,格式如下: <xml> <AppId>

微信支付开发(8) 维权通知

本文介绍微信支付中如何获得维权通知. 一.维权通知URL 在 微信支付开发(1) 微信支付URL配置 已提到,维权通知URL为 http://www.doucube.com/wxpay/rights.php 二.用户维权系统接口 用户在公众号进行支付贩买行为出现异常时,通常会投诉到腾讯客服,因此微信侧需要即时了解公众号不用户交易的详情.同时,为了最快效率的解决用户的问题,微信作为连接用户和商户的桥梁,会通过此客服系统即时将问题同步给商户,并将解决结果反馈至用户. 用户在新增投诉单后,微信后台通知

微信支付开发(4) 交易通知

本文介绍如何使用JS API支付时如何获得交易通知. 一.交易通知 用户在成功完成支付后,微信后台通知(POST)商户服务器(notify_url)支付结果.商户可以使用notify_url的通知结果进行个性化页面的展示. 对后台通知交互时,如果微信收到商户的应答不是success或超时,微信不为通知失败,微信会通过一定的策略(如30分钟共8次)定期重新发起通知,尽可能提高通知的成功率,但微信不保证通知最终能成功. 后台通知通过请求中的 notify_url 迚行,采用 POST 机制. 同时,

微信支付开发(10) 全网发布

关键字:微信公众平台 微信支付 全网发布 作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/wxpay-publish.html 在这篇微信公众平台开发教程中,我们将介绍如何开发实现微信支付的全网发布功能. 本文分为以下三个部分: 微信支付目录设置 发货接口的调通 维权接口与告警接口的调通 一.微信支付目录设置 微信支付URL的设置和调通微信支付休戚相关.这里我们使用的几个URL设置如下:支付测试URL:http://www.doucube.com/wxpa

微信支付开发关键点技术解析

微信支付是由微信及财付通联合推出的移动支付创新产品.如今,随着微信支付的全面开放,相关需求也越来越多,很多开发人员进行微信支付开发及 商家申请微信支付时,面临着诸多疑惑.本文将结合微信支付接口开发的实践,从支付申请到各主要接口的使用方法等方面介绍微信支付的关键点技术. URL设置 目前,微信支付只能由通过微认证的服务号进行申请,订阅号及未认证的服务号均无法申请.登录微信公众平台后台,在左侧的栏目中可找到“微信支付”,点击进入申请界面,可以看到第一项中的“商户基本资料”,点击右侧的“填写”按钮后就

转:微信支付开发关键点技术解析

原文来自于:http://www.csdn.net/article/2014-10-21/2822207-weiixn 微信支付是由微信及财付通联合推出的移动支付创新产品.如今,随着微信支付的全面开放,相关需求也越来越多,很多开发人员进行微信支付开发及商家申请微信支付时,面临着诸多疑惑.本文将结合微信支付接口开发的实践,从支付申请到各主要接口的使用方法等方面介绍微信支付的关键点技术. URL设置 目前,微信支付只能由通过微认证的服务号进行申请,订阅号及未认证的服务号均无法申请.登录微信公众平台后

PHP微信支付开发实例

这篇文章主要为大家详细介绍了PHP微信支付开发过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 PHP微信支付开发过程,分享给大家,供大家参考,具体内容如下 1.开发环境 Thinkphp 3.2.3 微信:服务号,已认证 开发域名:http://test.paywechat.com (自定义的域名,外网不可访问) 2.需要相关文件和权限 微信支付需申请开通 微信公众平台开发者文档:http://mp.weixin.qq.com/wiki/home/index.html 微信支付开发者文档

基于H5的微信支付开发详解

这次总结一下用户在微信内打开网页时,可以调用微信支付完成下单功能的模块开发,也就是在微信内的H5页面通过jsApi接口实现支付功能.当然了,微信官网上的微信支付开发文档也讲解的很详细,并且有实现代码可供参考,有的朋友直接看文档就可以自己实现此支付接口的开发了. 一.前言 为何我还写一篇微信支付接口的博文呢?第一,我们必须知道,所谓的工作经验很多都是靠总结出来的,你只有总结了更多知识,积累了更多经验,你才能在该行业中脱颖而出,我个人觉得如今的招聘,很多都需要工作经验(1年.3年.5年....),其

微信支付开发流程

授人以鱼不如授人以渔 微信支付开发流程 下面以PHP语言为例,对微信支付的开发流程进行一下说明. 1.获取订单信息 2.根据订单信息和支付相关的账号生成sign,并且生成支付参数 3.将支付参数信息POST到微信服务器,获取返回信息 4.根据返回信息生成相应的支付代码(微信内部)或是支付二维码(非微信内),完成支付. 下面分步骤的讲一下: 1.微信支付中相关的必须的订单参数有三个,分别是:body(商品名或订单描述),out_trade_no(一般为订单号)和total_fee(订单金额,单位“