用户重定向到 paypal 后,有没有办法显示运费?
我尝试了setPaymentOption
但没有帮助。
这是我的代码 -
此函数正在生成payKey
function process_payment($JobId,$company_email,$file_id,$printer_id,$cost){
require('/includes/assets/paypal_config/config.php');
require('admin/config/rs_server.php');
// $secondryReceiverQuery = "UPDATE 3d_job_info set pay_key = '".$PayPalResult['PayKey']."' WHERE job_id ='$JobId'";
// $jobInsertQrrRes = mysqli_query($DB_CONN,$jobInsertQrr);
// $cost =$cost+10;
$primary_amt = ((12/100)*$cost) ;
$secondary_amt = $cost - $primary_amt;
// Create PayPal object.
$PayPalConfig = array(
'Sandbox' => $sandbox,
'DeveloperAccountEmail' => $developer_account_email,
'ApplicationID' => $application_id,
'DeviceID' => $device_id,
'IPAddress' => $_SERVER['REMOTE_ADDR'],
'APIUsername' => $api_username,
'APIPassword' => $api_password,
'APISignature' => $api_signature,
'APISubject' => $api_subject,
'PrintHeaders' => $print_headers,
'LogResults' => $log_results,
'LogPath' => $log_path,
);
$PayPal = new Adaptive($PayPalConfig);
// Prepare request arrays
$PayRequestFields = array(
'ActionType' => 'PAY_PRIMARY', // Required. Whether the request pays the receiver or whether the request is set up to create a payment request, but not fulfill the payment until the ExecutePayment is called. Values are: PAY, CREATE, PAY_PRIMARY
'CancelURL' => $domain."index.php?t=cancel_payment&jobid=$JobId",// Required. The URL to which the sender's browser is redirected if the sender cancels the approval for the payment after logging in to paypal.com. 1024 char max.
'CurrencyCode' => 'USD', // Required. 3 character currency code.
'FeesPayer' => 'PRIMARYRECEIVER',// The payer of the fees.lol Values are: SENDER, PRIMARYRECEIVER, EACHRECEIVER, SECONDARYONLY
'IPNNotificationURL' => '', // The URL to which you want all IPN messages for this payment to be sent. 1024 char max.
'Memo' => 'This transection is from localhost', // A note associated with the payment (text, not HTML). 1000 char max
'Pin' => '', // The sener's personal id number, which was specified when the sender signed up for the preapproval
'PreapprovalKey' => '',// The key associated with a preapproval for this payment. The preapproval is required if this is a preapproved payment.
'ReturnURL' => $domain."index.php?t=payment_success&jobid=$JobId", // Required. The URL to which the sener"s browser is redirected after approvaing a payment on paypal.com. 1024 char max.
'ReverseAllParallelPaymentsOnError' => '',// Whether to reverse paralel payments if an error occurs with a payment. Values are: TRUE, FALSE
'SenderEmail' => '',// Sender's email address. 127 char max.
'TrackingID' => '',// Unique ID that you specify to track the payment. 127 char max.
);
$ClientDetailsFields = array(
'CustomerID' => '45', // Your ID for the sender 127 char max.
'CustomerType' => 'type', // Your ID of the type of customer. 127 char max.
'GeoLocation' => '',// Sender's geographic location
'Model' => 'zxc', // A sub-identification of the application. 127 char max.
'PartnerName' => 'zxc' // Your organization's name or ID
);
$FundingTypes = array('ECHECK', 'BALANCE', 'CREDITCARD');// Funding constrainigs require advanced permissions levels.
$Receivers = array();
$Receiver = array(
'Amount' =>$cost,// Required. Amount to be paid to the receiver.
'Email' => 'payment@creiterate.com', // Receiver's email address. 127 char max.
'InvoiceID' => '', // The invoice number for the payment. 127 char max.
'PaymentType' => 'GOODS', // Transaction type. Values are: GOODS, SERVICE, PERSONAL, CASHADVANCE, DIGITALGOODS
'PaymentSubType' => '', // The transaction subtype for the payment.
'AccountID' => '',
'Phone' => array('CountryCode' => '', 'PhoneNumber' => '', 'Extension' => ''), // Receiver's phone number. Numbers only.
'Primary' => 'true' // Whether this receiver is the primary receiver. Values are boolean: TRUE, FALSE
);
array_push($Receivers,$Receiver);
$Receiver = array(
'Amount' => $secondary_amt,// Required. Amount to be paid to the receiver.
'Email' => $company_email, // Receiver's email address. 127 char max.
'InvoiceID' => '',// The invoice number for the payment. 127 char max.
'PaymentType' => '',// Transaction type. Values are: GOODS, SERVICE, PERSONAL, CASHADVANCE, DIGITALGOODS
'PaymentSubType' => '',// The transaction subtype for the payment.
'AccountID' => '',
'Phone' => array('CountryCode' => '', 'PhoneNumber' => '', 'Extension' => ''), // Receiver's phone number. Numbers only.
'Primary' => 'false'// Whether this receiver is the primary receiver. Values are boolean: TRUE, FALSE
);
array_push($Receivers,$Receiver);
$SenderIdentifierFields = array(
'UseCredentials' => TRUE// If TRUE, use credentials to identify the sender. Default is false.
);
$AccountIdentifierFields = array(
'Email' => $_SESSION['loggin_info']['email_address'],// Sender's email address. 127 char max.
'Phone' => array('CountryCode' => '', 'PhoneNumber' => '', 'Extension' => '')// Sender's phone number. Numbers only.
);
$PayPalRequestData = array(
'PayRequestFields' => $PayRequestFields,
'ClientDetailsFields' => $ClientDetailsFields,
// 'CreateInvoiceFields' => $CreateInvoiceFields,
//'FundingTypes' => $FundingTypes,
'Receivers' => $Receivers,
'SenderIdentifierFields' => $SenderIdentifierFields,
'AccountIdentifierFields' => $AccountIdentifierFields
);
// Pass data into class for processing with PayPal and load the response array into $PayPalResult
$PayPalResult = $PayPal->Pay($PayPalRequestData);
//Before redirecting setting the pay option here
setPaymentOption($PayPalResult['PayKey'],$PayPal,$cost);
header("Location: ". $PayPalResult['RedirectURL']);
}
这是我设定的付款选项功能。
function setPaymentOption($PayKey,$PayPal,$cost){
require('/../assets/paypal_config/config.php');
require('/admin/config/rs_server.php');
// Create PayPal object.
$PayPalConfig = array(
'Sandbox' => $sandbox,
'DeveloperAccountEmail' => $developer_account_email,
'ApplicationID' => $application_id,
'DeviceID' => $device_id,
'IPAddress' => $_SERVER['REMOTE_ADDR'],
'APIUsername' => $api_username,
'APIPassword' => $api_password,
'APISignature' => $api_signature,
'APISubject' => $api_subject,
'PrintHeaders' => $print_headers,
'LogResults' => $log_results,
'LogPath' => $log_path,
);
// $PayPal = new Adaptive($PayPalConfig);
// Prepare request arrays
$SPOFields = array(
'PayKey' => $PayKey, // Required. The pay key that identifies the payment for which you want to set payment options.
'ShippingAddressID' => '' // Sender's shipping address ID.
);
$DisplayOptions = array(
'EmailHeaderImageURL' => '', // The URL of the image that displays in the header of customer emails. 1,024 char max. Image dimensions: 43 x 240
'EmailMarketingImageURL' => 'http://www.angelleye.com/images/email_marketing_image.jpg', // The URL of the image that displays in the customer emails. 1,024 char max. Image dimensions: 80 x 530
'HeaderImageURL' => 'http://www.angelleye.com/header_image.jpg', // The URL of the image that displays in the header of a payment page. 1,024 char max. Image dimensions: 750 x 90
'BusinessName' => 'Test business' // The business name to display. 128 char max.
);
$InstitutionCustomer = array(
'CountryCode' => 'US', // Required. 2 char code of the home country of the end user.
'DisplayName' => 'Tester Testerson', // Required. The full name of the consumer as known by the institution. 200 char max.
'InstitutionCustomerEmail' => 'payment@creiterate.com ', // The email address of the consumer. 127 char max.
'FirstName' => 'Tester', // Required. The first name of the consumer. 64 char max.
'LastName' => 'Testerson', // Required. The last name of the consumer. 64 char max.
'InstitutionCustomerID' => '12345', // Required. The unique ID assigned to the consumer by the institution. 64 char max.
'InstitutionID' => '6V8R7B4KPS22E' // Required. The unique ID assigned to the institution. 64 char max.
);
$SenderOptions = array(
'RequireShippingAddressSelection' => '' // Boolean. If true, require the sender to select a shipping address during the embedded payment flow. Default is false.
);
// Begin loop to populate receiver options.
$ReceiverOptions = array();
$ReceiverOption = array(
'Description' => 'Test Hello', // A description you want to associate with the payment. 1000 char max.
'CustomID' => '' // An external reference number you want to associate with the payment. 1000 char max.
);
$cost =$cost-10;
$InvoiceData = array(
'TotalTax' => '', // Total tax associated with the payment.
'TotalShipping' => '10' // Total shipping associated with the payment.
);
$InvoiceItems = array();
$InvoiceItem = array(
'Name' => 'Widget ABC', // Name of item.
'Identifier' => '', // External reference to item or item ID.
'Price' => $cost, // Total of line item.
'ItemPrice' => $cost, // Price of an individual item.
'ItemCount' => '1' // Item QTY
);
array_push($InvoiceItems,$InvoiceItem);
$PayPalRequestData = array(
'SPOFields' => $SPOFields,
'DisplayOptions' => $DisplayOptions,
'InstitutionCustomer' => $InstitutionCustomer,
'SenderOptions' => $SenderOptions,
'ReceiverOptions' => $ReceiverOptions
);
// Pass data into class for processing with PayPal and load the response array into $PayPalResult
$PayPalResult = $PayPal->SetPaymentOptions($PayPalRequestData);
}