2016-02-02 28 views
0

我用我的應用程序Stripe grails plugin,我提示以下錯誤:使用Grails的條紋插件

Class:groovy.lang.MissingPropertyExceptionMessage:No such property: Stripe for class: com.myApp.app.SubscriptionRequestController 

這裏是我的行動:

def charge(String stripeToken, Double amount) { 
    Stripe.apiKey = grailsApplication.config.grails.plugins.stripe.secretKey 
    def amountInCents = (amount * 100) as Integer 
    def chargeParams = [ 
     'amount': amountInCents, 
     'currency': 'usd', 
     'card': stripeToken, 
     'description': '[email protected]' 
    ] 

    def status 
    try { 
     Charge.create(chargeParams) 
     status = 'Your purchase was successful.' 
    } catch(CardException) { 
     status = 'There was an error processing your credit card.' 
    } 

    redirect(action: "confirmation", params: [msg: status]) 
    return 
} 

我也得到下面的錯誤,因爲我安裝插件時,我刪除它我沒有看到它,它發生時試圖訪問或刷新任何視圖:

java.lang.RuntimeException: It looks like you are missing some calls to the r:layoutResources tag. After rendering your page the following have not been rendered: [head] 

回答

0

試試這個:

在主佈局文件,例如: - main.gsp,有兩個附加無論是在身體和頭部。另外,手動加載stripe-v2。無需將其添加到web-app/js中,因爲插件本身已具有它。

<html> 
    <head> 
     <g:javascript src="stripe-v2.js" /> 
     <r:layoutResources/> 
    </head> 
    <body> 
     <g:layoutBody/> 
     <r:layoutResources/> 
    </body> 
</html> 
Config.groovy中添加

grails.resources.modules = { 
    stripe { 
     dependsOn 'jquery' 
     resource url:'/js/stripe-v2.js', disposition: 'head', exclude:'minify' 
    } 
} 

樣品GSP(從文檔拍攝),但我加入付款方式,誤差爲源使用它:

<stripe:script formName="payment-form"/> 
<g:form controller="checkout" action="charge" method="POST" name="payment-form"> 
    <div class="payment-errors"></div> 
    <div class="form-row"> 
     <label>Amount (USD)</label> 
     <input type="text" size="20" autocomplete="off" id="amount" name="amount"/> 
    </div> 

    <stripe:creditCardInputs cssClass="form-row"/> 

    <button type="submit">Submit Payment</button> 
</g:form> 

我覺得插件本身不支持Grails Asset Pipeline的當前實現。我認爲它與grails 2.4.3及更高版本不兼容。

+0

現在作爲上述我沒有得到這個錯誤了'java.lang.RuntimeException:它看起來像你缺少一些調用r:layoutResources標記。在渲染你的頁面之後,下面的代碼沒有被渲染:[head]'但是我仍然無法成功完成交易,我注意到'Charge'操作未定義,請參閱截圖http://postimg.org/image/ k16zioat3 /,我試圖導入'進口com.stripe.Stripe',但我得到'無法解決課com.stripe.Stripe' – Sherif

+0

當然,讓我們通過打開另一個問題來解決它。讓我知道一旦你打開它並在那裏發佈你的屏幕截圖。 :) – Quchie

+0

如果你接受這個答案,你能接受並關閉它嗎?謝謝 – Quchie

0

現在,您可能不會導入com.stripe.Stripe類,這就是爲什麼您會收到該特定消息。

您不需要嘗試手動將密鑰分配給Stripe類。只需在您的Config.groovy中定義grails.plugins.stripe.secretKey,該插件將處理其餘部分,如see in the plugin source

+0

因此,我需要導入哪些Stripe類,以及哪些包是它們,我也總是得到這個錯誤java.lang.RuntimeException:它看起來像缺少一些對r:layoutResources標記的調用。渲染你的頁面後,下面的內容沒有被渲染:[head]'因爲我安裝了插件!當我刪除它,我沒有看到這個錯誤 – Sherif

+0

這聽起來像另一個問題 – doelleri

+0

我已經編輯的主要職位,但什麼是需要導入的軟件包? – Sherif