如何使用Grails通过电子邮件生成,签名和分发存折?

时间:2012-10-02 02:26:05

标签: grails ios6 passbook

是否有任何好的插件,教程等,通过这个?

3 个答案:

答案 0 :(得分:3)

我建议jpasskit。以下是一些用于创建传递的示例代码:

PKPass pass = new PKPass()
// add information to the pass

def certFile = getCertificatePath() + File.separator + P12_CERT_NAME
def wwdrca = getCertificatePath() + File.separator + APPLE_WWDRCA_NAME
def tempDir = createTempDir()

PKSigningInformation pkSigningInformation = PKSigningUtil.loadSigningInformationFromPKCS12FileAndIntermediateCertificateFile(
        certFile,
        PASSBOOK_SIGNING_PASSWORD,
        wwdrca)
byte[] passZipBytes = PKSigningUtil.createSignedAndZippedPkPassArchive(pass, tempDir.absolutePath, pkSigningInformation)

@Fabiano指出,您可能想要关注上述某些内容Apple guide。然后,要将您的传递附加到电子邮件,您可以使用Mail plugin

List myPasses = getPasses() // using code from above, plus adding unique names to passes
def contentType = "application/vnd.apple.pkpass"
mailService.sendMail {
            multipart true
            getMessage().setTo(emailAddresses as String[])
            from(mailFromAddress)
            subject(subjectString)
            body(view: bodyTemplate, model: model)
            myPasses.each {
                attachBytes(it.name, contentType, it.bytes)
            }
        }

其中it.bytes指passZipBytes,it.name是通行证的唯一名称,例如条形码编号。你需要在这里或那里填补一些空白,但这是如何做到的基础。

Grails 2.x和jpasskit-0.0.2之间存在一个bouncycastle依赖问题。让他们玩得很好:

inherits("global") {
    ...
    excludes 'bcprov-jdk15', 'bcpg-jdk15'
}

希望这有帮助!

答案 1 :(得分:2)

我们最近完成了我们的grails项目LIKELLA.com

免费的“自己动手”忠诚度平台。

只需点击apple guide即可。

对于签名grails,我们使用了bouncy castle library

可以找到PKC7中有弹性种姓签名的指南here,它没有更新到最后一个充气城堡版本,但是一个很好的起点。

如果您有更多帮助,我们甚至可以通过likella dot com提供商业支持。

答案 2 :(得分:0)

如果您想在不使用BouncyCastle的情况下签名,请查看以下问题:

https://security.stackexchange.com/questions/13910/pkcs7-encoding-in-java-without-external-libs-like-bouncycastle-etc

我实际上会使用这种方法来签名内容。