0
OSXデスクトップアプリケーションの支払い処理を迅速に設定しています。 OSX用のSDKはないので、私はBraintree用のPHP SDK経由でWeb Viewを使用しています。私はいくつかのPOSTデータを渡して、製品の価格が私のアプリケーションから動的に来るようにしたいが、それは認識されないようで、PHPのエラーに基づいて弱っている。
私はPOST変数をPHPスクリプトに送信する方法を知っていて何度もやりましたが、私の素早いコードでは正しくないかもしれないという気持ちがあります。私のPHPのエラーがある: "注意:未定義の変数:価格"Braintree取引で未定義のポスト変数
PayPal.swift
import Cocoa
import WebKit
class PayPal: NSViewController {
@IBOutlet weak var paypalWebView: WebView?
override func viewWillAppear() {
self.view.window!.title = "Payment"
}
override func viewDidLoad() {
super.viewDidLoad()
setupPP()
}
func setupPP(){
let request: NSURL = NSURL(string: "http://")!
let urlRequest: NSMutableURLRequest = NSMutableURLRequest(url: request as URL)
urlRequest.httpMethod = "POST"
let postString = "price=45"
urlRequest.httpBody = postString.data(using: String.Encoding.utf8);
let session = URLSession.shared
let task = session.dataTask(with: urlRequest as URLRequest) {
(data, response, error) -> Void in
if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(response)")
}
let responseString = String(data: data!, encoding: .utf8)
print("responseString = \(responseString)")
}
task.resume()
let requesting = NSURLRequest(url: request as URL)
DispatchQueue.main.async(){
self.paypalWebView?.mainFrame.load(requesting as URLRequest)
}
}
}
ブレインPHPスクリプト
if(isset($_POST["price"])){
$price = $_POST["price"];
}
<?php $tr_data = Braintree_TransparentRedirect::transactionData(
array('redirectUrl' => "http://" ,
'transaction' => array('amount' => $price, 'type' => 'sale'))) ?>
また、基本的にウェブであるペイパル見ますユーザがセグを介してボタンをクリックするとビューがアクティブになります。それが何かと関係するかどうかは分かりません。
あなたのPHPコードに 'のvar_dump($ _ POST)を'追加したときはどうなりますか? – Maximus2012
array(0){}を取得します。なぜそれが通っていないのか分かりません。 – Eseye
おそらく、あなたのスイッチコードがあなたのPHPコードにPOST(または何らかの要求)を送信していない可能性があります。 Firebug/Web Developerのブラウザプラグインを使用してGET/POSTリクエストを追跡し、データがSwiftからPHPに流れるかどうかを確認することができます。 – Maximus2012