使用PBFunc在Powerbuilder中支付寶當(dāng)面付款功能
在PB實(shí)現(xiàn)支付寶當(dāng)面付的功能,需要先在支付寶進(jìn)行商戶簽約,并設(shè)置相關(guān)的公鑰信息(具體參考支付寶文檔)。
然后使用對應(yīng)的私鑰文件對參數(shù)進(jìn)RSAWithSha1前面計(jì)算。具體代碼如下:
string ls_pubFileName,ls_priFileName n_pbfunc_cryp lnv_cryp ls_priFileName ="D:\pbfunclib_pri.pem"http://私鑰文件 string ls_str string ls_appId,ls_secret,ls_biz_content ls_appId ="3434343"http://改成你的appid ls_biz_content='{"out_trade_no": "2015020011","scene": "bar_code","auth_code": "'+sle_1.Text+'","subject": "當(dāng)面付條碼支付","total_amount": "0.01"}' ls_str ="app_id="+ls_appId ls_str +='&biz_content='+ls_biz_content ls_str +='&charset=utf-8' ls_str +='&method=alipay.trade.pay' ls_str +='&sign_type=RSA' ls_str +='×tamp=2016-05-08 11:27:15' ls_str +='&version=1.0' string ls_sigStr blob utf8R utf8R =lnv_cryp.of_str2utf8(ls_str) if lnv_cryp.of_sha1withRsa(ls_priFileName,utf8R,lnv_cryp.HASH_RESULT_DEFAULT,ls_sigStr) then MessageBox("提示","簽名成功:"+ls_sigStr) Else MessageBox("提示","簽名失敗") end if /*驗(yàn)證簽名可以不需要調(diào)用*/ ls_pubFileName ="D:\pbfunclib_pub.pem"http://在D盤生成公鑰文件pbfunclib_pub.pem IF Not lnv_cryp.of_RSAVerifyFileSHA1(ls_pubFileName,utf8R,ls_sigStr,lnv_cryp.HASH_RESULT_DEFAULT) Then MessageBox("提示","驗(yàn)證簽名失敗") else messagebox("","驗(yàn)證簽名成功") End IF //ls_str +='' n_pbfunc_http lnv_http lnv_http.of_clear()//清空參數(shù) string ls_data ls_data = "app_id="+wf_alipay_urlencode(ls_appId) ls_data += "&biz_content="+wf_alipay_urlencode(ls_biz_content) ls_data += "&charset="+wf_alipay_urlencode("utf-8") ls_data += "&method="+wf_alipay_urlencode("alipay.trade.pay") ls_data += "&sign_type="+wf_alipay_urlencode("RSA") ls_data += "&sign="+wf_alipay_urlencode(ls_sigStr) ls_data += "×tamp="+wf_alipay_urlencode("2016-05-08 11:27:15") ls_data += "&version="+wf_alipay_urlencode("1.0") lnv_http.of_set_URL("https://openapi.alipay.com/gateway.do?"+ls_data) Blob lblb_data string ls_error IF lnv_http.of_post(lblb_data,ls_error) Then string gbkData gbkData = lnv_cryp.of_utf8ToGbk(lblb_data)//由于返回來的是utf-8編碼,直接顯示會亂碼 MessageBox("提示",gbkData+" "+string(lblb_data)) Else MessageBox("提示","執(zhí)行失敗") End IF
其中wf_alipay_urlencode函數(shù)代碼如下:
//ls_str為參數(shù) n_pbfunc_encode lnv_encode string ls_content,ls_reserved//指明不需要編碼的字符 ls_reserved =""http://都需要編碼 string ls_sigStr blob utf8R utf8R =lnv_encode.of_str2utf8(ls_str) lnv_encode.of_URIEncode2(utf8R,ls_content) return ls_content
以上所述是小編給大家介紹的使用PBFunc在Powerbuilder中支付寶當(dāng)面付款功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時(shí)回復(fù)的。
相關(guān)文章
javascript獲取網(wǎng)頁中指定節(jié)點(diǎn)的父節(jié)點(diǎn)、子節(jié)點(diǎn)的方法小結(jié)
如何獲取要更新的這些元素呢?用JavaScript獲取這些節(jié)點(diǎn)的方法有很多種,下面是總結(jié)的一些方法,感興趣的朋友可以參考下哈2013-04-04Electron應(yīng)用顯示隱藏時(shí)展示動畫效果實(shí)例
最近使用electron實(shí)現(xiàn)一個(gè)簡單的功能,下面這篇文章主要給大家介紹了關(guān)于Electron應(yīng)用顯示隱藏時(shí)展示動畫效果的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05JavaScript實(shí)現(xiàn)簡易的水印覆蓋功能
本文將簡單實(shí)現(xiàn)一個(gè)覆蓋水印的小功能,水印一般都是添加在圖片上,然后直接加載處理過的圖片url即可,這里并沒有修改圖片,而是直接的在待添加水印的?dom?上添加一個(gè)?canvas?蒙版,需要的可以參考一下2022-12-12JavaScript程序員應(yīng)該知道的45個(gè)實(shí)用技巧
在這篇文章中,我將分享一組JavaScript的技巧、竅門和最佳實(shí)踐,這些都是JavaScript程序員應(yīng)該知曉的,不管他們是使用在瀏覽器/引擎上,還是服務(wù)器端(SSJS——Service Side JavaScript)JavaScript解釋器上2014-03-03layui 阻止圖片上傳的實(shí)例(before方法)
今天小編就為大家分享一篇layui 阻止圖片上傳的實(shí)例(before方法),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09javascript中函數(shù)的寫法實(shí)例代碼詳解
這篇文章主要介紹了javascript中函數(shù)的寫法 ,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10JS實(shí)現(xiàn)控制表格行內(nèi)容垂直對齊的方法
這篇文章主要介紹了JS實(shí)現(xiàn)控制表格行內(nèi)容垂直對齊的方法,通過javascript的getElementById獲取元素并設(shè)置其相應(yīng)樣式來實(shí)現(xiàn)這一功能,需要的朋友可以參考下2015-03-03javascript中String對象的slice()方法分析
這篇文章主要介紹了javascript中String對象的slice()方法,以實(shí)例形式分析了slice()方法的定義、參數(shù)與具體用法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12帶參數(shù)的function 的自運(yùn)行效果代碼
這篇文章介紹了帶參數(shù)的function 的自運(yùn)行效果,通過實(shí)例對比展示了帶參數(shù)與不帶參數(shù)function自運(yùn)行效果,需要的朋友可以參考一下2007-12-12