appid 是微信公衆帳號或開放平臺 APP 的惟一標識,在公衆平臺申請公衆帳號或者在開放平臺申請APP帳號後,微信會自動分配對應的 appid,用於標識該應用。可在微信公衆平臺-->開發者中心查看,商戶的微信支付審覈經過郵件中也會包含該字段值(APPID)。前端
商戶申請微信支付後,由微信支付分配的商戶收款帳號,郵件中的參數爲微信支付商戶號。git
交易過程生成簽名的密鑰,僅保留在商戶系統和微信支付後臺,不會在網絡中傳播。商戶妥善保管該 Key,切勿在網絡中傳輸,不能在其餘客戶端中存儲,保證 key 不會被泄漏。商戶可根據郵件提示登陸微信商戶平臺進行設置。也可按一下路徑設置:微信商戶平臺(pay.weixin.qq.com)-->帳戶設置--> API 安全-->密鑰設置。郵件中參數 API 密鑰。github
AppSecret 是 APPID 對應的接口密碼,用於獲取接口調用憑證 access_token 時使用。郵件中參數 Appsecretjson
這裏推薦一個很好用的支付擴展包,它集成了支付寶支付和微信支付。
yansongda/pay安全
composer require yansongda/pay -vvv
<?php namespace XXX\Api; use Yansongda\Pay\Pay; class PayTool { /* 微信 APP 支付配置參數*/ protected $wxConfig = [ 'appid' => 'wx18xxxxxxxxxxxxx', 'mch_id' => '151xxxxxxxxx', 'key' => '267xxxxx7b89xxxxxxxxxxxxxx', 'notify_url' => 'http://xxx.xxx.xxx/xxx/PayTool.wxVerify' ]; protected function wxPay() { return Pay::wechat($this->wxConfig); } /* 生成帶簽名的客戶端訂單信息*/ public function getSign($type = 'wx') { try { /* 訂單號*/ $out_trade_no = 'wx'.date('YmdHis'); switch ($type) { case 'wx': $order = [ 'out_trade_no' => $out_trade_no, /* 金額,單位:分*/ 'total_fee' => '1', /* 商品描述*/ 'body' => 'APP名-商品描述', ]; $wxPay = self::wxPay(); $pay = $wxPay->app($order); break; default: throw new \Exception('支付方式異常'); } return [ 'status' => 200, 'result' => json_decode($pay->getContent(), true) ]; } catch (\Exception $e) { return ['status' => 500, 'result' => $e->getMessage()]; } } /* 微信支付結果異步通知*/ public function wxVerify() { try { $wxPay = self::wxPay(); $result = $wxPay->verify(); if ($result) { $response = $wxPay->success(); /* 日誌記錄*/ $wxPayLogs = new WXPayLogs(); $wxPayLogs->content = $response->getContent(); /* all 字段中包括了詳細的返回信息*/ $wxPayLogs->all = $result->toArray(); $wxPayLogs->save(); /* 返回成功參數給微信*/ return $response->send(); } } catch (\Exception $e) { $wxPayLogs = new WXPayLogs(); $wxPayLogs->content = $e->getMessage() ; $wxPayLogs->save(); } } }
建議查看 yansongda/pay 的文檔, 並結合本身的業務需求進行整合。微信
Note:網絡