1

「定期支払いのテスト」に関するドキュメントによると

日を指定すると、請求サイクルはサンドボックスでn分ごとに発生します。ここで、nは頻度を表します。

だからこれは私がしたことです:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss:'000Z'");
df.setTimeZone(TimeZone.getTimeZone("GMT"));
RecurringPaymentsProfileDetailsType profileDetails = new RecurringPaymentsProfileDetailsType(df.format(new Date()));

BillingPeriodDetailsType trialPeriod = new BillingPeriodDetailsType(BillingPeriodType.DAY, 1, new BasicAmountType(CurrencyCodeType.USD, "40"));
trialPeriod.setTotalBillingCycles(1);

ScheduleDetailsType scheduleDetails = new ScheduleDetailsType();
scheduleDetails.setPaymentPeriod(new BillingPeriodDetailsType(BillingPeriodType.DAY, 1, new BasicAmountType(CurrencyCodeType.USD, "40")));
scheduleDetails.setDescription(agreementDescription);
scheduleDetails.setTrialPeriod(trialPeriod);

CreateRecurringPaymentsProfileRequestDetailsType reqDetails = new CreateRecurringPaymentsProfileRequestDetailsType(profileDetails, scheduleDetails);
reqDetails.setToken(token);

CreateRecurringPaymentsProfileRequestType reqType = new CreateRecurringPaymentsProfileRequestType();
reqType.setCreateRecurringPaymentsProfileRequestDetails(reqDetails);

CreateRecurringPaymentsProfileReq req = new CreateRecurringPaymentsProfileReq();
req.setCreateRecurringPaymentsProfileRequest(reqType);

return service.createRecurringPaymentsProfile(req);

このコードは、プロセスを高速化しないという問題(私にとっては大きな問題)を除いて、うまく機能します。それがないと、定期支払いのIPNをテストすることはできません。

この他のフォーラムの投稿によると、サンドボックスビジネスアカウントで「テストモード」を有効にする必要があるかもしれませんが、新しいサンドボックスサイトでそのオプションを見つけることができません。

私は何が欠けていますか?

4

1 に答える 1

1

残念ながら、これはロールアウトされた機能であり、短期間で削除されました。テストできる唯一の方法は、定期的な支払いを毎日請求するように設定することです。これを回避する 1 つの方法は、送信したいすべての変数を含むフォーム ポストを作成し、データをスクリプトにポストして、想定どおりに実行することです。検証するロジックをバイパスする必要があります。ただし、すべてのテストを完了したら、戻っていくつかのテストを実行し、スクリプトが投稿を検証することを確認できます。フォームを使用して変数をスクリプトに投稿すると、定期的な支払いが毎日請求されるのを待つことなく、必要なだけテストできます。

于 2013-03-13T01:32:09.443 に答える