フォーム統合を使用してトランザクションを sagepay に送信する単純な PHP フォームをセットアップしています。暗号鍵は次のようにセットアップされています。
$PAYMENT_CRYPT =
"VendorTxCode=website
&Amount=$total
&Currency=GBP
&Description=Ticket
&SuccessURL=EDITED-OUT/registered-thanks
&FailureURL=EDITED-OUT/registered-fail
&BillingSurname=$surname
&BillingFirstnames=$firstname
&BillingAddress1=$address1
&BillingCity=$city
&BillingPostCode=$postcode
&BillingCountry=UK
&DeliverySurname=$surname
&DeliveryFirstnames=$firstname
&DeliverAddress1=$address1
&DeliveryCity=$city
&DeliveryPostCode=$postcode
&DeliveryCountry=UK
&AllowGiftAid=1"
形:
<form action="https://live.sagepay.com/gateway/service/vspform-register.vsp" method="POST" id="SagePayForm" name="SagePayForm">
<input type="hidden" name="VPSProtocol" value="2.23" />
<input type="hidden" name="TxType" value="PAYMENT" />
<input type="hidden" name="Vendor" value="MYVENDORID" />
<input type="hidden" name="Crypt" value="<?= $PAYMENT_CRYPT ?>">
<input type="image" src="images/buynow-sagepay.png" />
</form>
Sage は次のようなエラーを表示していますが、これは通貨フィールドが確実に渡されているため意味がありません。
この取引の試みは失敗しました。購入元のウェブ ストアにリダイレクトすることはできません。障害の詳細は以下のとおりです。
ステータス: 不正な形式
ステータスの詳細: 3045 : 通貨フィールドがありません。
どんな助けでも大歓迎です!
リック