5

sagepay アカウントにサインアップしたクライアントがいます。彼の現在のウェブサイトは wordpress 3.0 で動作しており、現在、e コマース機能は一切ありません。

彼は、ユーザーが sagepay を通じて £300 のデポジットを送信できるボタンを必要としています (この金額は変更されません)。(通常、このようなことにはペイパルを使用することをお勧めしますが、どうやら彼のビジネスの旅行の性質のために、ペイパルは私のクライアントにプロアカウントを持たせません)

私は 3 月にこちらの同様のスレッド ( How Do I Make a SagePay BuyNow Button? ) で説明されている方法を見てきましたが、ワードプレスのページ内でこれを実装する方法がよくわかりません。 php barの基本的なテンプレート編集なので、$PAYMENT_CRYPTの部分ですっかり迷ってしまいました。

毎回同じ金額を送信し、sagepay ゲートウェイに送信されるとすべてのカードの詳細/顧客の詳細を収集する基本的なボタンを実装するために必要な手順を誰かが提供できれば、非常に高く評価されます!

4

1 に答える 1

2

要するに、いいえ。これらは、これにアプローチする簡単な方法ではありません。SagePay への支払いフォームにリンクし、新しい IFRAME 機能を使用しない限り。テンプレート ページまたはテンプレート ファイルで PHP コードを許可する特定の情報を WordPress 内に保持できます。

1 - PHP サーバー内でフォームを IFRAME し、CSS が WordPress ページの CSS のようになるように、フォームを独自にコーディングします。

2 - 支払いモジュールを作成する

3 - WordPress 用の既存の Payment eCommerce サーバー モジュールを使用します - プラグインはすでにたくさんあります

4 - 支払いボタンのハイパー リンクを作成します。クリックすると、サーバー上の PHP フォームに 300 ポンドの金額が表示されます。

5 - Nochex または別の決済ベンダー、Google ウォレットなどを使用する (これはクライアントにとって簡単なオプションではありません)

FORM を使用すると、次のことが可能になります。

<? 

# Define your vars

$serverLive="https://live.sagepay.com/gateway/service/vspform-register.vsp"
//$serverLive="https://test.sagepay.com/gateway/service/vspform-register.vsp"
$YOUR_VENDOR_LOGIN_NAME="";
$VendorTxCode="406227821909";
$Amount="350.00";
$Currency="GBP";
$Description="1 ACME Widget";
$SuccessURL="http://example.com/success.php";
$FailureURL="http://example.com/fail.php";
$BillingSurname="Smith";
$BillingFirstnames="John";
$BillingAddress1="123 Main Street";
$BillingCity="Anywhere";
$BillingPostCode="29555";
$BillingCountry="USA";
$DeliverySurname="Smith";
$DeliveryFirstnames="John";
$DeliverAddress1="123 Main Street";
$DeliveryCity="Anywhere";
$DeliveryPostCode="29555";
$DeliveryCountry="GBP";

# The address information can be done via jQuery on your page or get some defaults

?>
<form action="<?=$serverLive?>" 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="<?= $YOUR_VENDOR_LOGIN_NAME ?>" />
    <input type="hidden" name="Crypt" value="<?= $PAYMENT_CRYPT ?>">    
    <input type="image" src="images/buynow-sagepay.png" />
</form>
<script type="text/javascript">
function submitform()
{
  document.SagePayForm.submit();
}
submitform();
</script>

このコードを使用しても、XOR や Crypt 関数など、いくつかの SagePay ライブラリを使用する必要があります。

// Crypt and XOR functions
private function simpleXor($string, $password) {
    $data=array();
    for ($i=0; $i < utf8_strlen($password); $i++) {
        $data[$i]=ord(substr($password, $i, 1));
    }
    $output='';
    for ($i=0; $i < utf8_strlen($string); $i++) {
    $output .= chr(ord(substr($string, $i, 1)) ^ ($data[$i % utf8_strlen($password)]));
    }
    return $output;     
}
于 2012-09-04T10:20:27.647 に答える