Home  >  Article  >  WeChat Applet  >  Introduction to WeChat Pay Development Statement

Introduction to WeChat Pay Development Statement

高洛峰
高洛峰Original
2017-03-04 14:57:411624browse

Note

WeChat Pay is now divided into v2 and v3 versions. Those who applied before September 10, 2014 will be in v2 version, and those who applied after that will be in v3 version. The V3 version of WeChat Pay does not have the paySignKey parameter. For related introduction to v2, please refer to other articles of Fangbei Studio. This article introduces WeChat Pay v3.

1. Statement data interface

WeChat Pay v3 provides a statement data interface, and the interface used is

https://api.mch.weixin. qq.com/pay/downloadbill

The requested parameters are as follows

##wx8888888888888888The public account ID assigned by WeChat Merchant numbermch_id isString(32)1900000109Merchant number assigned by WeChat paymentDevice numberdevice_infoRandom stringsignature#Statement dateBill typeSUCCESS, Returns orders successfully paid on the day Demo The implementation code in is as follows

Field name

Variables Name

Required

Type

Example value

Description

Public account ID

##appid

is

String(32)

##No

String(32)

013467007045764

The terminal device number assigned by WeChat Pay. Fill in this field and only download the statement for this device number

nonce_str

is

String(32)

5K8264ILTKCH16CQ2502SI8ZNMTM67VS

Random string, no longer than 32 bits. Recommended random number generation algorithm

sign

Yes

String(32)

C380BEC2BFD727A4B6845133519F3AD6

Signature, see Signature Generation Algorithm## for details

bill_date

is

String(8)

20140603

The date to download the statement, format: 20140603

bill_type

No

String(8)

ALL

ALL, returns all order information on the day, default value is

REFUND, returns orders refunded on the day

REVOKED, orders canceled

