webForumDet fria alternativet

Hur skall jag tyda följande - Payson convertering?

2 svar · 1 490 visningar · startad av biggles-1

biggles-1Medlem sedan jan. 2005125 inlägg
#1

Är nybörjare vad gäller PHP, men ganska ok vad gäller html/css.

Har köpt ett enkelt php-script som passar mig, för att användas som varukorg i en liten webshop. Kan inte php men är bra på att klippa, klistra och göra vad andra säger till mig att göra som vet bättre *ler*.

Har fastnat i kopplingen mellan Paysons gränssnitt (som fungerar i annan funktion hos mig, så den är ok) och scriptets gränsnitt. Använder PayPal som mall och vill nu convertera till Paysons. Detta är koden jag slåss med (gäller nu för PayPal) men behöver lite grundinformation om php enligt följande:

			case 'paypal':
				$url = "https://www.paypal.com/xxxxxxxxx.aspx";
		
				$fields = array(
					"cmd"=>'_cart',
					"upload"=>'1',
					"rm"=>'1',
					"business"=>_PAYMENT_PAYPAL_EMAIL,
					"currency_code"=>_PAYMENT_CURRENCY,
					"handling_cart"=>'0',
					//"notify_url"=>"", // set this to cart for later, when we're processing ipn's
					"cancel_return"=>_SIMPLESHOP_BASE._SIMPLESHOP_URL,
					"return"=>((!preg_match('#^https?://#i',_PAYMENT_CONTINUE_URL)) ? _SIMPLESHOP_BASE : '' ) ._PAYMENT_CONTINUE_URL,
					"image_url"=>'',
				);
				// now add the products.
				$product_number = 1;
				foreach($cart_products as $cart_product){
					$fields['item_name_'.$product_number] = $cart_product['name'];
					$fields['quantity_'.$product_number] = $cart_product['quantity'];
					$fields['amount_'.$product_number] = $cart_product['price'];
					//$fields['tax_'.$product_number] = $cart_product['tax'];
					$product_number ++ ;
				}
				
				// add all customer information to the payson url:
				
				if($cart_shipping > 0){
					//$fields['shipping'] = (float)$order_details['shipping_details']['shipping_price'];
					$fields['item_name_'.$product_number] = _SIMPLESHOP_SHIPPING_NAME;
					$fields['quantity_'.$product_number] = 1;
					$fields['amount_'.$product_number] = $cart_shipping;
					$fields['tax_'.$product_number] = 0;
					$product_number ++ ;
					
					$fields['email'] = $_POST['email'];
					$fields['first_name'] = $_POST['first_name'];
					$fields['last_name'] = $_POST['last_name'];
					
					$fields['address1'] = $_POST['member_address1'];
					$fields['address2'] = $_POST['member_address2'];
					$fields['city'] = $_POST['member_city'];
					$fields['country'] = $_POST['member_country'];
					$fields['zip'] = $_POST['member_post_code'];
				}else{
					$fields['no_shipping'] = 1;
				}
				
				//print_r($fields);exit;
				foreach($fields as $key=>$val){
					$url .= $key . "=" . urlencode($val) . "&";
				}
				header("Location: $url");
				break;

// nedanför är uppgifterna som Payson vill få in!

if(!isset($_POST['submit'])) 
{ 
    header("Location: index.html"); 
    exit; 
} 

$AgentID = "22222";
$Key = "34344343434343434";

$BuyerFirstName = $_POST['BuyerFirstName'];
$BuyerLastName = $_POST['BuyerLastName'];

$Description =	"Beställning gjord hos ";
$SellerEmail =	"order@mindomain.se";
$BuyerEmail = $_POST['BuyerEmail']; 
$Cost = $_POST['Cost']; //Summa att betala
$ExtraCost = "0"; //ev extra fraktkostnad
$OkUrl =	"http://www.mindomain.se/";
$CancelUrl = "http://www.mindomain.se/";
$RefNr = $_POST['RefNr']; //Faktura eller order nummer
$GuaranteeOffered = "1"; 

$MD5string = $SellerEmail . ":" . $Cost . ":" . $ExtraCost . ":" . $OkUrl . ":" . $GuaranteeOffered . $Key; 
$MD5Hash = md5($MD5string);

Behöver nu förstå vad som händer med ...

a) Vad uträttar $fields = array( ?

b) "business"=>_PAYMENT_PAYPAL_EMAIL,

- Vilken "sida = mitt eget script alt. Payson", representerar "business" ?
- Vilken "sida = mitt eget script alt. Payson", representerar _PAYPAL_EMAIL ?
- Vad innebär " => "?

