1

Are there any good plugins, tutorials, etc., that walk through this?

4

3 回答 3

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 指南了解上述一些内容。然后要将您的通行证附加到电子邮件中,您可以使用Mail 插件

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 是 pass 的唯一名称,例如条形码编号。你需要在这里或那里填补一些空白,但这是如何做到这一点的基础。

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

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

希望这可以帮助!

于 2013-04-17T17:55:59.040 回答
2

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

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

只需按照苹果指南

为了登录 grails,我们使用了bouncy castle library

可以在此处找到在 PKCS7 中使用 bouncy caste 进行签名的指南,它没有更新到最后一个充气城堡版本,但它是一个很好的起点。

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

于 2012-10-02T07:27:36.827 回答
0

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

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

我实际上将使用这种方法对内容进行签名。

于 2012-10-23T18:10:02.247 回答