当前位置: 首页 > news >正文

个人建设网站服务器怎么解决方案网页制作教程

个人建设网站服务器怎么解决方案,网页制作教程,史家小学网站建设,wordpress存储插件注册服务号#xff0c;需进行微信认证#xff0c;此时需缴费 300 元/年#xff0c;必须是认证成功的服务号才能开通微信支付。 注册微信支付商户号 1、登录 https://pay.weixin.qq.com/index.php/core/home/login?return_urlhttps%3A%2F%2Fpay.weixin.qq.com%2Findex.php%… 注册服务号需进行微信认证此时需缴费 300 元/年必须是认证成功的服务号才能开通微信支付。 注册微信支付商户号 1、登录 https://pay.weixin.qq.com/index.php/core/home/login?return_urlhttps%3A%2F%2Fpay.weixin.qq.com%2Findex.php%2Fextend%2Fpay_setting%2Fma 点击 接入微信点击 注册微信支付商户号 按步骤 创建申请单–填写商户资料–确认提交 即可。 按提示进行操作即可步骤无比繁琐 2、管理员微信号关注 微信支付商家助手 以上操作步骤完成并通过后商家助手会收到 入驻申请进展通知---待签约 用管理员手机点进去扫脸确认签约即可完成后商家助手会收到 入驻成功 信息。 3、接下来完成 APPID授权管理登录到微信服务号首页找到 设置与开发---接口权限在右边找到 微信支付接口---未获得点击 申请。在 待关联商户号 一栏中点击 确认 同意授权即可。 此时在 已关联商户号 一栏中显示对应内容返回 接口权限 页面查看右边的 微信支付接口 显示 已获得。 微信支付商户后台配置 1、微信商户平台(pay.weixin.qq.com)–账户中心–账户设置–API安全–设置API密钥密钥需下载下来放到项目的根目录。接下来设置 APIv2 秘钥、设置 APIv3 秘钥。 2、产品中心–开发配置–支付配置在此添加 JSAPI支付授权目录如下图所示 3、关联服务号如下图 4、登录微信公众服务号后台对公众号进行功能设置如下图 微信支付功能开发 1、打开 easyWeChat 官网找到 Laravel 5 拓展包按步骤安装 laravel-wechat。 // 安装easyWeChat包 composer require overtrue/laravel-wechat:~5.1// 创建配置文件 php artisan vendor:publish --providerOvertrue\LaravelWeChat\ServiceProvider在 composer.json 中显示的 laravel-wechat 版本号为 overtrue/laravel-wechat: ^5.1, 。 在项目的 config 文件夹中自动生成 wechat.php 文件。 2、在 config/wechat.php 中打开微信支付的配置然后在 .env 文件中做如下配置 WECHAT_DEBUGtrue# 此配置是实现微信公众号登录认证的配置 WECHAT_OFFICIAL_ACCOUNT_APPID微信公众号的APPID WECHAT_OFFICIAL_ACCOUNT_SECRET微信公众号的开发者密码(AppSecret) WECHAT_OFFICIAL_ACCOUNT_TOKEN随意字符串WECHAT_PAYMENT_APPID微信公众号APPID WECHAT_PAYMENT_MCH_ID微信支付商户号 WECHAT_PAYMENT_KEYHubei***********83、添加下单和支付路由 Route::prefix(order)-group(function () {// 下单Route::post(/, OrderControllerstore);// 支付Route::get(/pay/{id}, OrderControllerpay); });4、创建订单的控制器方法和模型以及数据表 orders php artisan make:controller OrderControllerphp artisan make:model Models/Order// 模型里面添加黑名单 protected $guarded [];// orders 表的字段以下只是范例可根据需求自行添加 id、customer_id、out_trade_no、status、total_price、created_at、pay_time、updated_at我的表结构如下 5、在 Order 控制器里面的 store 方法,代码如下: use App\Models\Shop\Address; use App\Models\Shop\Cart; use App\Models\Shop\Order; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB;// 下单 function store(Request $request) {$carts Cart::with(product)-where(customer_id, session(wechat.customer.id))-get();// 防止用户使用微信的后退按钮重新提交订单导致出现没有数据的订单if ($carts-isEmpty()) {return [status 0, info ];}$count Cart::count_cart();$total_price $count[total_price];DB::beginTransaction();try {//生成订单$order Order::create([out_trade_no Order::make_orderNo(),customer_id session(wechat.customer.id),total_price $total_price,status 1]);//订单地址$address Address::find($request-address_id);$order-address()-create([province $address[province],city $address[city],area $address[area],detail $address[detail],name $address[name],tel $address[tel],]);$carts Cart::with(product)-where(customer_id, session(wechat.customer.id))-get();foreach ($carts as $cart) {//判断库存是否足够if ($cart-product-stock ! -1 and $cart-product-stock - $cart-num 0) {throw new \Exception(商品 . $cart-product-name . , 目前仅剩下 . $cart-product-stock . 件. \n请返回购物车, 修改订单后再下单!);}//削减库存数量if ($cart-product-stock ! -1) {$cart-product-decrement(stock, $cart-num);}//插入订单商品表$order-order_products()-create([product_id $cart-product_id,num $cart-num]);}//清空购物车Cart::where(customer_id, session(wechat.customer.id))-delete();} catch (\Exception $e) {//echo $e-getMessage();DB::rollback();return [status 0, info $e-getMessage()];}DB::commit();return [status 1, order_id $order-id]; }6、在 Order 控制器里面的 pay 方法,代码如下: use App\Models\Shop\Order; use EasyWeChat;// 微信支付 function pay($id) {$payment EasyWeChat::payment();// 第 1 步查询订单并计算金额$order Order::with(address)-find($id);// 第 2 步统一下单$result $payment-order-unify([body 测试支付,out_trade_no $order-out_trade_no,total_fee $order-total_price * 100,notify_url https://shop.***.com/order/notify, // 支付结果通知网址trade_type JSAPI,openid session(wechat.customer.openid),]);// return $result; // 打印$result看是否有结果// 第 3 步JSSDKif ($result[result_code] SUCCESS $result[return_code] SUCCESS) {$prepayId $result[prepay_id];$jssdk $payment-jssdk;$json $jssdk-sdkConfig($prepayId);// return $json; // 打印$json看是否有结果return view(wechat.order.show_pay, compact(order, json));} else {return $result;} }接下来我们来测试一下上述代码打印 return $result;。打开 微信开发者工具 进入商城首页依次添加商品到购物车、选择地址、下单会得到如下图结果 继续测试打印 return $json;。就在上图结果中刷新地址你会得到如下结果 7、在前端页面底部增加 js 调用代码如下 script$(function () {$(#pay).click(function () {if (typeof WeixinJSBridge undefined) {alert(请在微信在打开页面);return false;}WeixinJSBridge.invoke(getBrandWCPayRequest, {!! json_encode($json) !!}, function (res) {switch (res.err_msg) {case get_brand_wcpay_request:cancel:alert(您取消了支付);break;case get_brand_wcpay_request:fail:alert(支付失败 res.err_desc );break;case get_brand_wcpay_request:ok:alert(支付成功);location.href /order;break;default:alert(JSON.stringify(res));break;}});})}) /script接下来测试是否能唤起微信支付密码窗口输入密码后显示支付成功。 注如有出现错误 调用支付 JSAPI 缺少参数 timeStamp解决办法在你项目的 vendor/overtrue/wechat/src/Payment/Jssdk/Client.php 中屏蔽两行代码就行。 public function sdkConfig(string $prepayId): array {$config $this-bridgeConfig($prepayId, false);// 屏蔽这两行代码// $config[timestamp] $config[timeStamp];// unset($config[timeStamp]);return $config; }如有其他错误可以在评论区交流。 微信支付回调 1、首先增加支付回调路由注意此路由应放在 middleware 中间件路由外面回调路由请求必须是 post //支付成功回调 Route::namespace(Wechat)-group(function () {Route::post(/order/notify, OrderControllernotify); });2、laravel 框架必须取消回调路由的 csrf 防护。在你项目的 app/Http/Middleware/VerifyCsrfToken.php 中加入如下代码 protected $except [order/notify, // 回调路由取消csrf防护 ];3、回调代码如下 /*** 微信支付回调方法修改订单状态* return mixed*/ function notify() {$payment EasyWeChat::payment();$response $payment-handlePaidNotify(function ($message, $fail) {if ($message[return_code] SUCCESS $message[result_code] SUCCESS) {// \Log::debug($message);Order::where(out_trade_no, $message[out_trade_no])-update([status 2, pay_time Carbon\Carbon::now()]);//更改订单状态//支付后微信会在此处返回支付状态就是$message回调里面打印不出来可通过写入日志里面查看支付成功后更改订单状态。当然你也可以进行其他操作。return true;} else {// \Log::debug(我不买了);return $fail(失败);}});return $response; }4、最后测试如下 支付流程总结 1、点击支付按钮js 提交相应参数到后台支付方法。 2、后台接收请求往你的订单表里插入一条订单数据状态为 1也就是未支付状态。 3、带上这条订单的订单号、价格请求微信换取 prepay_id。 4、请求微信成功会返回支付所需要的参数appidtimestamp 等。返回前端 js 调起支付。 5、支付后微信会将支付结果通过回调返回可根据返回信息修改订单状态。 参考文献https://learnku.com/articles/37459
http://www.hkea.cn/news/14282305/

