亚洲国产精品成人无码区,公天天吃我奶躁我的比视频,亚洲国产欧美视频亚洲国产精品一区二区成人片不卡,天天躁日日躁狠狠躁视频2021,起视碰看97视频在线少妇久久久久久人妻无码, 芒果乱码一线二线三线新区 ,亚洲熟妇无码AⅤ不卡在线播放,人妻少妇乱子伦无码专区

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

外貿(mào)獨立站之國外支付接口Paypal對接

發(fā)表日期:2022-06-17 11:55:52   作者來源:劉紅旺   瀏覽:2669   標(biāo)簽:paypal支付接口    外貿(mào)獨立站    
1. 首先去開發(fā)者平臺注冊測試賬號,注冊網(wǎng)站是
2. 好了之后再進入Sandbox建立測試用的Paypal虛擬帳號(至少應(yīng)該建立一個Business的和一個Personal的),這個虛擬帳號可以建一個商家號和一個支付號,可用于測試,里面的金額可以自由設(shè)定。
3. 商家號那里一般填寫的是郵箱(測試的時候,正式的商家號不是郵箱)。
4. 需要注意的是:
5. 1、把相關(guān)配置信息盡量放到數(shù)據(jù)庫中。
6. 2、測試帳號下的支付完成后是不會觸發(fā)異步回調(diào)地址的,需要到開發(fā)者平臺的去模擬相關(guān)觸發(fā)。
7. 3、為了回調(diào)支付準(zhǔn)確,增加了一個可以自定義的驗證密鑰,參與加密驗證。
8. 基本配置信息:
 
  function __construct() {
   parent::__construct();
   $testConfig = array(
  'payUrl' => 'https://www.sandbox.paypal.com/cgi-bin/webscr', //支付地址
 'business' => '3HSV6******', //商家號
 'currency_code' => 'USD', //支付幣種 具體代碼可參考:https://developer.paypal.com/docs/classic/api/currency_codes/
'lc' => 'US', //支付頁面的語言 具體代碼可參考:https://developer.paypal.com/docs/classic/api/country_codes/
            'key' => 'siteape', //個人加密字符串
);
 $prodConfig = array(
            'payUrl' => 'https://www.paypal.com/cgi-bin/webscr', //支付地址
            'business' => '3HSV6******', //商家號
            'currency_code' => 'USD', //支付幣種 具體代碼可參考:https://developer.paypal.com/docs/classic/api/currency_codes/
            'lc' => 'US', //支付頁面的語言 具體代碼可參考:https://developer.paypal.com/docs/classic/api/country_codes/
            'key' => 'siteape', //個人加密字符串
        );
        $payConfig = $testConfig; //這里切換測試環(huán)境和生產(chǎn)環(huán)境
        $this->payConfig = $payConfig;
    }
 
9. paypal支付提交處理
 public function paypalpay() {
        $oid = I('oid');
        //數(shù)據(jù)信息
        $order = M('order')->find($oid); //訂單信息
        if (!$order) {
            $this->display('Public:404');
            exit();
        }
        $data = $this->payConfig;
        //訂單詳情信息
        $orderDetail = M('order_detail')->where(array('oid' => $oid))->select();
        $goodsInfo = '';
        foreach ($orderDetail as $k => $v) {
            $product = M($v['name'])->field('title')->find($v['pid']);
            $product_color = M($v['name'] . '_colors')->field('title')->find($v['color_id']);
            $goodsInfo .= $product['title'] . '-' . $product_color['title'] . '-' . $v['diameter'] . '-' . $v['number'] . '-';
        }
        //加密傳值
        $signSrc = '';
        $signArr = array(
            'invoice' => $order['order_num'], //自定義訂單號
            'key' => $data['key'], //自定義的加密字符串
        );
        foreach ($signArr as $k => $v) {
            $signSrc .= $v;
        }
        $signInfo = strtoupper(hash("sha256", $signSrc));
        //表單提交
        $formData = array(
            'cmd' => '_xclick',
            'business' => $data['business'],
            'item_name' => string_replace($goodsInfo),
            'currency_code' => $data['currency_code'],
            'amount' => $order['real_money'],
            'notify_url' => C('PROTOCOL') . $_SERVER['SERVER_NAME'] . U('Pay/paypalnotifyurl'),
            'return' => C('PROTOCOL') . $_SERVER['SERVER_NAME'] . U('Order/info', array('order_num' => $order['order_num'], 'paypal' => 1)), //支付成功后網(wǎng)頁跳轉(zhuǎn)地址把order_num帶上
            'cancel_return' => C('PROTOCOL') . $_SERVER['SERVER_NAME'] . U('Order/info', array('order_num' => $order['order_num'])), //用戶取消支付后跳轉(zhuǎn)的地址
            'invoice' => $order['order_num'], //自定義訂單號
            'no_shipping' => 1,
            'custom' => $signInfo, //自定義變量 原樣返回 訂單id號
            'charset' => 'utf8',
            'lc' => $data['lc'],
        );
        header("Content-type: text/html; charset=utf-8");
        //輸出提交表單
        $payForm = '<form action="' . $data['payUrl'] . '" method="post" id="form" name="form">' . inputs($formData) . '</form><script>document.form.submit()</script>';
        echo $payForm;
    }
 
