1局待、安裝使用Laravel擴(kuò)展庫yansongda/laravel-pay
yansongda/laravel-pay Github地址
通過composer進(jìn)行安裝
$ composer require yansongda/laravel-pay
生成配置文件
$ php artisan vendor:publish --provider="Yansongda\\LaravelPay\\PayServiceProvider" --tag=laravel-pay
2斑响、配置支付信息菱属,填寫到配置文件pay.php中
運(yùn)行支付寶提供的工具生成如下:
將公鑰文件里面的去除-----BEGIN PUBLIC KEY-----與-----END PUBLIC KEY-----,將剩下的內(nèi)容合并為一行恋捆,添加到應(yīng)用公鑰中
將私鑰文件里面的去除-----BEGIN RSA PRIVATE KEY-----與-----END RSA PRIVATE KEY-----照皆,將剩下的內(nèi)容合并為一行,需添加到配置文件中
配置文件中填寫對應(yīng)內(nèi)容
3沸停、拉起支付
yansongda/laravel-pay中拉起支付膜毁,是將支付form信息直接返回到頁面中,考慮到業(yè)務(wù)需求愤钾,需要通過json方式返回更方便一些?
use Yansongda\Pay\Pay;
/**
* Class SecondPay
* @package App
* 支付寶手機(jī)網(wǎng)頁支付接口
*/
class ZfbWapPay extends Model
{
//發(fā)送支付請求
public function send(Request $request,$outTradeNum,$payAmount)
{
$config = config('pay.alipay'); //取出配置信息瘟滨,根據(jù)需求動(dòng)態(tài)改變
$config['return_url'] ='http://api.aiwangyouxi.com/web/pay/jump/'.$outTradeNum;
$order = [
'out_trade_no' => $outTradeNum, //我方訂單號
'total_amount' => $payAmount, //支付金額,單位(元)
'subject' => '游戲支付',
];
$alipay = Pay::alipay($config)->wap($order);
return $alipay; //返回form表單信息
}
}
成功返回form表單信息能颁,將信息插入到頁面中完成拉起支付
$("body").append(data.form_text);
4杂瘸、支付回調(diào)
use Yansongda\Pay\Pay;
/**
* Class WxwebController
* @package App\Http\Controllers\Web
* 支付寶h5支付回調(diào)
*/
class ZfbwebController extends Controller
{
private $pay_order; //我方訂單號
private $call_order; //第三方訂單號
public function notify(Request $request)
{
$pay_config = config('pay.alipay');
$alipay = Pay::alipay($pay_config);
$this->pay_order = $request->out_trade_no;
$this->call_order = $request->trade_no;
$save_back = $m_pay_back->addback($this->pay_order,json_encode($request->all())); //將支付回調(diào)信息記錄到數(shù)據(jù)庫中
$check_result = $alipay->verify();
if(!$check_result) { //回調(diào)驗(yàn)簽失敗
return '';
}
return $alipay->success();
}
}