ข้ามไปยังเนื้อหาหลัก

Apple Pay [BETA]

เปิดใช้งาน Apple Pay เพื่อให้ลูกค้าของคุณสามารถชำระเงินโดยใช้บัตรเครดิตหรือบัตรเดบิตที่เชื่อมต่อกับ Apple Wallet ได้ คู่มือนี้จะอธิบายขั้นตอนการชำระเงินและวิธีการติดตั้งใช้งานบริการนี้

ภูมิภาคที่รองรับ

ภูมิภาคสกุลเงินรองรับการคืนเงินเวอร์ชัน API ขั้นต่ำ
สิงคโปร์SGDใช่2017-11-02

วิธีเปิดใช้งาน

หากต้องการเปิดใช้งาน Apple Pay โปรดส่งอีเมลขอเปิดใช้งานฟีเจอร์นี้ไปที่ support@omise.co

ขั้นตอนการชำระเงิน

Apple Pay รองรับการชำระเงินบนเว็บไซต์ ลูกค้าที่เลือกชำระเงินด้วย Apple Pay จะเริ่มทำธุรกรรมโดยการแตะหรือคลิกปุ่ม Apple Pay ที่ฝังอยู่ในแพลตฟอร์มของคุณ ลูกค้าที่เชื่อมต่อบัตรกับ Apple Wallet ไว้แล้วจะสามารถเลือกบัตรที่ต้องการได้ทันที ส่วนผู้ที่ยังไม่ได้เชื่อมต่อจะได้รับตัวเลือกให้เชื่อมต่อบัตรใหม่

เมื่อลูกค้าเลือกบัตรที่ต้องการและยืนยันการชำระเงินแล้ว บัตรจะถูกเรียกเก็บเงินในลักษณะเดียวกับขั้นตอนการชำระเงินด้วยบัตรเครดิตปกติ การตั้งค่าการประมวลผลบัตรปัจจุบันของบัญชีคุณอาจมีผลกับธุรกรรม Apple Pay

สำคัญ

ธุรกรรม Apple Pay จะถูกประมวลผลแบบ non-3D Secure เท่านั้น

การใช้งานบนเบราว์เซอร์เดสก์ท็อป

ในการเริ่มต้นการชำระเงินด้วย Apple Pay: (1) ลูกค้าเลือก Apple Pay เป็นวิธีการชำระเงินระหว่างการชำระเงินบนเว็บไซต์ของคุณ (2) จากนั้นลูกค้าเลือกบัตรเครดิตหรือบัตรเดบิตที่เชื่อมต่อกับ Apple Wallet ตรวจสอบและยืนยันการชำระเงิน (3) เมื่อยืนยันแล้ว Omise จะส่ง webhook event (หากเปิดใช้งาน) แจ้งว่าการเรียกเก็บเงินเสร็จสมบูรณ์

แนวทางปฏิบัติ

ก่อนใช้งาน Apple Pay บนเว็บไซต์ของคุณ โปรดตรวจสอบให้แน่ใจว่าการติดตั้งของคุณเป็นไปตาม Acceptable Use Guidelines for Apple Pay on the Web

Apple Pay Desktop Flow

การติดตั้ง

ปฏิบัติตาม Marketing Guidelines ของ Apple Pay เพื่อเพิ่มปุ่มชำระเงิน Apple Pay บนเว็บไซต์ของคุณ หลังจากลูกค้าแตะปุ่มและเลือกบัตรแล้ว คุณจะได้รับ Apple Pay token ที่มีข้อมูลบัตร จากนั้นคุณส่ง token ประเภทนี้ไปยัง Token API ของเราเพื่อรับ card token ที่สามารถใช้กับ Charge API ได้

Omise ถือว่า Apple Pay token เป็นข้อมูลบัตรที่มีความละเอียดอ่อน ดังนั้น หากคุณไม่มีใบอนุญาต PCI-DSS token เหล่านี้จะต้องถูกแปลงเป็น card token ก่อนที่คุณจะสามารถใช้งานบนเซิร์ฟเวอร์ได้ อ่านเพิ่มเติมได้ที่ การเก็บข้อมูลบัตร

