## 支付寶商家接入 申請公鑰和私鑰
商家入口及配置

*****

*****
## 開發者中心入口
[鏈接](https://developers.alipay.com/dev/workspace/key-manage)
https://developers.alipay.com/dev/workspace/key-manage
*****

*****

*****
## 獲取公鑰等

*****

*****

## 下載支付寶php __SDK
分為手機端和網頁端
網頁端
[https://opendocs.alipay.com/open/270/106291](https://opendocs.alipay.com/open/270/106291)
手機端
[https://opendocs.alipay.com/open/203/105910](https://opendocs.alipay.com/open/203/105910)

## SDK位置 extend下面

*****
修改部分代碼 ----添加命名空間,在控制器里面引用

```
~~~
use AlipayTradePagePay\aop\AopClient;
use AlipayTradePagePay\aop\request\AlipayTradePagePayRequest;
use AlipayTradePagePay\pagepay\servier\AlipayTradeService;
~~~
```
## 配置文件配置參數公鑰私鑰

```
~~~
'alipay' =>[
//應用ID,您的APPID。
'app_id' => "2019081366229303",
//商戶私鑰,您的原始格式RSA私鑰
'merchant_private_key' => "MIIEowIBAAKCAQEAk7y/42QOcMZcOQA1jOrEs2+QU2qd7DEMuSwujfSS39CWilfZX2IFB2Ij0+/X8mZ4eGQfIYqmg27Ii3ASocKEdEtGF6XRfOQKfjA3U6MwfjsHZ1qXkRuzvNlGCj3qQX+XWQtLyROKyEHEAZV5KAqcgEWKaPQ4Q1f6QvL/8wP4tbyPxKvoEMtlhpW7YJ+n6IZk6oIC/GKUXTKUG0jd0XlHvV8vvqRMFaj6zP5IEZJy9dKNlGpn2rrtk7TENEyi9Aqan0p4c+dxtQfJSanUCF1fYeAM3u3rCjYVaj3BngP15Fj5EPUFYhxfGTjrXEqqrVLtO0tPOPqqUK+g0JC1Y3FqzQIDAQABAoIBABP6LAB1oTZCvGnAy3z4qgyRg3SkMCKmJ1BK1yi+77VwIUsnwe8R9BghfzLDdfIDRTsSXttMQmP3cQrZ5ssU4JBRNXMxKvi2ZWzW3ERlBsOq+79QErq+gjmBL+VmpeyhcjfKPT89c0DNE9IbAj0V4j++J481pv4EQYUYEuAro0//sMU0DD/k1Nj9ZtR4tHUzy1BXIjfvNzvHJpYgjZaKXOKwEIxf32cVXR2yr7pksCa9OzD7VYMJdv6VpY6mGkXQG+2ZwV3ff9yKZub4Q6q+2AEGULxeSZxDBczu55oD6d9PMbcn48Nbo3sFAXYVlYVC+IbiQPIoCovavt71Yx/NpckCgYEAz1LsSaU5WnP2NKDqfi56yK9+YXfFjXJbQ2+UfWXOrNBPnTWbeQhIl/Pg0/Mt9nI5m1OWI2zKmdDunFFk7yp5s0CnSRdG9mp6zE4YhYEGPzha1xOAyDMje4H4zGw3b1XBZCqXvAt1RMINEvgIvxEh7dLrJ7AW02+hajdB2cPZme8CgYEAtmxo21/PnBezO5ZpgkxS47GrrnyKkClXn1Ky0y/8i9/NjtM0gjKefP1Jqvk7OC7cFSSesiINYxHZZAV212/Urlq3yFwyizxjaA63ErPes4ynErSiLIfJknSkRU0yu4BKewG0CaJ4dFWns1OWkmGmv6+0c+awDYl9Sw9G0ydmMwMCgYAvbTjAYBuOpZhc0bLSyq8r2Xl/snZutQpLkurVBMUSo1STEgBO36Y7nH6B/c814UtsTOK7l9eA+FqdR8FfNMhCSTf7cGe7VwBgXD0fzTQwoiOlr8B2C7zCNClGGjtULLngwB2V1skswXdcL4FQtAqe7PD+UznlhFPYiGt39WWB4QKBgEA4qjGQ6WXqcg7oRPy6IfRG+EnVTnKyG0bbtlji6+XSRGujrzim2WTnRqgKVe7RkGlhGv1bP5tBDWdJBS2TESzQgyLmUmTyPYzEoW7UI/LR8X+EWBOVOkF1Dt/W7aVU5OOpFdjOedl6zi8zni6qcinJkZ27+P7LCHEET8rGdBRBAoGBAI/ZiVcmQiu9FtjM8lGdCOlOKnkvDxzRqpu8mglmwD+Nuy6a1TSotrzgSwryzALi/5Muaj/FXALEhJt91mXRh4QL9BX7cFxb/g94r05Etwj1z5D8yn9nqXtIorluPZtC5Rh22prI1FgoYzDD4EK23XwiUzcVW5Nio89glZ1aweRK",
//異步通知地址
'notify_url' => "http://houtt.skfa.com/index/user/notify_url",
//同步跳轉
'return_url' => "http://houtt.skfa.com",
//編碼格式
'charset' => "UTF-8",
//簽名方式
'sign_type'=>"RSA2",
//支付寶網關
'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
//支付寶公鑰,查看地址:https://openhome.alipay.com/platform/keyManage.htm 對應APPID下的支付寶公鑰。
'alipay_public_key' => "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9H5INi43hujkxMaXjFx9YsCX82luk20r6BAdlkDDNHe2ffVxWgbzmUqrir4tD6ooiWyQNqgRBbUFP7aowiHQfjpfqRijt4nAni2MDh9XfUOuv4xEC8HnVMZNlYhF9RQ4nEbk3v6jMrA7qgi1p01IV5+axvjmh4+uYRTNJnpvnTEVRoRuRsx7e+uYTwUHgvMdTB6X+a79ZFUOrP/qlgfe71evIGL3T3BucqUtSG4CLR+YoviFZ8C5/cl/3p2Y0D2zNgOdakHOJRNJ2Kmf73URmxxVLWmGisYiYmWKaacivOjZMBPnbO6MmbcU5YPaeUm/emc1uz5y+eP6dwU03CSrywIDAQAB",
],
~~~
```
## 控制器引用 和回調 , 同步回調必須外網可以訪問 , 異步回調也是

```
~~~
//支付寶網頁支付
public function pay_money(){
$info = $_POST;
$price_info = Db::name('price')->where('id','=',$info['price_id'])->find();
$aop = new AopClient();
$config = config('alipay');
$aop->gatewayUrl = $config['gatewayUrl']; //網關地址要使用沙箱網關alipaydev
$aop->appId = $config['app_id'];
$aop->rsaPrivateKey = $config['merchant_private_key'];
$aop->format = "json";
$aop->apiVersion = '1.0';
$aop->postCharset='UTF-8';
$aop->signType = "RSA2";
//$aop->alipayrsaPublicKey = '填寫沙箱頁面給你的支付寶公鑰';
//實例化具體API對應的request類,類名稱和接口名稱對應,當前調用接口名稱:alipay.trade.app.pay
$request = new AlipayTradePagePayRequest();
//SDK已經封裝掉了公共參數,這里只需要傳入業務參數
$info = json_encode(['body'=>$info['user_id'],'subject'=>$info['price_id'],'out_trade_no'=>md5(time()),
'timeout_express'=>'30m','total_amount'=>$price_info['price'],'product_code'=>'FAST_INSTANT_TRADE_PAY'],JSON_UNESCAPED_UNICODE);
$request->setBizContent($info);
$request->setReturnUrl('http://houtt.skfa.com');
$request->setNotifyUrl('http://houtt.skfa.com/index/user/notify_url');
$result = $aop->pageExecute($request);
return $result;
}
public function notify_url(){
import('alipay.aop.AopClient');
$config = config('alipay');
$aop = new AopClient();
$aop->appId = $config['app_id'];
$aop->rsaPrivateKey = $config['merchant_private_key'];
$aop->alipayrsaPublicKey = $config['alipay_public_key'];
$aop->signType = $config['sign_type'];
$result = $aop->rsaCheckV1($_POST,'',$config['sign_type']);
if ($result) {
if($_POST['trade_status'] == 'TRADE_SUCCESS' || $_POST['trade_status'] == 'TRADE_FINISHED') {
$price_info = Db::name('price')->where('id','=',$_POST['subject'])->find();
Db::name('user')->where('id','=',$_POST['body'])->setInc('allow_num',$price_info['num']);
$insert_info['user_id'] = '2';
$insert_info['money'] = $_POST['total_amount'];
$insert_info['price_id'] = $_POST['subject'];
$insert_info['createtime'] = time();
Db::name('user_money_log')->insert($insert_info);
return 'success';
}
Log::write('trade_status is error:'.input('trade_status'));
return 'fail';
}
Log::write('sign verify is error:'.var_export($_POST));
return 'fail';
}
~~~
```
- tp5圖片上傳
- 文件上傳到七牛云
- 上傳到阿里云
- 富文本編輯器
- phpexcel和spreadsheet
- phpexcel導出
- phpexcel導入
- spreadsheet
- tp5_api接口
- 跨域請求
- JWT
- 圖片和視頻上傳接口
- 驗證碼
- tp5小程序登錄
- tp5小程序支付
- tp5基礎架構
- 驗證層
- 模型層Model
- 控制器構找
- tp5.0支付寶
- 海報二維碼
- 輪播圖
- echarts柱狀圖
- layui的圖片彈窗
- p標簽顯示指定行數(全部)
- jquery和layerdate調用日期
- ajax發送文件和圖片的坑啊
- JS日期點擊上一天和下一天
- 百度分享js
- POST請求
- 商品數據表
- tp5.0支付寶最全
- tp5路由的坑
- 二維數組排序
- tp5模型分組group錯誤
- 二維變一維數組
- 無限樹形結構
- json對象轉數組
- 模型關聯查詢
- tp5的模型獲取器和字段設定
- 經緯度獲取距離排序