Tải trước thông tin khách hàng lặp lại vào Zonos Checkout.
Hồ sơ khách hàng hợp lý hóa trải nghiệm thanh toán của bạn bằng cách cho phép khách hàng có tài khoản tải trước địa chỉ và chi tiết thanh toán của họ.
Tính năng này hiện chỉ có sẵn cho tích hợp API tùy chỉnh. Tính năng này chưa có sẵn cho những nhà bán hàng sử dụng các plugin Checkout.
Nếu bạn bán hàng cho nhà bán lại, cơ quan chính phủ hoặc tổ chức phi lợi nhuận, bạn cũng có thể đồng bộ hóa chứng nhận miễn thuế của họ vào một hồ sơ khách hàng.
1
Gửi thông tin khách hàng được xác thực
Để xác thực hồ sơ khách hàng, máy chủ backend của bạn phải thực hiện hai lệnh gọi API độc lập, chúng tôi khuyên bạn nên chạy song song để có hiệu suất tốt hơn:
createCart: Tạo giỏ hàng Zonos. Để được hướng dẫn chi tiết, hãy tham khảo phần Thiết lập Zonos Checkout trong tài liệu tích hợp tùy chỉnh.
checkoutCustomerProfileAuthenticate: Gửi và xác thực thông tin của khách hàng.
Khi xác thực phiên khách hàng, hãy đảm bảo rằng customerId bạn chuyển vào yêu cầu phù hợp với hồ sơ chính xác để hiển thị thông tin khách hàng chính xác tại thanh toán. Hãy nhớ rằng khi tạo giỏ hàng, bạn không nên bao gồm customerId trong siêu dữ liệu, vì nó sẽ bị ghi đè.
Sau khi khách hàng được xác thực và đơn hàng được đặt, customerId sẽ có sẵn trong order.references khi lấy chi tiết đơn hàng thông qua truy vấn đơn hàng, cho phép bạn liên kết đơn hàng với khách hàng chính xác.
2
Tạo giỏ hàng với hồ sơ khách hàng
Sau khi bạn gọi cả hai mutation, bạn sẽ nhận lại những thứ sau:
cartId từ mutation createCart để tạo giỏ hàng.
Một oneTimePassword từ mutation checkoutCustomerProfileAuthenticate để xác thực khách hàng.
Bạn có thể chuyển cả hai giá trị này vào callback createCartId trong hàm Zonos.init để tải thông tin hồ sơ khách hàng được cung cấp trong Checkout.
Lần đầu tiên bạn gửi thông tin khách hàng, Zonos sẽ lưu trữ thông tin khách hàng được cung cấp. Phương thức thanh toán sẽ được lưu trữ an toàn trong Stripe. Mỗi lần chi tiết địa chỉ hoặc phương thức thanh toán mới được chuyển vào, chúng sẽ được thêm vào hồ sơ của khách hàng.
Địa chỉ và phương thức thanh toán chỉ có thể được thêm vào—những cái hiện có không thể được chỉnh sửa hoặc xóa. Tên, email và số điện thoại của khách hàng có thể được cập nhật bằng checkoutCustomerUpsert.
checkoutCustomerProfileAuthenticate yêu cầu khách hàng phải có mặt, vì nó cấp một mật khẩu dùng một lần cho phiên thanh toán đó. Khi bạn muốn tạo hoặc cập nhật một hồ sơ bên ngoài quy trình thanh toán—tải trước danh sách khách hàng của bạn, đồng bộ hóa các thay đổi hồ sơ từ hệ thống của riêng bạn, hoặc đính kèm chứng nhận miễn thuế trước đơn hàng đầu tiên của khách hàng—hãy sử dụng checkoutCustomerUpsert thay thế.
Hồ sơ được khớp theo customerId, vì vậy việc gọi lặp lại sẽ cập nhật cùng một hồ sơ thay vì tạo bản sao. Có thể chạy an toàn trên toàn bộ danh sách khách hàng của bạn theo lịch trình.
Có ba điều cần biết về cách áp dụng các bản cập nhật:
Các trường bị bỏ qua sẽ được giữ nguyên. Chỉ gửi name sẽ cập nhật tên và giữ nguyên email và số điện thoại như trước.
Không thể xóa giá trị. Gửi một giá trị rỗng được xử lý giống như bỏ qua trường đó, vì vậy không có cách nào để xóa tên, email hoặc số điện thoại một khi đã được thiết lập.
Địa chỉ chỉ được thêm vào. Một địa chỉ đã tồn tại trong hồ sơ sẽ không bị trùng lặp, và các địa chỉ không có trong yêu cầu sẽ không bị xóa.
checkoutCustomerUpsert không trả về oneTimePassword. Để tải một hồ sơ vào Checkout,
bạn vẫn cần checkoutCustomerProfileAuthenticate, vốn cấp một mật khẩu cho phiên đó.
GraphQL API ReferenceTypes, inputs, and operations used in this guide
Hồ sơ khách hàng
Hồ sơ khách hàng
Tải trước thông tin khách hàng lặp lại vào Zonos Checkout.Hồ sơ khách hàng hợp lý hóa trải nghiệm thanh toán của bạn bằng cách cho phép khách hàng có tài khoản tải trước địa chỉ và chi tiết thanh toán của họ.
Tính năng này hiện chỉ có sẵn cho tích hợp API tùy chỉnh. Tính năng này chưa có sẵn cho những nhà bán hàng sử dụng các plugin Checkout.
Nếu bạn bán hàng cho nhà bán lại, cơ quan chính phủ hoặc tổ chức phi lợi nhuận, bạn cũng có thể đồng bộ hóa chứng nhận miễn thuế của họ vào một hồ sơ khách hàng.
Gửi thông tin khách hàng được xác thực
Để xác thực hồ sơ khách hàng, máy chủ backend của bạn phải thực hiện hai lệnh gọi API độc lập, chúng tôi khuyên bạn nên chạy song song để có hiệu suất tốt hơn:
createCart: Tạo giỏ hàng Zonos. Để được hướng dẫn chi tiết, hãy tham khảo phần Thiết lập Zonos Checkout trong tài liệu tích hợp tùy chỉnh.checkoutCustomerProfileAuthenticate: Gửi và xác thực thông tin của khách hàng.mutation checkoutCustomerProfileAuthenticate($input: CheckoutCustomerProfileAuthenticateInput!) {checkoutCustomerProfileAuthenticate(input: $input) {emailcustomerIdorganizationIdnamephonelocations {administrativeAreacountryCodelocalityline1line2postalCode}oneTimePassword}}Khi xác thực phiên khách hàng, hãy đảm bảo rằng
customerIdbạn chuyển vào yêu cầu phù hợp với hồ sơ chính xác để hiển thị thông tin khách hàng chính xác tại thanh toán. Hãy nhớ rằng khi tạo giỏ hàng, bạn không nên bao gồmcustomerIdtrong siêu dữ liệu, vì nó sẽ bị ghi đè.Sau khi khách hàng được xác thực và đơn hàng được đặt, customerId sẽ có sẵn trong
order.referenceskhi lấy chi tiết đơn hàng thông qua truy vấn đơn hàng, cho phép bạn liên kết đơn hàng với khách hàng chính xác.Tạo giỏ hàng với hồ sơ khách hàng
Sau khi bạn gọi cả hai mutation, bạn sẽ nhận lại những thứ sau:
cartIdtừ mutationcreateCartđể tạo giỏ hàng.Một
oneTimePasswordtừ mutationcheckoutCustomerProfileAuthenticateđể xác thực khách hàng.Bạn có thể chuyển cả hai giá trị này vào callback
createCartIdtrong hàmZonos.initđể tải thông tin hồ sơ khách hàng được cung cấp trong Checkout.Zonos.init({...checkoutSettings: {...createCartId: async () => {const result = await fetch('https://api.merchant.com/api/get-cart-info',{body: JSON.stringify(payload),method: 'POST',},);const json =await result.json();return {cartId: json.cartId,customerAuthenticationToken:json.customerProfileAuthenticate?.checkoutCustomerProfileAuthenticate.oneTimePassword ||'',};}},}Quản lý hồ sơ khách hàng
Lần đầu tiên bạn gửi thông tin khách hàng, Zonos sẽ lưu trữ thông tin khách hàng được cung cấp. Phương thức thanh toán sẽ được lưu trữ an toàn trong Stripe. Mỗi lần chi tiết địa chỉ hoặc phương thức thanh toán mới được chuyển vào, chúng sẽ được thêm vào hồ sơ của khách hàng.
Địa chỉ và phương thức thanh toán chỉ có thể được thêm vào—những cái hiện có không thể được chỉnh sửa hoặc xóa. Tên, email và số điện thoại của khách hàng có thể được cập nhật bằng
checkoutCustomerUpsert.Tạo hoặc cập nhật hồ sơ mà không cần khách hàng
checkoutCustomerProfileAuthenticateyêu cầu khách hàng phải có mặt, vì nó cấp một mật khẩu dùng một lần cho phiên thanh toán đó. Khi bạn muốn tạo hoặc cập nhật một hồ sơ bên ngoài quy trình thanh toán—tải trước danh sách khách hàng của bạn, đồng bộ hóa các thay đổi hồ sơ từ hệ thống của riêng bạn, hoặc đính kèm chứng nhận miễn thuế trước đơn hàng đầu tiên của khách hàng—hãy sử dụngcheckoutCustomerUpsertthay thế.mutation checkoutCustomerUpsert($input: CheckoutCustomerProfileInput!) {checkoutCustomerUpsert(input: $input) {customerIdemailnamephonelocations {administrativeAreacountryCodeline1line2localitypostalCode}}}Hồ sơ được khớp theo
customerId, vì vậy việc gọi lặp lại sẽ cập nhật cùng một hồ sơ thay vì tạo bản sao. Có thể chạy an toàn trên toàn bộ danh sách khách hàng của bạn theo lịch trình.Có ba điều cần biết về cách áp dụng các bản cập nhật:
namesẽ cập nhật tên và giữ nguyên email và số điện thoại như trước.checkoutCustomerUpsertkhông trả vềoneTimePassword. Để tải một hồ sơ vào Checkout, bạn vẫn cầncheckoutCustomerProfileAuthenticate, vốn cấp một mật khẩu cho phiên đó.CheckoutCustomerProfileInput
checkoutCustomerUpsert
Trang này có hữu ích không?