Ryan Ryan - 11 months ago 108
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 Source

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">