include_once("../WxPayPubHelper/WxPayPubHelper.php");

    //对账单日期
    if (!isset($_POST["bill_date"])){
        $bill_date = "20150401";
    }
    else{
        $bill_date = $_POST["bill_date"];
        
        //使用对账单接口
        $downloadBill = new DownloadBill_pub();
        //设置对账单接口参数
        //设置必填参数
        //appid已填,商户无需重复填写
        //mch_id已填,商户无需重复填写
        //noncestr已填,商户无需重复填写
        //sign已填,商户无需重复填写
        $downloadBill->setParameter("bill_date","$bill_date");//对账单日期 
        $downloadBill->setParameter("bill_type","ALL");//账单类型 
        //非必填参数,商户可根据实际情况选填
        //$downloadBill->setParameter("device_info","XXXX");//设备号  
        //$downloadBill->setParameter("device_info","方倍工作室1");//设备号 
        //对账单接口结果
        $downloadBillResult = $downloadBill->getResult();
        echo $downloadBillResult['return_code'];
        
        if ($downloadBillResult['return_code'] == "FAIL") {
            echo "通信出错:".$downloadBillResult['return_msg'];
        }else{
             print_r('<pre class="brush:php;toolbar:false">');
             echo "【对账单详情】"."";
             print_r($downloadBill->response);
             print_r('
');         }     }

The above statement can only query one day's data at a time.

The bill result returned is as follows

交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额,企业红包金额,微信退款单号,商户退款单号,退款金额,企业红包退款金额,退款类型,退款状态,商品名称,商户数据包,手续费,费率 `2015-04-12 20:27:22,`wx554f0b3e56067c9d,`10024142,`0,`WJ4,`1000690206201504120059461630,`wx554f0b3e56067c9d1428841627,`oMfX0jgJjSPVvYOz3p_BP8LclWO0,`NATIVE,`SUCCESS,`CMB_CREDIT,`CNY,`71.00,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.42600,`0.60% `2015-04-12 18:08:38,`wx554f0b3e56067c9d,`10024142,`0,`WJ1,`1001370206201504120059259734,`wx554f0b3e56067c9d1428833308,`oMfX0jhbQ1xd0B6Vm-kuizH9e9rs,`NATIVE,`SUCCESS,`COMM_DEBIT,`CNY,`92.00,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.55200,`0.60% `2015-04-12 19:12:06,`wx554f0b3e56067c9d,`10024142,`0,`WJ1,`1001520206201504120059346120,`wx554f0b3e56067c9d1428837103,`oMfX0jj6h2ls1TsZEORs8WXRtSrE,`NATIVE,`SUCCESS,`CEB_CREDIT,`CNY,`69.60,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.41760,`0.60% `2015-04-12 13:03:25,`wx554f0b3e56067c9d,`10024142,`0,`WJ1,`1002120206201504120058869224,`wx554f0b3e56067c9d1428814993,`oMfX0jtHOXPrCCWebdJEYl1eIzVg,`NATIVE,`SUCCESS,`CFT,`CNY,`16.80,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.10080,`0.60% `2015-04-12 12:20:39,`wx554f0b3e56067c9d,`10024142,`0,`WJ2,`1002560206201504120058795541,`wx554f0b3e56067c9d1428812423,`oMfX0jhBckNfxRDHp2lUiFxXlCYE,`NATIVE,`SUCCESS,`CCB_DEBIT,`CNY,`126.60,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.75960,`0.60% `2015-04-12 09:35:03,`wx554f0b3e56067c9d,`10024142,`0,`WJ6,`1003310206201504120058568869,`wx554f0b3e56067c9d1428802486,`oMfX0jmQtv9nBfol_-e83xYdXacM,`NATIVE,`SUCCESS,`CMBC_DEBIT,`CNY,`0.10,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.00060,`0.60% `2015-04-12 09:23:20,`wx554f0b3e56067c9d,`10024142,`0,`WJ6,`1003310206201504120058569203,`wx554f0b3e56067c9d1428801789,`oMfX0jmQtv9nBfol_-e83xYdXacM,`NATIVE,`SUCCESS,`CMBC_DEBIT,`CNY,`0.10,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.00060,`0.60% `2015-04-12 10:15:27,`wx554f0b3e56067c9d,`10024142,`0,`WJ5,`1003310206201504120058606779,`wx554f0b3e56067c9d1428804915,`oMfX0jmQtv9nBfol_-e83xYdXacM,`NATIVE,`SUCCESS,`CFT,`CNY,`0.10,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.00060,`0.60% `2015-04-12 10:10:09,`wx554f0b3e56067c9d,`10024142,`0,`WJ5,`1003310206201504120058610924,`wx554f0b3e56067c9d1428804597,`oMfX0jmQtv9nBfol_-e83xYdXacM,`NATIVE,`SUCCESS,`CFT,`CNY,`0.10,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.00060,`0.60% `2015-04-12 10:06:19,`wx554f0b3e56067c9d,`10024142,`0,`WJ6,`1003310206201504120058617007,`wx554f0b3e56067c9d1428804368,`oMfX0jmQtv9nBfol_-e83xYdXacM,`NATIVE,`SUCCESS,`CFT,`CNY,`0.10,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.00060,`0.60% `2015-04-12 11:07:04,`wx554f0b3e56067c9d,`10024142,`0,`WJ1,`1003310206201504120058692567,`wx554f0b3e56067c9d1428808013,`oMfX0jmQtv9nBfol_-e83xYdXacM,`NATIVE,`SUCCESS,`CFT,`CNY,`0.10,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.00060,`0.60% `2015-04-12 11:27:07,`wx554f0b3e56067c9d,`10024142,`0,`WJ6,`1003310206201504120058735881,`wx554f0b3e56067c9d1428809215,`oMfX0jmQtv9nBfol_-e83xYdXacM,`NATIVE,`SUCCESS,`CFT,`CNY,`0.10,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.00060,`0.60% `2015-04-12 16:24:48,`wx554f0b3e56067c9d,`10024142,`0,`WJ1,`1003310206201504120059131508,`wx554f0b3e56067c9d1428827074,`oMfX0jk-zqqeyv7yZYEc4W1lWPVg,`NATIVE,`SUCCESS,`CFT,`CNY,`15.80,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.09480,`0.60% `2015-04-12 14:56:41,`wx554f0b3e56067c9d,`10024142,`0,`WJ1,`1005430206201504120058999894,`wx554f0b3e56067c9d1428821791,`oMfX0jnw_NpAlwgSuJsyR8ocGSjI,`NATIVE,`SUCCESS,`CCB_DEBIT,`CNY,`42.00,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.25200,`0.60% `2015-04-12 13:00:00,`wx554f0b3e56067c9d,`10024142,`0,`WJ1,`1006120206201504120058836372,`wx554f0b3e56067c9d1428814787,`oMfX0jnVvUaoR84XV8cP4ugcd9dk,`NATIVE,`SUCCESS,`PAB_CREDIT,`CNY,`16.80,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.10080,`0.60% `2015-04-12 16:13:48,`wx554f0b3e56067c9d,`10024142,`0,`WJ4,`1007560206201504120059119673,`wx554f0b3e56067c9d1428826408,`oMfX0jlf4aVHBY1nel1XuNvb2m1A,`NATIVE,`SUCCESS,`ABC_DEBIT,`CNY,`120.00,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.72000,`0.60% `2015-04-12 09:49:04,`wx554f0b3e56067c9d,`10024142,`0,`WJ1,`1009550206201504120058567546,`wx554f0b3e56067c9d1428803335,`oMfX0juZ58OdofLgirvkqK0FPq-w,`NATIVE,`SUCCESS,`CFT,`CNY,`0.10,`0.00,`0,`0,`0,`0,`,`,`微信公众平台开发最佳实践,`,`0.00060,`0.60% 总交易单数,总交易额,总退款金额,总企业红包退款金额,手续费总金额 `17,`571.40,`0.00,`0.00,`3.42840

If there is no bill on that day, the XML will be returned as follows

<xml>
    <return_code></return_code>
    <return_msg></return_msg>
</xml>

2. Bill Into the database

The above bill data is a string, and it is only one day's data, which is not conducive to statistics and query. It also needs to be downloaded to the database.

1. Create a table

The bill fields include these

交易时间,公众账号ID,商户号,子商户号,设备号,微信订单号,商户订单号,用户标识,交易类型,交易状态,付款银行,货币种类,总金额,代金券或立减优惠金额,微信退款单号,商户退款单号,退款金额, 代金券或立减优惠退款金额,退款类型,退款状态,商品名称,商户数据包,手续费,费率

According to the above fields, create a table as follows

CREATE TABLE IF NOT EXISTS `wx_bill` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `tradetime` varchar(20) NOT NULL,
  `ghid` varchar(20) NOT NULL,
  `mchid` varchar(20) NOT NULL,
  `submch` varchar(10) NOT NULL,
  `deviceid` varchar(16) NOT NULL,
  `wxorder` varchar(30) NOT NULL,
  `bzorder` varchar(30) NOT NULL,
  `openid` varchar(30) NOT NULL,
  `tradetype` varchar(10) NOT NULL,
  `tradestatus` varchar(10) NOT NULL,
  `bank` varchar(16) NOT NULL,
  `currency` varchar(20) NOT NULL,
  `totalmoney` varchar(20) NOT NULL,
  `redpacketmoney` varchar(20) NOT NULL,
  `wxrefund` varchar(10) NOT NULL,
  `bzrefund` varchar(10) NOT NULL,
  `refundmoney` varchar(20) NOT NULL,
  `redpacketrefund` varchar(20) NOT NULL,
  `refundtype` varchar(10) NOT NULL,
  `refundstatus` varchar(10) NOT NULL,
  `productname` varchar(30) NOT NULL,
  `bzdatapacket` varchar(10) NOT NULL,
  `fee` varchar(10) NOT NULL,
  `rate` varchar(10) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `wxorder` (`wxorder`),
  UNIQUE KEY `bzorder` (`bzorder`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=272 ;

2. Into the database

Insert the WeChat bill data into the database and implement it as follows

  INSERT INTO `wx_bill` (`id`, `tradetime`, `ghid`, `mchid`, `submch`, `deviceid`, `wxorder`, `bzorder`, `openid`, `tradetype`, `tradestatus`, `bank`, `currency`, `totalmoney`, `redpacketmoney`, `wxrefund`, `bzrefund`, `refundmoney`, `redpacketrefund`, `refundtype`, `refundstatus`, `productname`, `bzdatapacket`, `fee`, `rate`) VALUES
(32, &#39;1428843600&#39;, &#39;wx554f0b3e56067c9d&#39;, &#39;10024142&#39;, &#39;0&#39;, &#39;WJ1&#39;, &#39;1006120206201504120058836372&#39;, &#39;wx554f0b3e56067c9d1428814787&#39;, &#39;oMfX0jnVvUaoR84XV8cP4ugcd9dk&#39;, &#39;NATIVE&#39;, &#39;SUCCESS&#39;, &#39;PAB_CREDIT&#39;, &#39;CNY&#39;, &#39;16.80&#39;, &#39;0.00&#39;, &#39;0&#39;, &#39;0&#39;, &#39;0&#39;, &#39;0&#39;, &#39;&#39;, &#39;&#39;, &#39;微信公众平台开发最佳实践&#39;, &#39;&#39;, &#39;0.10080&#39;, &#39;0.60%&#39;),
(31, &#39;1428850601&#39;, &#39;wx554f0b3e56067c9d&#39;, &#39;10024142&#39;, &#39;0&#39;, &#39;WJ1&#39;, &#39;1005430206201504120058999894&#39;, &#39;wx554f0b3e56067c9d1428821791&#39;, &#39;oMfX0jnw_NpAlwgSuJsyR8ocGSjI&#39;, &#39;NATIVE&#39;, &#39;SUCCESS&#39;, &#39;CCB_DEBIT&#39;, &#39;CNY&#39;, &#39;42.00&#39;, &#39;0.00&#39;, &#39;0&#39;, &#39;0&#39;, &#39;0&#39;, &#39;0&#39;, &#39;&#39;, &#39;&#39;, &#39;微信公众平台开发最佳实践&#39;, &#39;&#39;, &#39;0.25200&#39;, &#39;0.60%&#39;),
(30, &#39;1428855888&#39;, &#39;wx554f0b3e56067c9d&#39;, &#39;10024142&#39;, &#39;0&#39;, &#39;WJ1&#39;, &#39;1003310206201504120059131508&#39;, &#39;wx554f0b3e56067c9d1428827074&#39;, &#39;oMfX0jk-zqqeyv7yZYEc4W1lWPVg&#39;, &#39;NATIVE&#39;, &#39;SUCCESS&#39;, &#39;CFT&#39;, &#39;CNY&#39;, &#39;15.80&#39;, &#39;0.00&#39;, &#39;0&#39;, &#39;0&#39;, &#39;0&#39;, &#39;0&#39;, &#39;&#39;, &#39;&#39;, &#39;微信公众平台开发最佳实践&#39;, &#39;&#39;, &#39;0.09480&#39;, &#39;0.60%&#39;);

2. Statistical analysis

With local data, various statistical analyzes can be performed.

1. Condition combination

The following is an interface implementation for combined query billing. You need to query the device used, the payment type used, and the specified time range.

The query results are as follows

Introduction to WeChat Pay Development Statement

For more articles related to the introduction of WeChat payment development statements, please pay attention to PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn