App 开发用APIcloud的pingpg 集成支付模块

在用apicloud开发过程中,对支付接口有需求, 发现官方的pingpp模块不错。 就研究一下。 

1. 开如看下面的示例代码一头雾水, 没看到他要怎么工作。 那先看一下官方的帮助吧。 

var pingpp = api.require('pingpp');var params = {
    charge: chargeJSONString,
    scheme: "yourappurlscheme"};

pingpp.createPayment(params, function(ret, err) {
    if (ret.result == "success") {
        api.alert({ msg: "success" });
    }
});

2. 它的工作模式, 是下载他的sdk, 我的是php版本, 要在自已的app服务端建好服务器。 

72FF894E-4FDE-43C1-8AF4-17482BD9314F.png

	//支付调用测试
	function appPay(){
		//ping++集成支付平台
		Vendor( 'Pingpp.init');
		
		$api_key 	= 'sk_test_ vjjLCnDarnD8OqffT'; 	//API-KEY,注册ping++时自动生成  
		$app_id 	= 'app_P CyX1SOyjv'; 				//APP_ID,注册时自动生成  
 	 
		//调试数据
 		$_GET['channel'] 	= 'wx_pub';
 		$_GET['amount'] 	= 119;
 		
 		if (empty($_GET['channel']) || empty($_GET['amount'])) {
            echo 'channel or amount is empty';
            exit();
        }
        
        $channel 	= strtolower($_GET['channel']);
        $amount 	= $_GET['amount'];
        $orderNo 	= substr(md5(time()), 0, 12);
        //$extra 在使用某些渠道的时候,需要填入相应的参数,其它渠道则是 array() .具体见以下代码或者官网中的文档。其他渠道时可以传空值也可以不传。
        $extra = array();
        switch ($channel) {
            case 'alipay_wap' :
                $extra = array('success_url' => 'http://www.yourdomain.com/success', 'cancel_url' => 'http://www.yourdomain.com/cancel');
                break;
            case 'upmp_wap' :
                $extra = array('result_url' => 'http://www.yourdomain.com/result?code=');
                break;
            case 'bfb_wap' :
                $extra = array('result_url' => 'http://www.yourdomain.com/result?code=', 'bfb_login' => true);
                break;
            case 'upacp_wap' :
                $extra = array('result_url' => 'http://www.yourdomain.com/result');
                break;
            case 'wx_pub' :
                $extra = array('open_id' => 'Openid');
                break;
            case 'wx_pub_qr' :
                $extra = array('product_id' => 'Productid');
                break;
            case 'yeepay_wap' :
                $extra = array('product_category' => '1', 'identity_id' => 'your identity_id', 'identity_type' => 1, 'terminal_type' => 1, 'terminal_id' => 'your terminal_id', 'user_ua' => 'your user_ua', 'result_url' => 'http://www.yourdomain.com/result');
                break;
            case 'jdpay_wap' :
                $extra = array('success_url' => 'http://www.yourdomain.com', 'fail_url' => 'http://www.yourdomain.com', 'token' => 'dsafadsfasdfadsjuyhfnhujkijunhaf');
                break;
        }
        
        \Pingpp\Pingpp::setPrivateKeyPath(VENDOR_PATH . '/Pingpp/rsa_private_key.pem'); //引入你的签名私钥  
        
        \Pingpp\Pingpp::setApiKey($api_key);
        
 
        try {
 	       	$paramArray =  array(
	       		'subject' => 'Your Subject',
	       		'body' => 'Your Body', 
	       		'amount' => $amount, 
	       		'order_no' => $orderNo, 
	       		'currency' => 'cny', 
	       		'extra' => $extra, 
	       		'channel' => $channel,
		   		'client_ip' => get_client_ip(), 
		   		'app' => array('id' => $app_id)
		   	);
		   	
            $ch = \Pingpp\Charge::create($paramArray);
            
            echo $ch;
            
        }catch (\Pingpp\Error\Base $e) {
            //header('Status: ' . $e->getHttpStatus());
            header("Content-type:text/html;charset=utf-8");
            echo($e->getHttpBody());
        }
    
	}

上面代码里有模拟数据。 

自已传过去, 再拼接完了在给手机调用。 

成功。

3. 手机端调用你这个接口, 把你要付款 信息给这个接口, 接口去调用pingpp的服务器。 返回json代码。 完成后。 手机在调用第1部的代码。 

chargeJSONString  = 你调用回来的json给它

4. app要去端编译还要添加pingpp模块。 config配制中要加入你的 urlScheme

 <preference name="urlScheme" value="myscheme"/>

5.上传代码到云端, 编辑自定义loader再试。 

原创文章,转发请保留连接。 可能QQ我: 20696662

发表评论