最近模板兔在给客户开发wordpress百度小程序,是基于modown主题与erphpdown插件涉及到百度支付,下面给出对接支付的具体代码供大家参考:
小程序端代码:
swan.request({ url: app.globalData.appUrl, data: { ***: app.globalData.appToken, action: 'user', page: "recharge.bd.do", userid: swan.getStorageSync('UserId'), ice_money: that.data.inputRechargeMoney }, method: 'POST', header: { 'content-type': 'application/x-www-form-urlencoded' }, success: function (res) { swan.hideLoading(); //console.log(res.data); if (res.data.error == '0') { swan.requestPolymerPayment({ orderInfo: res.data.bdata, success(res) { app.globalData.userBackFlush = 1; swan.showModal({ title: '温馨提示', content: '充值成功!', confirmText: '好的', showCancel: false, success(res) { if (res.confirm) { swan.navigateBack({ delta: 1 }); } } }); }, fail(res) { swan.showToast({ title: '支付失败:'+res.errMsg, icon: 'none', duration: 2000 }); } }); } else { swan.showToast({ title: res.data.msg, icon: 'none', duration: 2000 }); } }, fail: function () { swan.showToast({ title: '提交失败', icon: 'none', duration: 2000 }); } });
服务端部分代码:
$price = esc_sql(trim($_POST['ice_money'])); if($price){ require_once ERPHPAPP_PATH."/pay/baidu/api.php"; $out_trade_no = date("ymdhis").mt_rand(100,999).mt_rand(100,999); $subject = get_bloginfo('name').'订单['.get_the_author_meta( 'user_login', $userid ).']'; $erphp_order_title = get_option('erphp_order_title'); if($erphp_order_title){ $subject = $erphp_order_title; } *** $privateKey = get_option("erphpapp_bdappsign"); $data = [ 'appKey' => get_option("erphpapp_bdappkey"), // 支付能力开通后分配的支付appKey,用以表示应用身份的唯一ID,在应用审核通过后进行分配,一经分配后不会发生更改,来唯一确定一个应用 'dealId' => get_option("erphpapp_bdappdealid"), // 跳转百度收银台支付必带参数之一,是百度收银台的财务结算凭证,与账号绑定的结算协议一一对应,每笔交易将结算到dealId对应的协议主体 'tpOrderId' => $out_trade_no, // 商户平台自己记录的订单ID 'totalAmount' => $price*100, // 订单总金额,以分为单位 ]; $data['rsaSign'] = erphpapp_bdapp_sign($data,$privateKey); // 对appKey+dealId+tpOrderId+totalAmount进行RSA加密后的签名,防止订单被伪造 $data['dealTitle'] = $subject; // 订单的名称 $data['signFieldsRange'] = 1; // 固定值1 $bizInfoArr = [ "tpData" => [ "appKey" => $data['appKey'], "dealId" => $data['dealId'], "tpOrderId" => $data['tpOrderId'], "rsaSign" => $data['rsaSign'], "totalAmount" => $data['totalAmount'], "returnData"=> [] ], ]; $data['bizInfo'] = json_encode($bizInfoArr); // 订单详细信息,需要是一个可解析为JSON Object的字符串 可以为空 {} echo json_encode(array("error"=>0,"msg"=>"","bdata"=>$data)); }
0 个评论