c) Vad uträttar foreach($cart_products as $cart_product){
$fields['item_name_'.$product_number] = $cart_product['name']; ?

- behövs dessa variabler, då Payon endast använder "Description"?

d) if($cart_shipping > 0){

- vad står "0" för?
- hur "fångar jag upp" de uppgifter som Payson kräver typ $AgentID och $Key då dessa inte finns
i något "field", utan endast under $fields = array( ?
- hur/var skickar jag iväg $MD5string och $MD5Hash ?

Kan någon i lekmannatermer hjälpa mig att förstå vad som är vad i mina frågor, så skulle jag uppskatta det.

Tack på förhand!

Nils

biggles-1Medlem sedan jan. 2005125 inlägg
#2

Nästan i mål

Hm ... inga förslag eller synpunkter ....

MEN verkar faktiskt som om jag ändå nästan är i hamn. Har testat 100 varianter och använt lite sunt bondförnuft utan att veta riktigt vad det är jag gör *ler*.

Nu saknas bara att få in MD5!

  1. Vilket värde skall anges vid MD5, då det inte fungerar som det är skrivet nu.
  2. Var skall $MD5string, $Key och $MD5Hash skrivas, innaför eller utanför $fields = Array()?
case 'payson':

				$url = "https://www.payson.se/testagent/default.aspx";
		
				$fields = Array(
					"SellerEmail"      => 	_PAYMENT_PAYSON_EMAIL,
					"Description"      => 	'Beställning gjord hos XXXXX',
					"Cost"             => 	$cart_total,
					"ExtraCost"        => 	'0',
					
					"RefNr"            => 	'6767',
					"OkUrl"            => 	'http://www.mindomain.se/test-ssc/verify.php',
					"CancelUrl"	   => 	'http://www.mindomain.se/test-ssc/error.php',
					
					"AgentId"          => 	'4444',
					"MD5"              => 	$MD5Hash,
					"GuaranteeOffered" => 	'1', // Ja = 1, Nej = 0
					);
					
					$MD5string = $SellerEmail . ":" . $Cost . ":" . $ExtraCost . ":" . $OkUrl . ":" . $GuaranteeOffered . $Key; 
					$MD5Hash = md5($MD5string);
					 
					$Key = "67676767676767676767676767";
     								
				// add all customer information to the payson url:
				
				if($cart_shipping > 0){				
					$fields['email'] = $_POST['email'];
					$fields['first_name'] = $_POST['first_name'];
					$fields['last_name'] = $_POST['last_name'];
				}else{
					//$fields['no_shipping'] = 1;
				}
				
				//print_r($fields);exit;
				foreach($fields as $key=>$val){
					$url .= $key . "=" . urlencode($val);
				}
				header("Location: $url");
				break;
		}

Ser fram emot förslag från er som kan. / Nils

biggles-1Medlem sedan jan. 2005125 inlägg
#3

Från en annan vinkel

Eftersom jag själv inte kommer vidare enligt mitt upplägg ovan och inte får någon support, har jag tittat på ett annat upplägg som kanske är lättare att tycka till om.

Koden fungerar fram t o m Paysons testsida, som bekräftar att all information skickas till Payson. MEN när jag byter ut "testagent" mot "merchant" och skall köra skarp får jag ett felmeddelande som säger att informationen saknas????

Kan någon se något uppenbart som jag gjort fel?


case 'payson':
			
					//$url = "https://www.payson.se/merchant/default.aspx";
			
					$url = "https://www.payson.se/testagent/default.aspx";
					
					$AgentID = "33333";
					$Key = "7787977789";

					$SellerEmail =	"order@mindomain.se";
					$Description =	"Beställning gjord hos ...";

					$Cost = $cart_total; //Summa att betala
					$ExtraCost = "0"; //ev fraktkostnad
					$OkUrl =	"http://www.mindomain.se/test-ssc/verify.php";
					$CancelUrl = "http://www.mindomain.se/test-ssc/error.php";
					$RefNr = "7.9999"; //Faktura eller order nummer
					$GuaranteeOffered = "1"; 

					$MD5string = $SellerEmail . ":" . $Cost . ":" . $ExtraCost . ":" . $OkUrl . ":" . $GuaranteeOffered . $Key; 
					$MD5Hash = md5($MD5string); 
					
					?>
					<form method="POST" id="goform" action="<?php echo $url; ?>" >

					<input type="hidden" name="BuyerFirstName" value="<?php echo $fields['first_name']; ?>"> 
					<input type="hidden" name="BuyerLastName" value="<?php echo $fields['last_name']; ?>">  
					<input type="hidden" name="BuyerEmail" value="<?php echo $fields['email']; ?>"> 
					<input type="hidden" name="RefNr" value="<?php echo $RefNr; ?>"> 
					<input type="hidden" name="Cost" value="<?php echo $cart_total; ?>">     
					<input type="hidden" name="AgentID" value="<?php echo $AgentID; ?>">  
					<input type="hidden" name="Description" value="<?php echo $Description; ?>">  
					<input type="hidden" name="SellerEmail" value="<?php echo $SellerEmail; ?>">  
					<input type="hidden" name="ExtraCost" value="<?php echo $ExtraCost; ?>">  
					<input type="hidden" name="OkUrl" value="<?php echo $OkUrl; ?>">  
					<input type="hidden" name="CancelUrl" value="<?php echo $CancelUrl; ?>">  
					<input type="hidden" name="MD5" value="<?php echo $MD5Hash; ?>">  
					<input type="hidden" name="GuaranteeOffered" value="<?php echo $GuaranteeOffered; ?>"> 	
		
					<input type="submit" value="go" name="go" id="gobutton">

					</form>

					<script language="javascript">
					document.getElementById('gobutton').style.display='none';
					document.getElementById('goform').submit();
					</script>
					
					<?php
				break;
		}

Tar gärna lite synpunkter annars hade jag inte frågat. Känns som att ropa ut i tomma intet samtidigt som 160 st läst inlägget på 2 dagar, så helt ointressant kan inte ämnet vara!

Mvh Nils

143 ms totalt · 3 externa anrop · v20260731065814-full.7de19299
134 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)