php ping++支付,Ping++支付的实现

由于项目需要,本人用H5实现了Android版,并成功发布。其中支付是使用的Ping++。

Hbuilder限制支付只能使用支付宝和微信。

但是实际上Ping++支付是直接调用支付宝或微信的,Ping++的作用就是统一了支付请求和回调。所以我们在获得支付申请数据之后,拆分出第三方支付所需要的数据,然后调用第三方支付就可以了。

具体步骤和代码:

从后台获取支付请求数据,数据示例:

payid = 'alipay'

var payReq = {

"body": "***订单",

"subject": "xxxxxxxxx",

"object": "charge",

"client_ip": "175.13.62.206",

"order_no": "xxxxxxxxx",

"currency": "cny",

"amount": 100,

"id": "ch_ xxxxxxxxx",

"failure_code": null,

"paid": false,

"refunded": false,

"created": 1467358041,

"description": null,

"amount_refunded": 0,

"livemode": false,

"amount_settle": 100,

"metadata": {},

"time_paid": null,

"app": "app_ xxxxxxxxx",

"extra": {},

"credential": {

"alipay": {

"orderInfo": "_input_charset=\"utf-8\"&body=\"***订单\"&it_b_pay=\"2016-07-02 15:27:21\"&notify_url=\"https%3A%2F%2Fapi.pingxx.com%2Fnotify%2Fcharges%2Fch_ xxxxxxxxx\"&out_trade_no=\"xxxxxxxxx\"&partner=\"xxxxxxxxx\"&payment_type=\"1\"&seller_id=\"xxxxxxxxx\"&service=\"mobile.securitypay.pay\"&subject=\"*****\"&total_fee=\"1.00\"&sign=\"SEM0T1MwMWV6SFdUTFN5WDlPOWVqTEtH\"&sign_type=\"RSA\""

},

"object": "credential"

},

"time_settle": null,

"time_expire": 1467444441,

"failure_msg": null,

"refunds": {

"data": [],

"has_more": false,

"object": "list",

"url": "/v1/charges/ch_xxxx/refunds"

},

"transaction_no": null,

"channel": "alipay"

}

};

payid = 'wxpay';

var payReq = {

"body": "*",

"subject": "****",

"object": "charge",

"client_ip": "175.13.62.206",

"order_no": "xxxxxxxxx",

"currency": "cny",

"amount": 100,

"id": "ch_xx",

"failure_code": null,

"paid": false,

"refunded": false,

"created": 1467358181,

"description": null,

"amount_refunded": 0,

"livemode": false,

"amount_settle": 100,

"metadata": {},

"time_paid": null,

"app": "app_xxx",

"extra": {},

"credential": {

"wx": {

"sign": "xxxxx",

"appId": "xxxxx",

"timeStamp": "1467358181",

"packageValue": "Sign=WXPay",

"partnerId": "123456",

"nonceStr": "11111111111111",

"prepayId": "xxxxxxxxxxxx"

},

"object": "credential"

},

"time_settle": null,

"time_expire": 1467365381,

"failure_msg": null,

"refunds": {

"data": [],

"has_more": false,

"object": "list",

"url": "/v1/charges/ch_xxxxx/refunds"

},

"transaction_no": null,

"channel": "wx"

}

}

2. 转换请求数据

//-----支付宝支付

payid = 'alipay';

```javascript

var order = payReq.credential['alipay'].orderInfo;

//end-----支付宝支付

//-----微信支付

payid = 'wxpay';

var wxData = payReq.credential['wx'];

var wxPay = {appid:wxData.appId,

noncestr:wxData.nonceStr,

'package':wxData.packageValue,

partnerid:wxData.partnerId,

prepayid:wxData.prepayId,

timestamp:wxData.timeStamp,

sign:wxData.sign};

var order = JSON.stringify(wxPay);

//end-----微信支付

调用支付

callPay(payid, order)//调用支付

function callPay(payid, order) {

console.log("----- order -----" + JSON.stringify(order));

plus.payment.request(pays[payid], order, function(result){

console.log("----- 支付成功 -----");

mui.toast('支付成功');

//支付成功处理

//paySuccess (result);

},function(e){

plus.nativeUI.closeWaiting();

console.log("----- 支付失败 -----");

console.log("["+e.code+"]:"+e.message);

plus.nativeUI.alert("支付失败",null,"错误码:"+e.code);

});

}

其他代码请参照H5+示例工程的plus/payment.html 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值