在用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
