zoukankan      html  css  js  c++  java
  • 微信支付开发(10) 全网发布

    关键字:微信公众平台 微信支付 全网发布
    作者:方倍工作室
    原文:http://www.cnblogs.com/txw1958/p/wxpay-publish.html

    由于微信支付接口更新,本文档已过期,请查看新版微信支付教程。地址 http://www.cnblogs.com/txw1958/category/624506.html

    在这篇微信公众平台开发教程中,我们将介绍如何开发实现微信支付的全网发布功能。

    全网发布是指微信支付后台最后一步中的维权功能、告警接口、发货接口的检测发布。

    本文分为以下三个部分:

    1. 微信支付目录设置
    2. 发货接口的调通
    3. 维权接口与告警接口的调通


    一、微信支付目录设置

    微信支付URL的设置和调通微信支付休戚相关。这里我们使用的几个URL设置如下:
    支付测试URL:http://www.fangbei.org/wxpay/jsapi/index.php
    交易通知URL:http://www.fangbei.org/wxpay/notify/index.php
    维权通知URL:http://www.fangbei.org/wxpay/rights/index.php
    告警通知URL:http://www.fangbei.org/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.fangbei.org/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.fangbei.org/wxpay/notify/index.php?discount=0&fee_type=1&input_charset=GBK&notify_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个接口调通以后,就可以全网发布了。效果如下

  • 相关阅读:
    最简单的基于FFMPEG+SDL的音频播放器 ver2 (採用SDL2.0)
    JBPM——工作流概念
    android项目中的拍照和本地图片截图
    hunnu--11547--你的组合数学学得怎样?
    POJ 2253
    [ACM] POJ 3349 Snowflake Snow Snowflakes(哈希查找,链式解决冲突)
    Redis简述
    C/C++,从未过时的编程语言之父
    Android4.4 Framework分析——getContentResolver启动ContentProvider的过程
    2012_p2 寻宝 (treasure.cpp/c/pas)
  • 原文地址:https://www.cnblogs.com/txw1958/p/wxpay-publish.html
Copyright © 2011-2022 走看看