微信
<?phpnamespace AppHttpControllers;use YansongdaPayPay;use YansongdaPayLog;class PayController{ protected $config = [ 'appid' => 'wxb3fxxxxxxxxxxx', // APP APPID 'app_id' => 'wxb3fxxxxxxxxxxx', // 公众号 APPID 'miniapp_id' => 'wxb3fxxxxxxxxxxx', // 小程序 APPID 'mch_id' => '14577xxxx', 'key' => 'mF2suE9sU6Mk1Cxxxxxxxxxxx', 'notify_url' => 'http://yanda.net.cn/notify.php', 'cert_client' => './cert/apiclient_cert.pem', // optional,退款等情况时用到 'cert_key' => './cert/apiclient_key.pem',// optional,退款等情况时用到 'log' => [ // optional 'file' => './logs/wechat.log', 'level' => 'info', // 建议生产环境等级调整为 info,开发环境为 debug 'type' => 'single', // optional, 可选 daily. 'max_file' => 30, // optional, 当 type 为 daily 时有效,默认 30 天 ], 'http' => [ // optional 'timeout' => 5.0, 'connect_timeout' => 5.0, // 更多配置项请参考 [Guzzle](https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html) ], 'mode' => 'dev', // optional, dev/hk;当为 `hk` 时,为香港 gateway 。]; public function index() { $order = [ 'out_trade_no' => time(), 'total_fee' => '1', // **单位:分** 'body' => 'test body - 测试', 'openid' => 'onkVf1FjWS5SBIixxxxxxx', ]; $pay = Pay::wechat($this->config)->mp($order); // $pay->appId // $pay->timeStamp // $pay->nonceStr // $pay->package // $pay->signType } public function notify() { $pay = Pay::wechat($this->config); try{ $data = https://www.isolves.com/it/cxkf/bk/2019-09-09/$pay->verify(); // 是的,验签就这么简单! Log::debug('Wechat notify', $data->all()); } catch (Exception $e) { // $e->getMessage(); }return $pay->success()->send();// laravel 框架中请直接 `return $pay->success()` }}
【我用过的最优雅的支付 SDK 扩展包easyPay】
推荐阅读
- MySQL中Order by 结合 Limit 使用时的潜在陷阱
- 超棒的MD5加密工具
- 有老鼠屎的餐具应该怎么消毒 厨具有老鼠屎还能用吗
- 世界上最有钱的家族是哪个家族有多少钱 世界上最有钱的几大家族
- 详解MySQL内核对读写分离的支持特性
- HTTPS是怎么保证网络通信安全的
- 淘会员每单返利90%是真的吗 淘宝特价版返现
- HTML5 的JavaScript 客户端PDF解决方案——jsPDF
- 白眉鹀鸟叫声 白眉鸫叫的好听吗
- MySQL的consul配置这么设计就完整了