1

プロジェクトに Paypal 支払いゲートウェイを実装したいのですが、以下の IBAction を 3 回以上連続して実行した後、paypal ログイン ウィンドウが表示されます。以下のコードの問題点を教えてください。

-(IBAction)initializePaypal:(id)sender
{
    [PayPal initializeWithAppID:@"APP-80W284485P519543T"forEnvironment:ENV_SANDBOX];
    status = PAYMENTSTATUS_CANCELED;
    [PayPal getPayPalInst].shippingEnabled = FALSE;
    [PayPal getPayPalInst].dynamicAmountUpdateEnabled = FALSE;

//for a payment with a single recipient, use a PayPalPayment object

    payment = [[PayPalPayment alloc] init] ;
    payment.recipient = payPalValue.merchantEmail;
    payment.paymentCurrency = payPalValue.currencyCode;
    payment.description = payPalValue.itemName;
    payment.merchantName = @"By Post";
    payment.subTotal = payPalValue.amount;

    [[PayPal getPayPalInst] checkoutWithPayment:payment];

}
4

1 に答える 1

1

ボタンがクリックされたときにペイパルの初期化を呼び出しています。3~4秒かかります。その前に初期化を呼び出し、initializationStatus を確認し、それ以外の場合は以下のコードに示すように再度呼び出します

-(IBAction)initializePaypal:(id)sender
{
    if ([PayPal initializationStatus] == STATUS_COMPLETED_SUCCESS)
    {
        status = PAYMENTSTATUS_CANCELED;
        [PayPal getPayPalInst].shippingEnabled = FALSE;
        [PayPal getPayPalInst].dynamicAmountUpdateEnabled = FALSE;

        //for a payment with a single recipient, use a PayPalPayment object

        payment = [[PayPalPayment alloc] init] ;
        payment.recipient = payPalValue.merchantEmail;
        payment.paymentCurrency = payPalValue.currencyCode;
        payment.description = payPalValue.itemName;
        payment.merchantName = @"By Post";
        payment.subTotal = payPalValue.amount;

        [[PayPal getPayPalInst] checkoutWithPayment:payment];
    }
    else
    {
        NSLog(@"initialization failed");// show alert or "reintialising paypal"
    }
}
于 2013-11-20T06:18:00.210 に答える