PaySDK 是PHP 整合支付SDK ,整合了支付寶、微信支付的支付介面和其它相關介面的操作。
無框架依賴,支援所有框架,支援Swoole 協程環境。
我們有完善的線上技術文件:http://doc.yurunsoft.com/PaySDK
API 文件:https://apidoc.gitee.com/yurunsoft/PaySDK
此專案進入維護階段,不會支援微信V3接口,懶得跟著他們折騰,如有需要請找別處!
作者本人不提供任何技術支持,如有需要可以加群討論:17916227 ,有沒有人回复就不一定了。
大家在開發上一定會對接各種各樣的支付平台,我個人精力有限,歡迎各位來Github 提交PR,一起完善PaySDK ,讓它能夠支援更多的支付平台,更加穩定可靠好用。
即時到帳-電腦網站支付(老)
即時到帳-手機網站支付(老)
當面付
手機網站支付
電腦網站支付
APP支付服務端
小程式支付
單筆轉帳到支付寶帳戶
海外支付(電腦網站、手機網站、APP、掃碼)
海關報關
其它輔助交易介面(退款、查詢等)
刷卡支付
公眾號支付
掃碼支付
APP支付
H5支付
小程式支付
企業付到零錢
企業付款到銀行卡
海外支付(刷卡、公眾號、掃碼、APP)
海關報關
其它輔助交易介面(退款、查詢等)
在您的composer.json中加入配置:
PHP >= 5.5
{"require": {"yurunsoft/pay-sdk": "~3.0"} }
PHP >= 5.4
{"require": {"yurunsoft/pay-sdk": "~2.0"} }
3.x 版本支援PHP >= 5.5,持續迭代維護中
2.x 版本支援PHP >= 5.4,支援長期BUG 維護,確保穩定可用,停止功能性更新
然後執行composer update
指令。
// SDK實例化,傳入公用設定$pay = new YurunPaySDKAlipaySDK($params);// 支付介面$request = new YurunPaySDKAlipayParamsPayRequest;$request->notify_url = ''; // 支付後通知位址(成功回調以支付給,這個可靠)$request->return_url = ''; //付款後跳轉回地址$request->businessParams->seller_id = $GLOBALS['PAY_CONFIG']['appid']; // 賣家支付寶用戶號碼$request->businessParams->out_trade_no = 'test' . mt_rand(1000000 ,99999999); //商家訂單號碼$request->businessParams->total_fee = 0.01; // 價格$request->businessParams->subject = '測試商品'; // 商品標題// 跳到付款頁面// $pay->redirectExecute( $request);// 取得跳轉url$pay->prepareExecute($request, $url);var_dump($url);
// SDK實例化,傳入公共配置$pay = new YurunPaySDKAlipayAppSDK($params);// 支付接口$request = new YurunPaySDKAlipayAppWapParamsPayRequest;$request->notify_url = ''; // 支付後通知地址(作為支付成功回呼,這個可靠)$request->return_url = ''; //付款後跳轉回位址$request->businessParams->out_trade_no = 'test' . mt_rand(10000000,99999999); // 商家訂單號碼$request->businessParams->total_amount = 0.01; ->subject = '小米手機9黑色陶瓷尊享版'; // 商品標題// 跳到付款頁面// $pay->redirectExecute($request);// 取得跳轉url$pay->prepareExecute($request, $url);var_dump($url);
// SDK實例化,傳入公用配置$pay = new YurunPaySDKWeixinSDK($params);// 支付介面$request = new YurunPaySDKWeixinH5ParamsPayRequest;$request->body = 'test'; // 商品描述$request->out_trade_no = 'test' . mt_rand(10000000,99999999); //訂單編號$request->total_fee = 1; // 訂單總金額,單位為:分$request->spbill_create_ip = '127.0.0.1'; // 客戶端ip$request->notify_url = ''; // 非同步通知位址// 呼叫介面$result = $pay->execute($request);if($pay->checkResult()) {// 跳轉支付介面header('Location: ' . $result['mweb_url']); }else{var_dump($pay->getErrorCode() . ':' . $pay->getError()); }exit;
在支付、退款非同步通知中,需要賦值Swoole
的Request
和Response
對象,或遵循PSR-7 標準的對象即可。
主流框架的Request
和Response
對象,一般都遵循PSR-7 標準,可以直接使用。
imi 是一個基於PHP Swoole 的高效能協程應用開發框架,它支援HttpApi、WebSocket、TCP、UDP 服務的開發。
在Swoole 的加持下,相較於php-fpm 請求回應能力,I/O密集型場景處理能力,有著本質上的提升。
imi 框架擁有豐富的功能元件,可廣泛應用於互聯網、行動通訊、企業軟體、雲端運算、網路遊戲、物聯網(IOT)、車聯網、智慧家庭等領域。可以使企業IT 研發團隊的效率大為提升,更專注於開發創新產品。
https://www.imiphp.com/
/** * 這是一個在控制器中的動作方法 * @Action */public function test() {$payNotify = new class extends YurunPaySDKWeixinNotifyPay {/** * 後續執行操作 * @return void */protected function __exec() { } };$context = RequestContext::getContext();// 下面兩行很關鍵$payNotify->swooleRequest = $context['request'];$payNotify->swooleResponse = $context['response'];$sdk- >notify($payNotify);// 這句話必須填入return $payNotify->swooleResponse; }
$payNotify = new class extends YurunPaySDKWeixinNotifyPay {/** * 後續執行操作 * @return void */protected function __exec() { } };// 下面兩行很關鍵,$request、$response 從request 中取得// 或查閱如何從你使用的框架中取得$payNotify->swooleRequest = $request;$payNotify->swooleResponse = $response;$ sdk->notify($payNotify);
$payNotify = new class extends YurunPaySDKWeixinNotifyPay {/** * 後續執行操作 * @return void */protected function __exec() { } };// 目前主流Swoole 基本上都支援PSR-7 標準的物件// 所以可以直接傳入,如何取得請查閱對應框架的文件$payNotify->swooleRequest = $request;$payNotify->swooleResponse = $response; $sdk->notify($payNotify);// 處理完成後需要將$response 從控制器返回或賦值給上下文//不同框架的操作不同,請自行查閱對應框架的文檔return $payNotify->swooleResponse;
服務內容:
低費率開戶(僅合法商家)
問題檢查及諮詢
代接支付
其它合作
如有需要加QQ: 369124067
微信: wx_zhangrunyu
(註明來意)
開源不求獲利,多少都是心意,生活不易,隨緣隨緣…