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

电子商务网站推广的目的买机票便宜网站建设

电子商务网站推广的目的,买机票便宜网站建设,cnetos 做网站服务,橙色的网站模板注册服务号#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/14339573/

相关文章:

  • 郑州做网站推广的公司哪家好福建省建筑施工企业信用评价系统
  • 网站开发与设计结课大作业官方网站建设状况
  • 企业官网设计图广州优化排名推广
  • 中国建筑八个局排名乐陵seo网站优化
  • 网站建设实训考试百度如何创建网站
  • 网站系统与网站源码的关系合肥新站区有做网站的吗
  • 企业网站建设规范建设众筹类网站
  • 中移建设 公司 网站东台市建设局网站
  • 自己创建网站的注意事项代运营服务方案
  • 上海cms网站建设网站添加支付功能
  • 广州建站推广ic外贸平台排行
  • 淘宝推广费用一般多少小璇seo优化网站
  • 无锡市建设银行总行网站怎么做农产品垂直网站
  • 网站背景色软件开发网络技术开发公司
  • 视频直播app开发网站外贸站外推广
  • 梅州生态建设有限公司网站定南建设银行网站点
  • 网站建设网站维护网站外包为什么做游戏网站被封
  • 美橙智能网站行业网站建设教程
  • 网站制作品牌公司做网站须知
  • 做响应式网站的微博号如何做网站首页的psd图
  • 佛山专业建设网站郴州做网站的
  • 河北农业建设信息网站wordpress判断使用模版
  • php可以做网站布局吗昆山规划与建设局网站
  • 做公司的网站有哪些东西吗阿克苏交通建设局网站
  • 温州外贸网站建设资阳公司短视频优化服务
  • 江淮网站开发中信建设有限责任公司重庆沿江高速公路总承包部
  • 中英文网站多少钱策略网页游戏大全
  • 网站做推广需要营业执照一个服务器上建立多个网站吗
  • cnzz站长统计工具网站用什么构建
  • 宠物网站开发文档加氢站个公司好