*ACpay 提供之 SDK 預設依照 Apple 之規範產生按鈕
將 ACpay 提供之 apple-developer-merchantid-domain-association.txt 放至 https://<特店網域>/.well-known/apple-developer-merchantid-domain-association.txt,待 ACpay 驗證並告知完成即可。
將申請之相關參數設置完成以使用SDK。
ACconnect.setupSDK('appID', 'appKey', 'serverType');
名稱(*=必填) | 類別 | 內容 |
appID* | int | ACpay 提供之驗證識別碼 |
appKey* | String | ACpay 提供之驗證金鑰 |
serverType* | String | 使用的伺服器種類: |
初始化ApplePay API所需相關參數。
ACconnect.ApplePay.setupApplePay({
merchantIdentifier: 'merchantIdentifier provided by ACpay'
});
名稱 (*=必填) | 類別 | 內容 |
---|---|---|
merchantIdentifier* | String | ACpay 提供之 Apple Developer 核可的 Merchant Identifier |
建立一個 paymentRequest 的物件設定交易資訊來索取 Prime。 LineItems 內容為商品明細資訊僅供消費者顯示作用,其計算之金額與實際授權無關,須由串接方同步至後續發動授權之電文金額,最後將以授權之金額為主。
var paymentRequest = {
"totalLabel": "Merchant Name Show Customer",
"lineItems": [
{
"label": "items1",
"amount": "1.00"
},
{
"label": "items2",
"amount": "5.00"
}
]
};
名稱 | 類別 | 內容 | |||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
lineItems (必填) | Array |
| |||||||||||||||||||||
totalLabel(必填) | String | 商戶名稱 | |||||||||||||||||||||
shippingMethods | Array | 運送方式
| |||||||||||||||||||||
requiredShippingContactFields | Array | 設定需要消費者的那些運輸寄送資訊,目前可帶入 “email”、”name”、”phone”、”postalAddress”、”phoneticName” | |||||||||||||||||||||
requiredBillingContactFields | Array | 設定需要消費者的那些帳單寄送資訊,目前可帶入 “email”、”name”、”phone”、”postalAddress”、”phoneticName” | |||||||||||||||||||||
shippingContact | JSONObject | 店家預設收件地址。
| |||||||||||||||||||||
shippingContactEditingMode | String | 是否允許使用者編輯運送地點 (此項目只支援IOS15以上之裝置) “enabled” = 允許, “storePickup” = 不允許 | |||||||||||||||||||||
shippingType | String | 運送方式,目前可帶入 shipping、delivery、storePickup、servicePickup 預設為shipping。 |
設定好 payment request 物件後, 透過以下方法設定 Payment Request API。
/**
使用ACconnect.ApplePay.getPrime 向 ACconnect 取得付款用的 prime
*/
ACconnect.ApplePay.getPrime(function(result) {
console.log('paymentRequestApi.getPrime result', result);
if (result.status !== 0) {
console.error('getPrime failed: ' + result.msg);
return
}
var prime = result.prime;
});
/**
使用 ACconnect.ApplePay.setupPaymentRequest 設定 payment request 物件
並在 callback function 回傳物件關於使用者的瀏覽器是否有卡片進行付款
*/
Acconnect.ApplePay.setupPaymentRequest(paymentRequest, function (result) {
if (!result.browserSupportApplePaySession) {
return;
}
if (result.canMakePaymentWithActiveCard === true) {
console.log('該裝置有支援的卡片可以付款');
} else {
console.log('該裝置沒有支援的卡片可以付款');
}
});
setupPaymentRequest 的 callback 函式, 會回傳以下物件屬性。
名稱 | 類別 | 內容 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
result | JSONObject |
|
/**
使用ACconnect.ApplePay.getPrime 向 ACconnect 取得付款用的 prime
*/
ACconnect.ApplePay.getPrime(function(result) {
console.log('paymentRequestApi.getPrime result', result);
if (result.status !== 0) {
console.error('getPrime failed: ' + result.msg);
return
}
var prime = result.prime;
});
getPrime 成功會取得 Result 物件之資訊,內容參數說明如下。
{
"prime": String,
// 加上運費的價格
"total_amount": String,
"status": Int,
"msg": String,
"client_ip": String,
"shippingContact": {
"addressLines": ArrayString,
"administrativeArea": String,
"country": String,
"countryCode": String,
"emailAddress": String,
"familyName": String,
"givenName": String,
"locality": String,
"phoneNumber": String,
"phoneticFamilyName": String,
"phoneticGivenName": String,
"postalCode": String,
"subAdministrativeArea": String,
"subLocality": String
},
"billingContact": {
"addressLines": ArrayString,
"administrativeArea": String,
"country": String,
"countryCode": String,
"familyName": String,
"givenName": String,
"locality": String,
"phoneticFamilyName": String,
"phoneticGivenName": String,
"postalCode": String,
"subAdministrativeArea": String,
"subLocality": String
},
"card_info": {
"bincode": String,
"lastfour": String,
"issuer": String,
"issuer_zh_tw": String,
"bank_id": String,
"funding": String,
"type": String,
"level": String,
"country": String,
"countrycode": String,
},
"expiryMillis": Number
}
名稱 | 類別 | 內容 | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
prime | String | prime 字串 | ||||||||||||||||||||||||||||||||||||||||||||||||
total_amount | String | 總金額(台幣) | ||||||||||||||||||||||||||||||||||||||||||||||||
status | Int | 交易代碼,成功的話為 0 | ||||||||||||||||||||||||||||||||||||||||||||||||
msg | String | 錯誤訊息 | ||||||||||||||||||||||||||||||||||||||||||||||||
client_ip | String | 消費者的 IP 位置 | ||||||||||||||||||||||||||||||||||||||||||||||||
shippingContact | JSONObject | 運送聯絡資料
| ||||||||||||||||||||||||||||||||||||||||||||||||
billingContact | JSONObject | 帳單聯絡資料
| ||||||||||||||||||||||||||||||||||||||||||||||||
card_info | JSONObject | 卡片資訊,將會回傳以下幾個值:
| ||||||||||||||||||||||||||||||||||||||||||||||||
expiryMillis | Number | Prime 到期時間 |
Test Apple Pay
裝置支援:
檢查中...
Get Prime Result
Use following data to send to server