10. paypal回調(diào)地址
 public function paypalnotifyurl() {
        $data = $this->payConfig;
        //加密接收值
        $getData = array(
            'invoice' => I('post.invoice'),
            'key' => $data['key'],
        );
        //鍵名和鍵值和上面的原加密字符串一致
        $payment_status = I('post.payment_status');
        $custom = I('post.custom'); //接收的加密字符串
        $signSrc = '';
        foreach ($getData as $k => $v) {
            $signSrc .= $v;
        }
        $signInfo = strtoupper(hash("sha256", $signSrc));
        //驗證與修改
        if ($signInfo == $custom && $payment_status == 'Completed') {
            //改變訂單的狀態(tài)為已支付
            $saveData = array(
                'pay_create_time' => time(),
                'pay_sign_info' => $signInfo,
                'status' => 2,
            );
            $re = M('order')->where(array('order_num' => $getData['invoice']))->data($saveData)->save();
            $payResult = "Congratulations,payment is successful !";
        } else {
            $payResult = "Data validation failed";
        }
 
        /*支付的異步記錄備查*/
        $logData = I('post.');
        $logfile =  . '/payPalLog_c451f8e6e53014.txt';
        import("Org.Util.File");
        $logObj = new \File($logfile);
        $logfile = $logObj->getRealFile();
        file_put_contents($logfile, serialize($logData), FILE_APPEND);
    }
}
 
11. 組裝表單域
function inputs($data){
    $inputs='';
    foreach($data as $k=>$v){
        $inputs.='<input type="hidden" name="'.$k.'" value="'.$v.'"/>';
    }
    return $inputs;
}
 
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://m.oulysa.com/news/6461.html
相關(guān)網(wǎng)站設(shè)計案例
免费人成在线观看网站| 性色生活片在线观看| 无码AV最新高清无码专区| 亚洲精品无码αv人在线观看| 国产精品中文久久久久久久| 国产乱人伦偷精品视频下| 少妇中文字幕无码av| 在线精品一区二区三区| 成A人亚洲精V品无码樱花国产| 国产清纯美女遭强到高潮| 亚洲精品TV久久久久久久久久| 亚洲午夜精品久久久久久久| 99国产强伦姧在线看Rape| 国产一区三区二区中文在线| 欧美超级乱婬视频播放| 国产一级a毛一级a看免费视频| 亚洲AV无码成人精品区日韩| 日韩精品一区二区三区免费在线观看| 97久久超碰中文| 亚洲综合无码一区二区三区| 婷婷伊人在线播放国产麻豆| 精品国产福利91一区二区三区| 亚洲AV中文无码字幕色本草| 亚洲亚洲人成综合网站99| 国产欧美在线亚洲一区刘亦菲| 久久精品人人做人人综合试看| 狠狠色综合网站久久久久久久高清| 国产成人精品免高潮在线观看| 午夜人妻久久久久久久久| 收录详细的剧情介绍和精彩推荐| 亚洲一区二区无码影院| 老少妇人妻无码专区视频大码| 亚洲va成无码人在线观看天堂| 少妇无码AV无码专区| 精品熟女碰碰人人A久久| 日本e片色视频在线观看| 精品+无码免费国产小说| 男人进去女人爽免费视频国产| 免费岛国A级毛片无码| 国产字幕制服中文在线| 国产AV午夜精品一区二区三区|