在用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服务端建好服务器。
//支付调用测试 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