>支付使用場景:當有用戶使用了支付,并且支付成功的時候,會觸發該鉤子的碎片,支付包括(充值,購買會員會員組,購買產品等),只要涉及到支付都會觸發支付碎片
| 標題 | 名稱 | 鉤子描述 |
| --- | --- | --- |
| 支付 | pay| 當有用戶使用了支付,并且支付成功的時候,會觸發該鉤子的碎片
```
function functionName($type,$payType,$userInfo,$data)
```
>[info]$type 支付種類 WX:微信支付,Alipay:支付寶支付,Balance:余額支付
$payType 支付方式 JSAPI、NATIVE、APP ,MICROPAY,MWEB,注意:余額支付只有SYSTEM
$userInfo 支付會員信息 請到會員碎片[查看](1230254)
$data 支付返回的信息
>$payType 支付方式
| 支付標識 | 支付類型 |
| --- | --- |
| JSAPI | JSAPI支付方式是在微信或者支付包瀏覽器中支付的一種方式 |
| NATIVE | NATIVE 掃描支付方式,點擊支付生成二維碼,然后掃碼支付 |
| APP | APP APP中支付方式 |
| MICROPAY | MICROPAY 商家柜臺掃描,客戶展示自己的收付款碼,商家用掃描設備進行掃描支付|
| MWEB | MWEB H5支付,在特定瀏覽器以外的環境上支付,比如從手機平板的瀏覽器上進行支付|
>[info]$type為【Balance】(余額支付) $data( 數組 )返回的數據
變量名 | 類型 | 示例值 | 描述 |
| --- | --- | --- | --- |
total\_fee | Int | 100 | 訂單總金額,單位為分 |
out\_trade\_no | String(32) | 1212321211201407033568112322 | cowcms系統中產生的訂單號,此次支付的訂單號,根據該號修改訂單狀態|
attach | String(128) | 123456 | 發起支付時帶的參數,支付完成原樣返回,識別是充值支付還是購買產品支付 |
>[info]$type為【WX】(微信支付) $data( 數組 )返回的數據
變量名 | 類型 | 示例值 | 描述 |
| --- | --- | --- | --- |
openid | String(128) | wxd930ea5d5a258f4f | 支付用戶所對應的微信openid |
total\_fee | Int | 100 | 訂單總金額,單位為分 |
transaction\_id |String(32) | 1217752501201407033233368018 | 微信支付訂單號 |
out\_trade\_no | String(32) | 1212321211201407033568112322 | cowcms系統中產生的訂單號,此次支付的訂單號,根據該號修改訂單狀態|
attach | String(128) | 123456 | 發起支付時帶的參數,支付完成原樣返回,識別是充值支付還是購買產品支付 |
time\_end | String(14) | 20141030133525 | 支付完成時間,格式為yyyyMMddHHmmss,如2009年12月25日9點10分10秒表示為20091225091010 |
appid | String(32) | wx8888888888888888 | 微信分配的公眾賬號ID(企業號corpid即為此appId) |
mch\_id | String(32) | 1900000109 | 微信支付分配的商戶號 |
nonce\_str | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 隨機字符串,不長于32位,在支付的時候傳入的隨機數 |
sign | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 支付簽名值|
is\_subscribe | String(1) | 關注為Y,未關注為N | 支付用戶是否關注了 appid對應的公眾號 |
trade\_type | String(16) | JSAPI- NATIVE-APP-MICROPAY| 支付類型 |
bank\_type | String(16) | CFT | 銀行類型,采用字符串類型的銀行標識,銀行類型見[銀行列表](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_2) |
fee\_type |String(8) | CNY | 支付貨幣類型,符合ISO4217標準的三位字母代碼,默認人民幣:CNY,其他值列表詳見[貨幣類型](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_2) |
cash\_fee | Int | 100 | 現金支付金額訂單現金支付金額,詳見[支付金額](https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_2) |
>微信返回數據
```
array(20) {
["appid"] => string(18) "wxc0d7ec4863c12ab9"
["attach"] => string(8) "recharge"
["bank_type"] => string(3) "CFT"
["cash_fee"] => string(1) "1"
["fee_type"] => string(3) "CNY"
["is_subscribe"] => string(1) "N"
["mch_id"] => string(10) "1225084602"
["nonce_str"] => string(16) "KaqrYV88aB1VXkpz"
["openid"] => string(28) "o4KFnuLOwsQR9tDusUk0ZBhe5b4Q"
["out_trade_no"] => string(21) "cowcms_20190528192231"
["result_code"] => string(7) "SUCCESS"
["return_code"] => string(7) "SUCCESS"
["return_msg"] => string(2) "OK"
["sign"] => string(64) "558D972A61DA690C172E0F19BE14EEAA85BAEF738AD07C78FDE69F67615966BF"
["time_end"] => string(14) "20190528192532"
["total_fee"] => string(1) "1"
["trade_state"] => string(7) "SUCCESS"
["trade_state_desc"] => string(12) "支付成功"
["trade_type"] => string(6) "NATIVE"
["transaction_id"] => string(28) "4200000295201905289397268000"
}
```
>[info]$type為【Alipay】(支付寶支付) $data( 數組 )返回的數據
>[danger]注意以下是支付寶支付完成返回的數據,其中第一個表是為了和微信支付統一數據返回的數據,第二個表為支付寶返回的數據,2個表的數據都包含在$data變量中,其中第一個表參數字段中 括號中的名稱為支付寶對應的字段,如 openid (buyer\_id),表示openid對應的為第二個表中的buyer\_id的值
| 參數 | 類型 | 描述 | 范例 |
| --- | --- | --- | --- |
openid (buyer_id)| String(16) | 2088102122524333| 買家支付寶賬號對應的支付寶唯一用戶號。以2088開頭的純16位數字 |
total\_fee(total_amount)| Int | 100 | 訂單總金額,單位為分,注意 total_amount單位為元 |
transaction\_id (trade_no)|String(64) | 2013112011001004330000121536 |支付寶交易訂單號 |
out\_trade\_no | String(32) | 1212321211201407033568112322 | cowcms系統中產生的訂單號,此次支付的訂單號,根據該號修改訂單狀態|
attach(passback_params) | String(128) | 123456 | 發起支付時帶的參數,支付完成原樣返回,識別是充值支付還是購買產品支付 |
time\_end (gmt_payment)| String(14) | 20141030133525 | 支付完成時間,格式為yyyyMMddHHmmss,如2009年12月25日9點10分10秒表示為20091225091010 |
appid (app_id)| String(32) | 2014072300007148 |支付寶分配給開發者的應用Id |
trade\_type | String(16) | JSAPI- NATIVE-APP-MICROPAY| 支付類型 |
| 參數 | 類型 | 描述 | 范例 |
| --- | --- | --- | --- |
| trade\_no | String(64) | 支付寶交易號,和商戶訂單號不能同時為空| 2013112011001004330000121536 |
| app\_id | String(32) | 支付寶分配給開發者的應用Id | 2014072300007148 |
| out\_biz\_no | String(64) | 商戶業務ID,主要是退款通知中返回退款申請的流水號 | HZRF001 |
| buyer\_id | String(16) | 買家支付寶賬號對應的支付寶唯一用戶號。以2088開頭的純16位數字 | 2088102122524333 |
| seller\_id | String(30) | 賣家支付寶用戶號 | 2088101106499364 |
| trade\_status | String(32) | 交易目前所處的狀態,見[交易狀態說明](https://docs.open.alipay.com/#s1) | TRADE\_CLOSED |
| total\_amount | Number(9,2) |本次交易支付的訂單金額,單位為人民幣(元),精確到小數點后2位 | 20.00 |
| receipt\_amount | Number(9,2) | 商家在交易中實際收到的款項,單位為元,精確到小數點后2位 | 15.00 |
| invoice\_amount | Number(9,2) | 用戶在交易中支付的可開發票的金額,單位為元,精確到小數點后2位 | 10.00 |
| buyer\_pay\_amount | Number(9,2) | 用戶在交易中支付的金額,單位為元,精確到小數點后2位 | 13.88 |
| point\_amount | Number(9,2) | 使用集分寶支付的金額,單位為元,精確到小數點后2位 | 12.00 |
| refund\_fee | Number(9,2) | 退款通知中,返回總退款金額,單位為元,精確到小數點后2位 | 2.58 |
| subject | String(256) | 商品的標題/交易標題/訂單標題/訂單關鍵字等,是請求時對應的參數,原樣通知回來 | 當面付交易 |
| body | String(400) | 該訂單的備注、描述、明細等。對應請求時的body參數,原樣通知回來 | 當面付交易內容 |
| gmt\_create | Date | 該筆交易創建的時間。格式為yyyy-MM-dd HH:mm:ss | 2015-04-27 15:45:57 |
| gmt\_payment | Date | 該筆交易的買家付款時間。格式為yyyy-MM-dd HH:mm:ss | 2015-04-27 15:45:57 |
| gmt\_refund | Date | 該筆交易的退款時間。格式為yyyy-MM-dd HH:mm:ss.S | 2015-04-28 15:45:57.320 |
| gmt\_close | Date | 該筆交易結束時間。格式為yyyy-MM-dd HH:mm:ss | 2015-04-29 15:45:57 |
| fund\_bill\_list | String(512) | 支付成功的各個渠道金額信息,詳見[資金明細信息說明](https://docs.open.alipay.com/#s3) | \[{“amount”:“15.00”,“fundChannel”:“ALIPAYACCOUNT”}\] |
| voucher\_detail\_list | String(512) | 本交易支付時所使用的所有優惠券信息,詳見[優惠券信息說明](https://docs.open.alipay.com/#s5) | \[{“amount”:“0.20”,“merchantContribute”:“0.00”,“name”:“一鍵創建券模板的券名稱”,“otherContribute”:“0.20”,“type”:“ALIPAY\_DISCOUNT\_VOUCHER”,“memo”:“學生卡8折優惠”\] |
| passback\_params | String(512) | 公共回傳參數,如果請求時傳遞了該參數,則返回給商戶時會在異步通知時將該參數原樣返回。本參數必須進行UrlEncode之后才可以發送給支付寶 | merchantBizType%3d3C%26merchantBizNo%3d2016010101111 |
**說明:**receipt\_amount、invoice\_amount、buyer\_pay\_amount、point\_amount、voucher\_detail\_list在用戶使用優惠券時才會返回,其他情況請
>[info]注意:微信支付,支付寶支付,余額支付時,attach變量值的描述
充值格式:buyPiont_購買會員id_充值的積分類型_充值的積分數。
購買會員組格式 buyGroup__購買會員id_購買會員組id_購買時間戳_到期時間戳_測試到期時間戳。
購買產品格式 buyProduct_購買會員id_標識_購買產品id_購買數量(標識,product:產品,curriculum:課程,special:專欄,標識也可自行定義,到時在付款成功后的回調中返回)。
>支付寶返回數據示例
```
Array
(
[gmt_create] => 2019-05-31 10:14:09
[charset] => UTF-8
[subject] => 20190531101133
[sign] => YYg72u7V6sHvi8XyIuoqke0fhoHVnfdohMh/40ptDn3wwE+q23derIaq26Y2aSpg/R0Af+aezdRTyLNspM3gPeFGDSGLmQnZ8Uu1SXDRl0mCW/P/eCcnscyHcjpf8kV1splcolOxWSByNtHImu0GDMnwrCtHXZ/5nkm1b7Riqhj2RxGCYTfZ1zMCG4+f65vGJ+aRnLDETdwdjNTy8bZXt3mvrXt15lRtJKBExX3Nnjrf/7NFh2/ENRiiN9z7LyA+TcNlgvRA/+LuDaOKD798aVaAH4+B3VUtBauM/ONS+2xlveqnfnajM+ErXxvGS6kPoVbcHpJvb6N40eEYIsY80w==
[buyer_id] => 2088102178846014
[body] => 11
[invoice_amount] => 0.01
[notify_id] => 2019053100222101431046011000258693
[fund_bill_list] => [{"amount":"0.01","fundChannel":"ALIPAYACCOUNT"}]
[notify_type] => trade_status_sync
[trade_status] => TRADE_SUCCESS
[receipt_amount] => 0.01
[app_id] => 2016092900624069
[buyer_pay_amount] => 0.01
[sign_type] => RSA2
[seller_id] => 2088102177809380
[gmt_payment] => 2019-05-31 10:14:31
[notify_time] => 2019-05-31 10:14:32
[passback_params] => 11
[version] => 1.0
[out_trade_no] => cowcms_20190531101133
[total_amount] => 0.01
[trade_no] => 2019053122001446011000033320
[auth_app_id] => 2016092900624069
[point_amount] => 0.00
[openid] => 2088102178846014
[total_fee] => 1
[transaction_id] => 2019053122001446011000033320
[attach] => 11
[time_end] => 1559268871
[appid] => 2016092900624069
[trade_type] => NATIVE
)
```
>[danger]以上格式是系統預定義的格式,你也可以根據自己的需求定義其它格式的的數據,在支付時將自定義的格式傳給attach變量值,然后在付款成功后的鉤子中進行處理數據
```
echo $data['attach'];
//充值 buyPiont_1_money_100 表示id為1的用戶充值money類型的積分100個
//購買會員組 buyGroup_1_2_1555555983_1555557983_0 表示id為1的用戶購買id為2的會員組,購買時間 1555555983,到期時間1555557983
//購買產品 buyProduct_1_product_10_2 表示id為1的用戶購買標識為product,id為10的產品2件
```
- 序言
- 基礎
- 源碼包
- 核心包
- 完整包
- 系統模塊
- 安裝模塊
- 后臺模塊
- 插件模塊
- 插件開發
- 開發基礎
- 權限開發
- 菜單開發
- 開發調試
- 碎片開發
- 碎片鉤子預設表
- 插件說明
- 字段插件
- 插件介紹
- 字段使用
- 單行文本
- 多行文本
- 選項-下拉
- 選項-復選
- 選項-單選
- 選項-滑塊
- 顏色選擇器
- 星級評分
- 日期時間
- 文件上傳
- 編輯器
- API接口
- 微信插件
- 微信配置
- 公眾號配置
- 支付配置
- 微信支付使用
- API類庫
- 紅包發放
- 付款到零錢
- 碎片
- 公眾號碎片
- 紅包碎片
- 付款到零錢碎片
- API微信接口
- 支付寶插件
- 支付寶配置
- 支付寶支付使用
- api接口
- api接口后端開發
- api接口前端使用
- API參數接口
- 會員插件
- 登錄使用
- 會員碎片
- API會員接口
- API注冊接口
- 積分插件
- 積分設置
- 積分碎片
- API積分接口
- API提現接口
- API兌換接口
- API充值接口
- 訂單
- 訂單碎片
- API訂單接口
- 商城
- 商城鉤子
- API商城接口
- API商城會員接口
- 簽到
- 簽到設置
- 簽到碎片
- API簽到接口
- 上傳
- 上傳設置
- 上傳JS接口
- 推廣插件
- 海報設置
- API海報接口
- 文章插件
- 文章設置
- 文章鉤子
- API文章接口
- API文章會員接口
- 管理員
- 管理員碎片
- 站內信
- API站內信接口
- 雜項
- 菜單
- 菜單設置
- API菜單接口
- 錯誤碼
- 支付碎片
- 支付
- 充值
- 購買會員組
- 購買產品