โดยสรุป ให้ทำการร้องขอ API ต่อไปนี้เพื่อสร้างการเรียกเก็บเงินด้วย Apple Pay:

  1. รับ Apple Pay token จาก Apple เมื่อผู้ใช้เริ่มการชำระเงินผ่านปุ่ม Apple Pay
  2. สร้าง card token จาก Apple Pay token โดยใช้ Omise.js
  3. สร้างการเรียกเก็บเงินโดยใช้ card token ที่ได้จากขั้นตอนที่ 2
  4. หลังจากได้รับ webhook event แจ้งการเรียกเก็บเงินเสร็จสมบูรณ์ ให้ดึงข้อมูลการเรียกเก็บเงินเพื่อตรวจสอบสถานะ (ไม่บังคับ แต่แนะนำ)

แผนภาพลำดับต่อไปนี้แสดงวิธีการรับ card token:

การกำหนดค่าสภาพแวดล้อม Apple Pay

เพื่อรองรับ Apple Pay บนเว็บไซต์หรือแอปพลิเคชันของคุณ คุณต้องทำขั้นตอนการตั้งค่าบางอย่างก่อนที่จะสามารถใช้ Apple Pay web และ/หรือ app API ได้ Omise มีตัวเลือกต่อไปนี้

ตัวเลือกรองรับ
1. ใช้บัญชี Apple developer ของ Omiseเว็บเท่านั้น

ใช้บัญชี Apple Developer ของ Omise

คุณสามารถเปิดใช้งาน Apple Pay บนเว็บไซต์ของคุณโดยใช้ Omise merchant identifier ที่จัดเตรียมให้ โดยไม่ต้องสร้างบัญชี Apple developer วิธีนี้รองรับเฉพาะการเชื่อมต่อผ่านเว็บเท่านั้น

ทำตามขั้นตอนเหล่านี้เพื่อรับ Apple Pay merchant ID และ merchant identity certificate และยืนยันโดเมนของคุณสำหรับการเชื่อมต่อ Apple Pay ผ่านเว็บ

การรับ Apple Pay merchant ID และ Apple merchant identity certificate

คุณสามารถรับ Apple merchant ID และ Apple merchant identity certificate ได้จาก Omise dashboard

Omise Certificate Dashboard

การหมดอายุของ Certificate

merchant identity certificate เป็น Transport Layer Security (TLS) certificate ที่เชื่อมโยงกับ merchant ID ของคุณ ใช้สำหรับยืนยันตัวตนเซสชันของคุณกับเซิร์ฟเวอร์ Apple Pay เพื่อให้บริการไม่หยุดชะงัก โปรดดาวน์โหลด certificate ใหม่โดยใช้รายละเอียดเว็บไซต์ของคุณก่อนที่ certificate ปัจจุบันจะหมดอายุ

ยืนยันโดเมนเว็บของคุณกับ Omise

ลงทะเบียนโดเมนร้านค้าของคุณที่จะแสดงปุ่ม Apple Pay กับ Omise ผ่านอีเมลที่ support@omise.co เพื่อรับไฟล์ domain association และโฮสต์ไฟล์นี้ที่ https://[DOMAIN_NAME]/.well-known/apple-developer-merchantid-domain-association บนเว็บไซต์ของคุณ จากนั้น Omise จะดำเนินการยืนยันโดเมนของคุณ

การตรวจสอบโดเมน

สำหรับการตรวจสอบโดเมน Apple Pay โปรดอ้างอิง Apple Pay - Setting up your server โดเมนของคุณต้องสามารถเข้าถึงได้โดยตรงจากเซิร์ฟเวอร์ Apple โดยไม่มี proxy หรือ redirect ลงทะเบียนและยืนยันโดเมนระดับบนสุดทั้งหมด (เช่น omise.co) และ subdomain (เช่น shop.omise.co) แยกกัน

หากคุณต่ออายุ SSL certificate ก่อนหมดอายุ Apple จะคงการยืนยันโดเมนโดยอัตโนมัติ อย่างไรก็ตาม คุณต้องยืนยันโดเมนใหม่กับ Omise หาก certificate ของคุณหมดอายุ

การรับ Apple Pay Token

เมื่อการกำหนดค่าเสร็จสมบูรณ์แล้ว คุณสามารถเพิ่มปุ่ม Apple Pay บนเว็บไซต์และรับ Apple Pay token ได้

โปรดปฏิบัติตามเอกสารสำหรับนักพัฒนา Apple Pay เพื่อแสดงปุ่ม Apple Pay เชื่อมต่อกับ Apple API และรับ Apple Pay token:

ในการร้องขอการชำระเงิน ตรวจสอบให้แน่ใจว่าฟิลด์ต่อไปนี้เป็นไปตามแนวทางเหล่านี้:

  • ฟิลด์ supportedNetworks ควรสะท้อนแบรนด์บัตรที่รองรับจาก Capability API
  • ฟิลด์ merchantIdentifier คือ Apple Pay merchant identifier

