Apple Pay

RSS for tag

Discuss how to integrate Apple Pay into your app for secure and convenient payments.

Apple Pay Documentation

Post

Replies

Boosts

Views

Activity

Time to get NFC Apple Wallet Cert
HiHow long does it take to get an NFC Certificate from Apple? So that we can delivery NFC Enabled Loyalty Passes.We registered at the following address but haven't received any communication for over 2 weeks.https://developer.apple.com/contact/passkit/We are developing solutions for our clients and need to test the technology.We use different PassTypeIDs for each of our Customers so it's likely we will need a different NFC certificate for each of our customers.How do we get NFC Certificates in bulk so that we can deliver NFC Loyalty Programmes to our Customers?Thanks
11
0
9.1k
Nov ’17
MerchantId is not a registered merchant in WWDR and isn't properly authorized via Mass Enablement, either.
Hi,- I have a developer account with Apple- I have created the Payment Processing Certificate- I have done the merchant validation- I have created the Merchant Identity CertificateWhen I call the function 'session.onvalidatemerchant', visit the url: https://cn-apple-pay-gateway-tj-pod1.apple.com/paymentservices/startSession(event.validationURL), I received a error:{ "statusMessage": "Payment Services Exception merchantId=BECD61522C23F5C8200759A03B67E19730D3F6A03C7DDD1470D64B0DF6F28078 unauthorized to process transactions on behalf of merchantId=1BAE2D40CDB3552D32815FA54BFBDFBAFFE94047CC198087DB502A7C6F9448B1 reason=\"1BAE2D40CDB3552D32815FA54BFBDFBAFFE94047CC198087DB502A7C6F9448B1 is not a registered merchant in WWDR and isn't properly authorized via Mass Enablement, either.\"", "statusCode": "417"}But when I make the same request on a Chinese server, I received a successful result.I hope to get successful results on servers in the United States.Please help.ThanksFan
4
0
5.4k
Feb ’19
Apple Wallet geofencing notification
Hi, I'm new to wallet, but I already implemented a Loyalty Pass with some use cases: distributing, pushing updates, standard notifications, geofencing notifications with lock screen notifications. Until a month ago, all worked flawlessy, but now the majority of my audience (the users that have installed the pass in their Apple Wallet) don't see the notifications when they enter in the location radius. The strange thing is that with the same json content (same id, same locations list, same coordinates) some users see said notification without a hassle while the other see nothing, even toggling on and off all the related permissions. I suspect (only a suspect, I'm going by exclusion) that the new device subscriptions are those who don't see the notifications and only the old ones see everything as before. Any suggestion? Do a users dashboard (or at least a device subscription list) exist in my Apple Developer portal? Is a known bug, already reported? Thanks for all your replies
1
0
1.8k
Sep ’20
Adding Card to Apple Wallet is failing in Sandbox
I work for a bank application, we are trying to add the card to apple wallet programatically, we have generated the certificates, nonce and nonceSignature and able to ger empherialKey, activationData and encryptedPassData from our servers. Now when I'm calling the handler with PKAddPaymentPassRequest, I'm getting the error Your Card Issuer Does Not Yet Offer Support for This Card. I'm testing this in Sandbox environment. Can you please help me ?
2
0
1k
Jun ’21
ApplePay Payment Session without Private Key
I am adding ApplePay using Chase. Chase provided me with the certificate signing request and we created the certificate, but they say they cant provide us with the private key used to create the .csr, so every time I try to create the ApplePay Payment Session (https://developer.apple.com/documentation/apple_pay_on_the_web/apple_pay_js_api/requesting_an_apple_pay_payment_session), I got an error as I am passing only the certificate. If I create the .csr then I can sucessfully create the ApplePay Payment Session because I also have the private key, but as it wasnt created by Chase, it doesnt contain their info and they reject it. So, It is possible to request the ApplePay Payment Session without the private key? I tried creating an p12 file, but I dont get that option as it doesnt find the private key in the pc and I tried to install the certificate in the store, but when I read it, it doesnt have the private key and it fails in Apple
7
0
2.6k
Oct ’21
Apple Wallet Pass Creation
I'm trying to build my first Apple Wallet Pass and I've been following the tutorial here: https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/PassKit_PG/YourFirst.html I get to this point but it fails: To sign and compress the pass, use the signpass tool to sign the pass package. In Terminal, run the following commands: cd ~/Documents ./signpass -p Lollipop.pass These commands create a signed and compressed pass named Lollipop.pkpass in the Documents folder. If the signpass command fails, make sure you are using your correct pass type identifier and check that the pass.json file contains valid JSON. Here is the error I get from Terminal: 2021-10-21 10:44:11.678 signpass[1461:45126] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil' *** First throw call stack: ( 0   CoreFoundation                      0x000000019194f838 __exceptionPreprocess + 240 1   libobjc.A.dylib                     0x00000001916790a8 objc_exception_throw + 60 2   Foundation                          0x00000001926962ec -[_NSJSONReader init] + 0 3   signpass                            0x00000001000fe044 +[PassSigner passTypeIdentifierForPassAtURL:] + 124 4   signpass                            0x00000001000fe4d8 +[PassSigner signPassWithURL:certSuffix:outputURL:zip:] + 1124 5   signpass                            0x00000001000fdc9c main + 864 6   libdyld.dylib                       0x00000001917f1430 start + 4 ) libc++abi: terminating with uncaught exception of type NSException zsh: abort      ./signpass -p Lollipop.pass Any help would be appreciate as I would love to create a Wallet Pass for my customers, but can't seem to get past this error. Thank you, Darren
4
1
1.4k
Oct ’21
Apple pay - Showing shipping methods in an array
We have had this issue for nearly 1 year now - and any help would be greatly appreciated. When a customer arrives at the cart they see the Apple pay option and various shipping methods. Orders over £25 qualify for free 48 hrs delivery and orders over £50 its 24 hrs shipping option. These are manual shipping methods we have in place and set up for all UK customers. Our issue is that we also have calculated rates for UPS via Shipstation and easypost and for some reason these appear 1st (Due to the way the ecom platform core code functions) in the apple pay prompt and it auto selects the 1st option and it is a UPS at around £10. As it is an express payment method our customers are maybe in a hurry and they do not notice this and the fact that the shipping method needs to be manually selected even if your order qualifies for free shipping. We are aware that this causes frustration for our customers and a very time consuming process for us as we refund the difference many times a week. Our developers are stuck and provided the following notes - I have implemented this sorting using different approaches, but it looks like changing the order of the shipping options is causing an issue with apple pay. I can't properly test the apple pay button. I can reorder the shipping options on the cart page, this seems to work for the regular checkout but it creates a problem with apple pay. I've tried multiple ways to reorder the list here, but it breaks apple pay. Re the stripe code that the client mentioned - I could be wrong here - but I think shipping options never actually get passed to stripe - only the cart total and the cart items - that's it - null variable for shipping options. There is a changeShippingOptions function in the Stripe code, but i've tested updating the address and shipping options during the cart/checkout process but that part of the code doesn't get called. Regarding the last point raised, all the shipping methods available do show in the apple pay prompt as they would in the regular checkout, so I am not sure what they mean by this. This is in contrast to what stripe have advised - Apologies for the delay in our response on this one, but the shipping options are sequential in the sense that they display in order of how they were passed with the code. Changing your code to include the "free" option first will then make that the default when a customer enters your payment form: shippingOptions: [ // The first shipping option in this list appears as the default // option in the browser payment interface. { ^^ the code above is an example of this. A huge show of appreciation to anyone that can provide any advice or suggestions on this. https://www.waterstreetgallery.co.uk/ This is the stripe script that enables Apple pay In particular the line - var firstShippingOption = shippingOptions[0]; - I think is what is pulling in the options, we just need to tell it to prioritise Some methods over others. An alteration to the code below was written by our developers that showed the shipping methods in an array but when they replaced it the Apple pay would not complete and after about 25 seconds payment not complete. Any suggestions would be much appreciated 😀 `
5
0
2.3k
Jan ’22
Apple Pay on the Web localhost testing
I'm wanting to implement and test Apple Pay on the Web using my localhost instance. I've managed to set everything up correctly and so I'm able to get a merchant session from the Apple Pay API, but the client code immediately calls oncancel after calling session.completeMerchantValidation. After following this I'm seeing the following in the terminal: com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitCore) [com.apple.passkit:Payment] Evaluating merchant session using PROD trust policy. com.apple.PassKit.PaymentAuthorizationUIExtension: (PassKitCore) [com.apple.passkit:Payment] Application failed to provide a valid merchant session. We can't proceed to authorize the transaction. From reading various online sources, including the documentation referenced above, it seems like this might be happening because localhost isn't a validated/verified domain under our merchant account which also means using localhost seems to be out of the question for local development. I was hoping that using the sandbox account would have been enough to maybe loosen up the domain requirement, but not so. Anything that can be set either on the account or in code to allow for the use of localhost with Sandbox accounts or is there some tool that I need to use for this or is this really only test-able under our sandbox domain?
2
0
2.5k
Feb ’22
Apple Pay, domain verification automatic renewal not working
Hi everyone, We are integrating Apple Pay on the Web, and we're trying to get the automatic renewal of the domain verification working according to the documentation: https://developer.apple.com/documentation/apple_pay_on_the_web/maintaining_your_environment Initially the domain verification is successful, but then the automatic renewal does not work. We keep getting the emails with the subject "Your domain will expire soon.", but they only say "We were unable to automatically to reverify your domain." without any further details. We confirmed that the site's SSL certificate has already been renewed by the time Apple attempted the renewal of verification, the certs are renewed 30 days before their expiry (using Let's Encrypt). So according to the docs, at least the renewal attempts 15, and then 7 days before the expiry should be successful. One example domain is this one: https://www.kayak.com/.well-known/apple-developer-merchantid-domain-association.txt, but we have the same issue for all our other domains as well. Does anyone have suggestions how to troubleshoot this further? (I tried creating a support ticket, but they basically replied that they're non-technical, and just linked me to the documentation. I've seen others complaining about this too, but couldn't find a conclusive solution, so I thought I'd signal boost and create a fresh topic to see if there are any more recent findings about this problem.) Thanks! Regards, Mark
6
3
2.8k
Mar ’22
Apple pay is not available for this website Error
I'm getting "Apple pay is not available for this website" error on SB after the onpaymentmethodselected event (not getting error onvalidatemerchant event) and the onPaymentAuthorised doesn't get hit at all. Here's my session data { "epochTimestamp":1652440219969, "expiresAt":1652443819969, "merchantSessionIdentifier":"SSH37EBB5A957294F0FBBD4F9C496317E1E_916523AAED1343F5BC5815E12BEE9250AFFDC1A17C46B0DE5A943F0F94927C24", "nonce":"51b5b6b1", "merchantIdentifier":"1B0FD6FCF62FBDA91A08BA2A18F4283AC1FFF6B69FC191B9F886482370BFC729", "domainName":"d176lcemp34qxj.cloudfront.net", "displayName":"Shamim", "signature":"308006092a864886f70d010702a0803080020101310f300d06096086480165030402010500308006092a864886f70d0107010000a080308203e43082038ba003020102020859d8a1bcaaf4e3cd300a06082a8648ce3d040302307a312e302c06035504030c254170706c65204170706c69636174696f6e20496e746567726174696f6e204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b3009060355040613025553301e170d3231303432303139333730305a170d3236303431393139333635395a30623128302606035504030c1f6563632d736d702d62726f6b65722d7369676e5f5543342d53414e44424f5831143012060355040b0c0b694f532053797374656d7331133011060355040a0c0a4170706c6520496e632e310b30090603550406130255533059301306072a8648ce3d020106082a8648ce3d030107034200048230fdabc39cf75e202c50d99b4512e637e2a901dd6cb3e0b1cd4b526798f8cf4ebde81a25a8c21e4c33ddce8e2a96c2f6afa1930345c4e87a4426ce951b1295a38202113082020d300c0603551d130101ff04023000301f0603551d2304183016801423f249c44f93e4ef27e6c4f6286c3fa2bbfd2e4b304506082b0601050507010104393037303506082b060105050730018629687474703a2f2f6f6373702e6170706c652e636f6d2f6f63737030342d6170706c65616963613330323082011d0603551d2004820114308201103082010c06092a864886f7636405013081fe3081c306082b060105050702023081b60c81b352656c69616e6365206f6e207468697320636572746966696361746520627920616e7920706172747920617373756d657320616363657074616e6365206f6620746865207468656e206170706c696361626c65207374616e64617264207465726d7320616e6420636f6e646974696f6e73206f66207573652c20636572746966696361746520706f6c69637920616e642063657274696669636174696f6e2070726163746963652073746174656d656e74732e303606082b06010505070201162a687474703a2f2f7777772e6170706c652e636f6d2f6365727469666963617465617574686f726974792f30340603551d1f042d302b3029a027a0258623687474703a2f2f63726c2e6170706c652e636f6d2f6170706c6561696361332e63726c301d0603551d0e041604140224300b9aeeed463197a4a65a299e4271821c45300e0603551d0f0101ff040403020780300f06092a864886f76364061d04020500300a06082a8648ce3d0403020347003044022074a1b324db4249430dd3274c5074c4808d9a1f480e3a85c5c1362566325fbca3022069369053abf50b5a52f9f6004dc58aad6c50a7d608683790e0a73ad01e4ad981308202ee30820275a0030201020208496d2fbf3a98da97300a06082a8648ce3d0403023067311b301906035504030c124170706c6520526f6f74204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b3009060355040613025553301e170d3134303530363233343633305a170d3239303530363233343633305a307a312e302c06035504030c254170706c65204170706c69636174696f6e20496e746567726174696f6e204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b30090603550406130255533059301306072a8648ce3d020106082a8648ce3d03010703420004f017118419d76485d51a5e25810776e880a2efde7bae4de08dfc4b93e13356d5665b35ae22d097760d224e7bba08fd7617ce88cb76bb6670bec8e82984ff5445a381f73081f4304606082b06010505070101043a3038303606082b06010505073001862a687474703a2f2f6f6373702e6170706c652e636f6d2f6f63737030342d6170706c65726f6f7463616733301d0603551d0e0416041423f249c44f93e4ef27e6c4f6286c3fa2bbfd2e4b300f0603551d130101ff040530030101ff301f0603551d23041830168014bbb0dea15833889aa48a99debebdebafdacb24ab30370603551d1f0430302e302ca02aa0288626687474703a2f2f63726c2e6170706c652e636f6d2f6170706c65726f6f74636167332e63726c300e0603551d0f0101ff0404030201063010060a2a864886f7636406020e04020500300a06082a8648ce3d040302036700306402303acf7283511699b186fb35c356ca62bff417edd90f754da28ebef19c815e42b789f898f79b599f98d5410d8f9de9c2fe0230322dd54421b0a305776c5df3383b9067fd177c2c216d964fc6726982126f54f87a7d1b99cb9b0989216106990f09921d00003182018d30820189020101308186307a312e302c06035504030c254170706c65204170706c69636174696f6e20496e746567726174696f6e204341202d20473331263024060355040b0c1d4170706c652043657274696669636174696f6e20417574686f7269747931133011060355040a0c0a4170706c6520496e632e310b3009060355040613025553020859d8a1bcaaf4e3cd300d06096086480165030402010500a08195301806092a864886f70d010903310b06092a864886f70d010701301c06092a864886f70d010905310f170d3232303531333131313031395a302a06092a864886f70d010934311d301b300d06096086480165030402010500a10a06082a8648ce3d040302302f06092a864886f70d01090431220420463e324ef2a67be4caad2196e90cd77e4a215ee2e2dee5ebb37bc5f18d4f0e76300a06082a8648ce3d04030204483046022100b1aef11ea8f5940eef195c13d0879528ff6ddd59a671aaede8bdb0a4a0aafc290221009257a1f32bfea292d8cd819682343d840b75a1d332c3154c33b701a3b8c0166b000000000000", "operationalAnalyticsIdentifier":"Shamim:1B0FD6FCF62FBDA91A08BA2A18F4283AC1FFF6B69FC191B9F886482370BFC729", "retries":0, "pspId":"1D867D2918895F195CF99A0BCCA8B3E63C0AB3FC997F254501617482BBCF21F9" } and this is the url that i'm testing with https://d176lcemp34qxj.cloudfront.net/MerchantSiteSB.html Can somebody please assist to find the issue? or how should i get more details on the error?
6
0
1.9k
May ’22
Not able to add pass to wallet
Hi, I am trying to develop "Add to Apple Pay" feature in our mobile app and been following "Getting Started with Apple Pay In-App Provisioning, Verification & Security 3.0" documentation provided. The issue is after getting encryptedPassData, activationData and ephemeralPublicKey back from our provider, constructing the PKAddPaymenetPassRequest with these values and passing it to the handler is failing. Below is the source code for reference. ---------*** PKAddPaymentPassRequest *request = [[PKAddPaymentPassRequest alloc] init];      NSString* encryptedPassData = args[@"encryptedPassData"];   NSString* activationData =args[@"activationData"];   NSString* ephemeralPublicKey = args[@"ephemeralPublicKey"];      NSData* encryptedPassDataData = [[NSData alloc] initWithBase64EncodedString:encryptedPassData options:0];   NSData* activationDataData = [[NSData alloc] initWithBase64EncodedString:activationData options:0];   NSData* ephemeralPublicKeyData = [[NSData alloc] initWithBase64EncodedString:ephemeralPublicKey options:0];      request.encryptedPassData = encryptedPassDataData;   request.activationData = activationDataData;   request.ephemeralPublicKey = ephemeralPublicKeyData;   handler(request);
2
0
1.3k
Jul ’22