Apple Pay

RSS for tag

Provide a fast, easy, and secure way for users to buy goods and services in your app or on your website using Apple Pay.

Posts under Apple Pay tag

166 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

Payment error:
We are integration with apple pay using amazon_flutter package, and we are receiving the following error: [General] Failed to present in-app payment interface: Error Domain=PKPassKitErrorDomain Code=4 “No entitlement for merchant identifier: XXXXXX” UserInfo={NSLocalizedDescription=No entitlement for merchant identifier: XXXXXX} 2023-11-05 08:27:32.081341+0800 Runner[53987:3815356] [General] Connection to remote alert view service failed Note: XXXXXX is our actual merchant identifier by Amazon payment service for the test environment.
0
0
693
Nov ’23
the object does not support the operation or argument
If the customer closes Apple payment sheet before validation is complete, the error appears. It's not a big deal, but we are improving our performance, so I need to fix this annoying log: My code to validate merchant works and is this (I'm using braintree with apple pay): // Validate merchant session.onvalidatemerchant = async event => { // Do request const response = await getApplePay() console.log(response) if (response.success) { instance.performValidation({ validationURL: event.validationURL, displayName: 'Bucked Up' }, (err, merchantSession) => { if (err) { setLoadingApple(false) session.abort() return } else if(merchantSession) { session.completeMerchantValidation(response.data) setLoadingApple(false) } }) } else { setLoadingApple(false) session.abort() } }
0
1
660
Oct ’23
Apple Pay Js integration: session.completeMerchantValidation() is failing
Hi Team I am trying to integrate apple pay into my system but session.completeMerchantValidation() is failing Error For generating merchant session I am using this url https://apple-pay-gateway-cert.apple.com/paymentservices/paymentSession In response i am getting merchant session but after passing that merchant session I am getting error as mentioned above in the image I am stuck since 2 weeks but not getting any solution, your quick response will clear my blocker Regards Rutvij Doshi
1
0
501
Oct ’23
Apple Pay Payment Processing Certificate
【Event】 The Apple Pay certificate will expire. Used to encrypt Apple Pay tokens. We use stripe. 【Steps】 Download the .certSigningRequest (CSR file) from Stripe (on the Stripe dashboard). Select the merchant ID to add to this certificate, click 'Create Certificate' in the Apple Pay Payment Processing Certificate section (on Apple). When prompted to upload a certificate signing request, select the .certSigningRequest file you have downloaded and proceed to download. Verify that the details of the certificate are correct, and download the certificate locally. Upload the new certificate file on Stripe. Go back to Apple’s Developer Center, select the MerchantID and activate the Apple Pay Payment Processing Certificate (Apple Pay settlement processing certificate) you created. 【Question】 I would like to understand the method for rolling back in case the update of the certificate unexpectedly fails. I am contemplating the following measures; would they be feasible? Preserve the old certificate Reactivate the old certificate once more Additionally, do you have any other proposals?
1
0
1.3k
Oct ’23
F2P Game with Cash Rewards
Does anyone know what are the considerations / requirements of Apple Store to offering cash rewards to users for a free to play game (i.e., not a betting / gambling licensed app)? Our game does not involve real money transactions. We have consulted legal experts who have confirmed that we do not fall under the category of a betting or gambling company, as users are not required to make any payments to enter our competitions. The only requirement to enter to the cash rewarded competitions is to have an in-game asset that you get in the F2P competitions or buy this in-game asset in the store. The cash rewards we offer are distributed solely based on performance in the competitions.
0
0
490
Oct ’23
InvalidAccessError: Must create a new ApplePaySession from a user gesture handler
I have troubles sometimes (with slow internet connections) when the customers clicks on my Buy Now button, i got the error "Must crerate a new ApplePaySession from a user gesture hanlder..." I removed some logics to shipping to nt make this too long, but essentially my code is: export default function ApplePayButton({setLoadingApple}) { // Effects React.useEffect(() => { // listen click const button = document.querySelector('apple-pay-button') if(button){ button.addEventListener('click', startApplePaySession) } return () => { button.removeEventListener('click', startApplePaySession) } }, []) // Methods const selectStep = step => { // Check if step is available if (state.steps.allowed >= step) { dispatch({ type: 'UPDATE_STEPS', data: { ...state.steps, current: step } }) } } const startApplePaySession = () => { const apple = window.buckedup.payment_extensions.find(extension => extension.code === 'apple_pay') if (window.ApplePaySession && apple) { setLoadingApple(true) let clientToken if (window.braintree_config) { const { token } = window.braintree_config clientToken = token } window.braintree.client.create({ authorization: clientToken }, (clientErr, clientInstance) => { if (clientErr) { setLoadingApple(false) console.error('Error creating client:', clientErr) return } window.braintree.applePay.create({ client: clientInstance }, (applePayErr, applePayInstance) => { if (applePayErr) { setLoadingApple(false) console.error('Error creating applePayInstance:', applePayErr) return } const amount = state.totals.amount_due.amount const appleSession = window.ApplePaySession // Build request object const request = applePayInstance.createPaymentRequest({ 'countryCode': 'US', 'currencyCode': 'USD', 'merchantCapabilities': [ 'supports3DS', 'supportsDebit', 'supportsCredit' ], 'shippingMethods': [], 'shippingType': 'shipping', 'supportedNetworks': [ 'visa', 'masterCard', 'amex', 'discover' ], 'requiredBillingContactFields': [ 'postalAddress', 'name' ], 'requiredShippingContactFields': [ 'postalAddress', 'name', 'phone', 'email' ], 'total': { 'label': 'Bucked Up', 'amount': amount, 'type': 'final' } }) // Define ApplePayPaymentRequest const session = new appleSession(3, request) // Validate merchant session.onvalidatemerchant = async event => { // Do request const response = await getApplePay() applePayInstance.performValidation({ validationURL: event.validationURL, displayName: 'Bucked Up' }, (err, merchantSession) => { if (err) { setLoadingApple(false) return } session.completeMerchantValidation(response.data) setLoadingApple(false) }) } // Validate payment method session.onpaymentmethodselected = async event => { // Update totals const totals = await postApplePayment() const update = { 'newTotal': { 'label': 'Bucked Up', 'amount': totals.data.amount_owed } } session.completePaymentMethodSelection(update) } // Request to track shipping user data session.onshippingcontactselected = async event => { // Extract user available const dataShipping = event.shippingContact let body // Do first request to checkout endpoint const responseData = await shippingService(body) if (responseData.success) { // Get Shipping methods const body = { combined_shipments: true } const responseMethods = await getMethods(body) if (responseMethods.success) { const methods = responseMethods.data.shipments // Do request to update totals const responseTotals = await postApplePayment() const update = { 'newTotal': { 'label': 'Bucked Up', 'amount': responseTotals.data.amount_owed }, 'newShippingMethods': mappedMethods } session.completeShippingContactSelection(update) } } } // Authorize purchase session.onpaymentauthorized = async (event) => { applePayInstance.tokenize({ token: event.payment.token }, async (tokenizeErr, payload) => { if (tokenizeErr) { console.error('Error tokenizing Apple Pay:', tokenizeErr) session.completePayment(appleSession.STATUS_FAILURE) return } const nonce = payload.nonce const billing = event.payment.billingContact const shipping = event.payment.shippingContact const body = { shipping, billing } const response = await patchApplePayment(body) if (response.success) { // Process payment const bodyBraintree = { apple_pay: true, payment_method_nonce: nonce } const responseBraintree = await postBraintree(bodyBraintree) if (responseBraintree.success) { // Define ApplePayPaymentAuthorizationResult const result = { 'status': appleSession.STATUS_SUCCESS } session.completePayment(result) location.href = `${API_URL}checkout/thank-you` } } }) } session.oncancel = (event) => { console.log(event, 'session cancel') setLoadingApple(false) selectStep(1) } session.begin() } ) }) } } return ( <apple-pay-button buttonstyle='black' locale='en' type='plane' /> ) }
0
0
935
Oct ’23
Handling Orders from my new App
I am a bit new to app development, spent the last month or so doing an app that handles orders and I integrated the use of firebase as well as notification and apple pay. Now once the payment is done from the app, how do i know what the order is and where do i receive the money, Do i need to create mote handling for that or does it automatically come from apply pay ? Any pointers on this would be very helpful
0
0
526
Oct ’23
I can't add girocard in my wallet sandbox For Apple Pay
I am trying to add girocard in my wallet Sandbox from our app but I am getting an error like in screenshot. Even through PKAddPaymentPassRequestConfiguration is correct, I can't continue provisioning. In that webpage, there is only information regarding credit cards. https://developer.apple.com/apple-pay/sandbox-testing/ Can you please help me regarding that issue? guard let addPaymentPassRequestConfiguration = PKAddPaymentPassRequestConfiguration( encryptionScheme: .ECC_V2 ) else { return } addPaymentPassRequestConfiguration.style = .payment addPaymentPassRequestConfiguration.cardholderName = debitCard.cardholder addPaymentPassRequestConfiguration.primaryAccountSuffix = String(girocard.cardNumber.suffix(4)) addPaymentPassRequestConfiguration.localizedDescription = girocard.cardType.cardDisplayName addPaymentPassRequestConfiguration.paymentNetwork = .girocard guard let addPaymentPassViewController = AddPaymentPassViewController( requestConfiguration: addPaymentPassRequestConfiguration, delegate: self ) else { return } let addPaymentPassRequest = PKAddPaymentPassRequest() addPaymentPassRequest.encryptedPassData = giroCardPaymentPassData.encryptedData addPaymentPassRequest.activationData = giroCardPaymentPassData.activationData addPaymentPassRequest.ephemeralPublicKey = giroCardPaymentPassData.ephemeralPublicKey handler(addPaymentPassRequest)
0
0
414
Oct ’23
Expired certificate apple-pay-gateway.apple.com
Hi, the certificate apple-pay-gateway.apple.com (https://developer.apple.com/documentation/apple_pay_on_the_web/setting_up_your_server) used for payments has expired : Server Key and Certificate #1 Subject apple-pay-gateway.apple.com Fingerprint SHA256: 19a1e3eeb0b13c3aefe03d4c02de6befb4200430ead97ee4150b3e0eaad89ec6 Pin SHA256: 38yRXBg6sU+IsJldFjKUj6TwTqkbVymXhyvMBWxMtV0= Common names apple-pay-gateway.apple.com Alternative names cn-apple-pay-gateway-tj-pod2.apple.com apple-pay-gateway-nc-pod1.apple.com apple-pay-gateway-nc-pod4.apple.com apple-pay-gateway-sh-pod2.apple.com cn-apple-pay-gateway-pr-pod3.apple.com apple-pay-gateway-pr-pod3.apple.com apple-pay-gateway-nc.apple.com apple-pay-gateway-tj-pod1.apple.com apple-pay-gateway-tj-pod2.apple.com apple-pay-gateway-pr-pod5.apple.com cn-apple-pay-gateway-nc-pod4.apple.com cn-apple-pay-gateway-pr-pod1.apple.com cn-apple-pay-gateway-sh-pod3.apple.com cn-apple-pay-gateway.apple.com cn-apple-pay-gateway-tj-pod3.apple.com apple-pay-gateway-nc-pod2.apple.com apple-pay-gateway-pr-pod1.apple.com apple-pay-gateway-pr-pod4.apple.com apple-pay-gateway-sh-pod3.apple.com cn-apple-pay-gateway-sh-pod1.apple.com cn-apple-pay-gateway-nc-pod3.apple.com cn-apple-pay-gateway-pr-pod2.apple.com apple-pay-gateway-nc-pod3.apple.com apple-pay-gateway-pr-pod.apple.com apple-pay-gateway-nc-pod5.apple.com apple-pay-gateway-tj-pod3.apple.com cn-apple-pay-gateway-pr-pod4.apple.com apple-pay-gateway-sh-pod1.apple.com cn-apple-pay-gateway-nc-pod5.apple.com apple-pay-gateway-pr-pod2.apple.com cn-apple-pay-gateway-sh-pod.apple.com cn-apple-pay-gateway-nc-pod1.apple.com apple-pay-gateway.apple.com cn-apple-pay-gateway-nc-pod2.apple.com cn-apple-pay-gateway-sh-pod2.apple.com apple-pay-gateway-pr.apple.com cn-apple-pay-gateway-tj-pod1.apple.com apple-pay-gateway-nc-pod.apple.com Serial Number 0b2ffee60fc2a32e5046bf43075c1f89 Valid from Tue, 18 Jul 2023 10:53:06 UTC Valid until Mon, 16 Oct 2023 11:03:06 UTC (expired 38 minutes and 13 seconds ago) EXPIRED Trusted : No NOT TRUSTED
1
0
589
Oct ’23
Merchant Validation Returns in cURL error 56
Trying to use Apple Pay with the Payment Request API, created a merchant validation with the following details: URL: https://apple-pay-gateway.apple.com/paymentservices/startSession Body: {"merchantIdentifier":"merchant.xxxxxxxxxxxxx","domainName":"labs.xxxxxxxx.com","displayName":"Mxxxxx"} The response is: cURL error 56: OpenSSL SSL_read: OpenSSL/1.1.1p: error:1409445C:SSL routines:ssl3_read_bytes:tlsv13 alert certificate required, errno 0 Any ideas why this could be?
1
0
509
Oct ’23
How generate activationData for In-App Verification?
The Getting Started with Apple Pay documentation states that we should use this method to activate passes with In-App Verification. The main param is the activationData, which is generated by PNOs. The issue is that to generate the activationData, a nonce is required. How can we get the nonce on the In-App Verification context? The only way mentioned in the documentation to get the nonce is through PKAddPaymentPassViewControllerDelegate. But the PKAddPaymentPassViewController should be use only to In-App Provisioning, should not?
1
0
915
Oct ’23