หลังจากนั้น คุณจะได้รับ token จาก Apple Pay Apple Pay token ควรใช้ภายใน 5 นาที

{
"data": "...",
"signature": "...",
"header": {
"publicKeyHash": "...",
"ephemeralPublicKey": "...",
"transactionId": "..."
},
"version": "EC_v1"
}

การสร้าง Card Token

เมื่อคุณได้รับ Apple Pay token แล้ว ให้สร้าง card token โดยใช้พารามิเตอร์การสร้าง token ต่อไปนี้

ชื่อประเภทคำอธิบาย
methodstring(จำเป็น) ตั้งค่าเป็น applepay
datastring(จำเป็น) Apple Pay token
merchant_idstring(จำเป็น) Apple Merchant identifier
brandstring(จำเป็น) แบรนด์บัตรที่เลือก (Web)
billing_namestring(ไม่บังคับ แต่แนะนำ) ชื่อเจ้าของบัตร
billing_citystring(ไม่บังคับ แต่แนะนำ) เมืองที่อยู่สำหรับเรียกเก็บเงิน
billing_countrystring(ไม่บังคับ แต่แนะนำ) ประเทศที่อยู่สำหรับเรียกเก็บเงินเป็นรหัส ISO 3166 สองตัวอักษร
billing_postal_codestring(ไม่บังคับ แต่แนะนำ) รหัสไปรษณีย์ที่อยู่สำหรับเรียกเก็บเงิน
billing_statestring(ไม่บังคับ แต่แนะนำ) รัฐ/จังหวัดที่อยู่สำหรับเรียกเก็บเงิน
billing_street1string(ไม่บังคับ แต่แนะนำ) ที่อยู่สำหรับเรียกเก็บเงินบรรทัดที่ 1
billing_street2string(ไม่บังคับ) ที่อยู่สำหรับเรียกเก็บเงินบรรทัดที่ 2
billing_phone_numberstring(ไม่บังคับ) หมายเลขโทรศัพท์ที่อยู่สำหรับเรียกเก็บเงิน
ข้อมูลการเรียกเก็บเงิน

โดยค่าเริ่มต้น ชื่อผู้ถือบัตรและที่อยู่สำหรับเรียกเก็บเงินจะไม่ถูกแนบไปกับ card token และชื่อจะแสดงเป็น Apple Pay หากต้องการเปลี่ยนพฤติกรรมนี้ ให้ระบุฟิลด์ billing contact (Web) เมื่อร้องขอการชำระเงินจาก Apple

card token สามารถใช้เพื่อสร้างการเรียกเก็บเงินได้ภายใน 10 นาที

สำหรับ Omise.js ให้ตั้งค่าประเภท token input เป็น tokenization เป็นอาร์กิวเมนต์แรกของฟังก์ชัน createToken และส่งพารามิเตอร์การสร้าง token เป็นอาร์กิวเมนต์ที่สอง

Omise.setPublicKey("your_omise_public_key");

tokenParameters = {
method: 'applepay',
data: '{"data":"Ls06CdzKeOXc1AtBgszMr8JF+DbIOj4LyQcQbVnC+RjihUa+SPwRcIVLzUwaFpHlM4atA3Ls2BXA2mg97WIECfnssAYRGWRcjyKtUqEfNR+tT7ztRCYVGIL4hdNMqTNBk+xYPb6ztGIKzN5xPetcausII8oNnyRjC2vmLIlMojOFQUWdqJURrkyPkwpC7adx6EAXy4prId/ZhXBE10d0JZ0wInM1/Tg08rMsLQOob9qP+QrFmJ3Pc0QFDLT/kxuOz7xRYmv07tAd5QkTEQ4VvjxzPc80YcEYBti236m5NZ8x3iN+AD7ZmZ8vke/aGltywKaMrkVpVlmYdKd+eca6FjKMOvn80uXtRrnmO3Wu44b5OIQf/LODUFl4s0nWiho2xC8ZU9i3hSKUdQS9cJxjJJhAJhX3axM641Epf7F7jQ==","signature":"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","header":{"publicKeyHash":"vRQNoc2OWcP7vDrLcGZ8QMnUH784bNV+1mmh65Z/kx4=","ephemeralPublicKey":"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7uNpkxQ6EFIKMQc/8o68mtrXACyiDGUPVYZUD7ZmtVTCoao41U0w12DdXnDb5HidaYbJzJtoFIr+3q6d4k/h3g==","transactionId":"ac06f094edb34a6fc568ed5847acca0076103f5fe49f5624f941dd420b574268"},"version":"EC_v1"}',
merchant_id: 'merchant.omise.sg.prod',
brand: 'Visa'
};

