1. 程式人生 > >java專案中使用angularjs1.X,解決微信內建h5支付授權目錄配置

java專案中使用angularjs1.X,解決微信內建h5支付授權目錄配置

在專案中使用angularjs1.X,在微信內建瀏覽器中使用微信支付,授權目錄配置總出現XXXXXX#/XXXXX.html/XXXX未註冊,想了很多辦法,最終解決了,現在記錄一下

1、直接後臺重定向

  var pay ="http://127.0.0.1/XXXX/mobilePay?id="+$scope.id
  window.location.href=pay;
mobilePay控制層實現重定向到你的支付頁面
 
response.sendRedirect("http://127.0.0.1/shopxx/mobile/index.html#/payment/"+id);
這個方法可以解決問題,但是微信ios版本的6.5.6不知為何有少部分人還是不能支付

2、去除angularjs1.X URL中#,重新配置授權目錄,同時重新整理也不會出現404

1)可以使用nginx
2)使用webServer轉發

我們先修改 angularjs1專案,開啟html5模式

app.config(['$routeProvider', '$locationProvider', function ($routeProvider, $locationProvider) {
    $locationProvider.html5Mode(true);
}]);
編輯 index.html,增加base標籤
<html  ng-app="app">
<head>
    
<base href="/"> //目錄請根據自己的實際專案配置,錯誤的時候不能正常載入js等檔案 </head>
1)使用nginx

用到的是try_files,修改nginx的配置檔案,增加try_files配置,因對nginx不怎麼熟悉,本身伺服器上配置了負載均衡等,不想再去修改配置檔案(同樣需要更具自己的專案修改路徑),所以只再本地嘗試了一下

server {
    server_name localhost;
    root /;
    location / {
        try_files $uri $uri/ /index.html;
    }
}

2)使用webServer轉發


下載相應jar包並引入

 在WEB-INF/web.xml配置檔案中加入攔截器

<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>//根據自己的專案修改,不是所有目錄都需要攔截,不過全攔截也無所謂,轉發規則檔案配置中可以再去除
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>
在WEB-INF新建“urlrewrite.xml”轉發規則檔案
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
    "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite>
   <rule>
      <from>mobile/[a-zA-Z]+(/([a-zA-Z]|[0-9])*)*$</from>//正則表示式,根據需求自己再改改
      <to>/mobile/index.html</to>
   </rule>
</urlrewrite>