3

を作成し、プロパティを にPKPaymentRequest設定しています。システムは住所要件を強制しますが、電話要件は無視します。(この場合の強制は、ユーザーがフィールドに入力するまで Apple Pay トランザクションの続行を許可しないことを意味します。)requiredBillingAddressFieldsPKAddressFieldPostalAddress | PKAddressFieldPhone

私たちのアプリは配送先住所を必要としませんが、デバッグ中にrequiredShippingAddressFieldsプロパティを設定したPKAddressFieldPostalAddress | PKAddressFieldPhoneところ、電話番号の要件が適用されていることがわかりました。

PKPaymentRequestまたはのPKAddressFieldドキュメントには、これが予期された動作であることを示唆するものは何もありません。これを回避する方法についてのアイデアはありますか?

編集 - 完全な方法は次のとおりです。

+ (PKPaymentRequest *)newPayRequestFromBasket:(WFBasket *)basket
{
    PKPaymentRequest *request = [PKPaymentRequest new];
    request.supportedNetworks = [WFApplePayManager supportedPaymentNetworks];
    request.countryCode = [WFAppTargetDispatcher currentAppTarget].storeConfig.countryCode;
    request.currencyCode = [WFAppTargetDispatcher currentAppTarget].storeConfig.currencyCode;
    request.merchantIdentifier = [WFAppTargetDispatcher currentAppTarget].storeConfig.merchantIdentifier;
    request.merchantCapabilities = PKMerchantCapability3DS; // Support of 3DS is mandatory

    int64_t orderId = basket.orderId;
    request.applicationData = [NSData dataWithBytes:&orderId length:sizeof(orderId)];

    request.paymentSummaryItems = [WFApplePayManager allSummaryItemsFromBasket:basket];

    request.requiredBillingAddressFields = [WFApplePayManager requiredBillingFields]; // = PKAddressFieldPostalAddress | PKAddressFieldPhone

    return request;
}
4

2 に答える 2

4

API は少しわかりにくいですが、請求先住所はまさに請求先住所です。電話フィールドはありません。ユーザーの電話番号を取得したい場合は、requiredShippingAddressFields代わりに使用する必要があります。

于 2015-03-25T19:32:09.823 に答える