日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

App接入支付宝

發(fā)布時(shí)間:2024/4/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 App接入支付宝 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

閑得蛋疼接了一個(gè)坑死人的項(xiàng)目,,其中有一塊涉及到支付寶即時(shí)到賬服務(wù),本來想使用第三方提供的服務(wù),然而為了安全考慮,使用阿里提供的sdk自己開發(fā)接口
首先申請(qǐng)支付寶賬號(hào),順便入駐開放平臺(tái),申請(qǐng)賬號(hào)完畢后,直接找到沙箱環(huán)境

在這個(gè)地方,用到的就是APP ID和支付寶的RSA2公鑰,看到這個(gè)地方,接下來我們需要的就是支付寶的密鑰了,,為了方便,直接下載支付寶提供的工具h(yuǎn)ttps://os.alipayobjects.com/...


直接這樣生成就好了,然后將公鑰提交到沙箱的公鑰里,然后就搞定了,,私鑰自己保留好,,這樣就配置的差不多了

然后,下載php的sdk https://openhome.alipay.com/d...
下載完成后放到服務(wù)器上,由于阿里給的文檔不夠完善,,我看源碼找了好久,而且此前沒有接觸此類開發(fā),,遇到了不少麻煩,這里直接記錄下

<?php require_once './aop/AopClient.php'; require_once './aop/request/AlipayTradeAppPayRequest.php'; $c = new AopClient; $c->gatewayUrl = "https://openapi.alipaydev.com/gateway.do"; $c->appId = "2016080100138126"; $c->rsaPrivateKey = '私鑰'; $c->format = "json"; $c->charset= "utf-8"; $c->signType= "RSA2"; $c->alipayrsaPublicKey = '支付寶公鑰'; $request = new AlipayTradeAppPayRequest (); $request->setBizContent("{\"timeout_express\":\"30m\",\"product_code\":\"QUICK_MSECURITY_PAY\",\"total_amount\":\"0.01\",\"subject\":\"1\",\"body\":\"我是測試數(shù)據(jù)\",\"out_trade_no\":\"012114575097325\"}"); echo $c->sdkExecute($request); ?>

注意的是上面的是支付寶公鑰,,不是應(yīng)用公鑰,網(wǎng)關(guān)不用配置,這個(gè)只是提供一個(gè)思路,具體實(shí)現(xiàn)就不放出來了
服務(wù)器端大體就這樣,返回值如下

服務(wù)器到這里就差不多了,安卓端的搭建就直接使用官方的demo修改,

所需要的目錄結(jié)構(gòu)就是這樣了,然后直接調(diào)用接口就可以了,代碼如下:

public void payV2(View v) {final String[] res = {""};new Thread(){@Overridepublic void run() {super.run();try {URL url = new URL("http://192.168.137.149/api/");HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();urlConnection.setRequestMethod("GET");urlConnection.setConnectTimeout(6*1000);if(urlConnection.getResponseCode()==200){BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));String line = "";while ((line = reader.readLine())!=null ){res[0] +=line;}Log.i("訂單獲取", res[0]);Runnable payRunnable = new Runnable() {@Overridepublic void run() {PayTask alipay = new PayTask(PayDemoActivity.this);Map<String, String> result = alipay.payV2(res[0], true);Log.i("msp", result.toString());Message msg = new Message();msg.what = SDK_PAY_FLAG;msg.obj = result;mHandler.sendMessage(msg);}};Thread payThread = new Thread(payRunnable);EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);payThread.start();}} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}}.start();}

當(dāng)然,這只是最簡單的使用,到這個(gè)地方就基本完成了,不過這個(gè)是使用的服務(wù)器預(yù)設(shè)的訂單信息,實(shí)際應(yīng)用中,應(yīng)該用客戶端傳遞數(shù)據(jù)過去,服務(wù)器返回加簽的訂單信息,然后客戶端調(diào)用sdk支付,最后支付寶服務(wù)器,通知app服務(wù)器,最后修改訂單狀態(tài)

總結(jié)

以上是生活随笔為你收集整理的App接入支付宝的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。