相关文章:

  • 免费自己怎么注册网站网站繁体js
  • 八宝山做网站的公司iis7重启 网站
  • 做网站需要知道的简单代码网站建设期间怎么关闭网站
  • 南昌网站做做特价的网站
  • 室内设计网站界面马鞍山网站建设兼职
  • 网站收录很少却有排名wordpress yeti 主题
  • 国外免费建购物网站如何做产品众筹网站
  • 网站建设公司哪家好 地址磐石网络免费 建网站
  • 网站 宽屏窄屏自适应wordpress 单栏模板下载
  • 网站数据库制作wordpress单栏极简
  • 做网站切图的原则是什么wordpress cms下载地址
  • 企业网站系统有哪些菏泽网站建设优惠臻动传媒
  • 寮步镇做网站企业建站程序推荐
  • 适合做浏览器主页的网站网站seo搜索引擎的原理是什么
  • 贵大网站建设多少钱洛阳数码大厦做网站的在几楼
  • 六灶网站建设北京网页制作
  • 营销网站建设联系方式深圳高端网站制作多少钱
  • 担保公司网站建设汇报徐州网站开发多少钱
  • 北京东方华美建设集团有限公司网站建设局焊工证图样
  • 影响网站排名的因素 权重商业空间设计理念
  • html网站开发实战教程做最优秀的自己的视频网站
  • 竞价销售是什么意思广州优化营商环境条例
  • 网站关于我们怎么做单页面模板建设电子商务系统网站
  • 网站整套模板开发一个官网多少钱
  • 西安做网站公wordpress文章内容调用
  • 网站seo主管招聘wordpress部分图片不显示
  • 外贸和网站制作wordpress 字体更换
  • 衡水高端网站建设国内做市场调查专业网站
  • 网站设计属于什么经营范围网站建设小结
  • 南通网站群建设产品网站做营销推广