Ryan Ryan - 3 months ago 41
Swift Question

Payment Request is Invalid

So I am just starting with Apple Pay and I set up a Merchant ID and a CSR and I believe I did the setup properly but when prompting the Apple Pay View Controller, my program crashes, saying:

2016-09-05 00:29:47.244 MoneySender[876:325291] Payment request is invalid: check your entitlements

2016-09-05 00:29:47.259 MoneySender[876:325264] Connection to remote alert view service failed


My Code:

let request = PKPaymentRequest()

let SupportedPaymentNetworks = [PKPaymentNetworkVisa, PKPaymentNetworkMasterCard, PKPaymentNetworkAmex]
let ApplePayMerchantID = "myMerchantID"
request.merchantIdentifier = ApplePayMerchantID
request.supportedNetworks = SupportedPaymentNetworks
request.merchantCapabilities = PKMerchantCapability.Capability3DS
request.countryCode = "US"
request.currencyCode = "USD"
let contact = PKContact()
let nc = NSPersonNameComponents()
nc.familyName = "myName"
nc.givenName = "myNamw"
nc.middleName = "myName"
var phoneNumber = CNPhoneNumber()
phoneNumber = CNPhoneNumber(stringValue: "myNumber")
contact.emailAddress = "myEmail"
contact.name = nc
let postalAddress = CNMutablePostalAddress()
postalAddress.city = "myCity"
postalAddress.country = "United States of America"
postalAddress.postalCode = "myPostal"
postalAddress.state = "myState"
postalAddress.street = "myAddress"

contact.postalAddress = postalAddress
contact.phoneNumber = phoneNumber
request.billingContact = contact
request.paymentSummaryItems = [
PKPaymentSummaryItem(label: item_description, amount: NSDecimalNumber(double: item_price))
]

let applePayController = PKPaymentAuthorizationViewController(paymentRequest: request)


self.presentViewController(applePayController, animated: true, completion: nil)
applePayButton.hidden = !PKPaymentAuthorizationViewController.canMakePaymentsUsingNetworks(SupportedPaymentNetworks)


Entitlements File:

enter image description here

Answer

Here's the entitlements file in its entirety:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.developer.in-app-payments</key>
    <array>
        <string>my-merchant-id</string>
    </array>
</dict>
</plist>
Comments