亚洲国产精品成人无码区,公天天吃我奶躁我的比视频,亚洲国产欧美视频亚洲国产精品一区二区成人片不卡,天天躁日日躁狠狠躁视频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://www.oulysa.com/news/6461.html
相關(guān)網(wǎng)站設(shè)計案例
91无码精品久久久久一区二区| 国产在线观看成人免费视频| 影音先锋人妻啪啪av资源网站 | 中文字幕人妻被公上司喝醉| 亚洲AV夜夜欢一区二区三区| 国产91精品福利资源在线观看| 午夜福利AV无码| 国产成人a在线观看网站站| 99精品国产一区二区三区四区| 综合五月激情二区视频| 日韩亚洲欧美国产精品综合| 末成年女A∨片一区二区| 国产欧美一区二区精品每日更新| 精品人妻少妇一区二区三区| 亚洲āV无码精品色午夜蜜桃| 亚洲欧美中文日韩v在线中文字幕| 内精品人妻无码久久久影院| 日韩人妻潮喷观看| 日本高清线视频在线| 天天躁夜夜躁狠狠综合2020| 又粗又黄又硬又爽的免费视频软件| 欧美日韩国产高清精卡成人性欧美| 免费看男女又黄又爽又高潮 | 日韩精品视频在线播放| 99在线精品免费视频九九视| 永久电影三级在线观看| 久青草国产在视频在线观看| 少妇无码一区二区二三区久| 一级特黄aa大片欧美| 欧美巨鞭大战丰满少妇| 国产美女写真一区二区在线观看| 老王轻一点儿好爽在深一点| 久久亚洲国产成人精品性色| 无码爆乳护士让我爽| 一区二区视频日韩免费| 国产乱人伦偷精品视频AAA| 三级片无码在线观看大尺度| 亚洲欧美色国产中文字幕在线| 亚洲无码在线观看第一页| 国产AV一区二区无码| 国产一区二区三区美女|