Omise.createToken('tokenization', tokenParameters, function(statusCode, response) {
console.log(response)
});

แอตทริบิวต์ id คือตัวระบุ token (ขึ้นต้นด้วย tokn)

การสร้างการเรียกเก็บเงิน

อ้างอิง การชำระเงินด้วยบัตรเครดิต เพื่อเรียกเก็บเงินจากบัตรด้วย card token ที่ได้รับ มีความแตกต่างบางประการระหว่าง card token ที่สร้างจากวิธีการสร้าง token เฉพาะ (applepay) เมื่อเทียบกับแบบปกติ:

  1. card token เหล่านี้มีฟิลด์ tokenization_method เพื่อบอกว่าใช้วิธีการสร้าง token แบบใดกับบัตร
  2. card token เหล่านี้ไม่สามารถใช้ใน Customers API ได้

ตัวเลือกเพิ่มเติม

เมื่อใช้ แบบฟอร์มชำระเงินสำเร็จรูป คุณสามารถตั้งค่าตัวเลือกการกำหนดค่าเพิ่มเติมเพื่อควบคุม Apple Pay API ได้มากขึ้น พารามิเตอร์ที่เกี่ยวข้องมีดังนี้

Data AttributeParameterคำอธิบาย
data-applepay-validation-urlapplepayValidationUrlURL สำหรับตรวจสอบเซิร์ฟเวอร์ของคุณและรับ merchant session object สำหรับ Apple Pay (จำเป็นเมื่อรับการเข้าชมจริง)
data-applepay-merchant-idapplepayMerchantIdMerchant ID สำหรับ Apple Pay (จำเป็นเมื่อรับการเข้าชมจริง)
data-applepay-request-billing-addressapplepayRequestBillingAddressตั้งค่าเป็น true เพื่อแนบชื่อผู้ถือบัตรและที่อยู่สำหรับเรียกเก็บเงินกับ card token การระบุข้อมูลนี้ช่วยปรับปรุงอัตราการอนุมัติสำหรับผู้ถือบัตรในสหรัฐอเมริกา สหราชอาณาจักร และแคนาดา

รายการพารามิเตอร์ทั้งหมดที่รองรับสามารถดูได้ที่นี่

การตรวจสอบร้านค้า

ระหว่างการชำระเงิน แบบฟอร์มชำระเงินสำเร็จรูปจะส่ง POST request ไปยัง validation endpoint ที่ระบุในแอตทริบิวต์ data-applepay-validation-url โดยอัตโนมัติ request นี้จะรวม validationURL ที่ Apple ให้มาระหว่าง onvalidatemerchant event

เซิร์ฟเวอร์ของคุณต้องจัดการ request นี้โดยใช้ Apple Merchant Identity Certificate เพื่อขอ merchant session object จาก Apple จากนั้นตอบกลับด้วย object นั้น แบบฟอร์มสำเร็จรูปต้องการ session object นี้เพื่อทำ Apple Pay session ให้เสร็จสมบูรณ์ผ่านเมธอด completeMerchantValidation()

เพื่อติดตั้งอย่างถูกต้อง โปรดปฏิบัติตามคู่มือของ Apple เรื่อง Requesting an Apple Pay payment session สำหรับบริบทเพิ่มเติม โปรดดู Providing Merchant Validation

การทดสอบ

เพื่อทดสอบ user journey ทั้งหมด คุณต้องมีบัญชี Apple ที่รองรับ Apple Wallet และบัตรที่สามารถเรียกเก็บเงินได้ เราแนะนำให้ใช้ บัญชี Apple sandbox tester และแนบบัตรทดสอบที่ Apple จัดเตรียมให้ สำหรับโหมดทดสอบ

คุณสามารถสร้าง token และการเรียกเก็บเงินด้วย Omise test key เพื่อจำลองการเรียกเก็บเงินที่สำเร็จ และหมายเลขบัตรจะเป็น 4111 1111 1111 1111 เสมอในระบบของเรา โปรดทราบว่าขั้นตอนการกำหนดค่าสภาพแวดล้อม Apple Pay ก็จำเป็นเช่นกันเมื่อใช้ Omise test key

แหล่งข้อมูลที่เกี่ยวข้อง